關於android的WebView


android.webkit庫聚合了webkit內核的瀏覽器功能,webview就是她的一個控件,可以使得網頁輕松的內嵌到app里。

並且比較強大的是,還可以直接跟js相互調用。

webview有兩個方法:setWebChromeClient和setWebClient

setWebChromeClient主要處理解析,渲染網頁等瀏覽器做的事情

WebChromeClient是輔助WebView處理Javascript的對話框,網站圖標,網站title,加載進度等 

onCloseWindow(關閉WebView) 

onCreateWindow() 

onJsAlert (WebView上alert是彈不出來東西的,需要定制你的WebChromeClient處理彈出) 

onJsPrompt 

onJsConfirm 

onProgressChanged 

onReceivedIcon 

onReceivedTitle

比如可以添加進度條,使得界面更友好

webview1.setWebChromeClient(new WebChromeClient() 
{
public void onProgressChanged(WebView view, int progress)
{
setProgress(progress * 100);
if(progress == 100){
imageView1.setVisibility(View.GONE);
tv1.setVisibility(View.GONE);
pb1.setVisibility(View.GONE);
fy1.setVisibility(View.GONE);
}
}
}
);


WebViewClient就是幫助WebView處理各種通知、請求事件的,具體來說包括: 

onLoadResource 

onPageStart 

onPageFinish 

onReceiveError 

onReceivedHttpAuthRequest 

例如:

webview1.setWebViewClient(new WebViewClient() {   

public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{ // Handle the error
Toast.makeText(getApplicationContext(), "網絡連接失敗 ,請連接網絡。",
Toast.LENGTH_SHORT).show();
}

public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});

//設置字符集編碼
webview1.getSettings().setDefaultTextEncodingName("UTF-8");
webview1.loadUrl("http://mfsj1908.m.tmall.com/");


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM