Android中使用WebView, WebChromeClient和WebViewClient加載網頁

在android應用中,有時要加載一個網頁,若是能配上一個進度條就更好了,而android 中提供了其很好的支持,javascript

其中webView的一系列用法,好比java

webView.getSettings().setJavaScriptEnabled(true); //設置能夠使用javascript
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); //設置滾動條風格
webView.setHorizontalScrollBarEnabled(false);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true); //設置能夠支持縮放
webView.setInitialScale(25); //爲25%,最小縮放等級 ,能夠在這裏根據需求來設置縮放比例.
webView.setHorizontalScrollbarOverlay(true);
下面是一個例子程序,先帖: android

 

主程序: web

public class WebPageLoader extends Activity

{

final Activity activity = this;

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

this.getWindow().requestFeature(Window.FEATURE_PROGRESS);

setContentView(R.layout.main);

WebView webView = (WebView) findViewById(R.id.webView);


webView.getSettings().setJavaScriptEnabled(true);

webView.getSettings().setSupportZoom(true);
//點擊連接在當前browser中響應,而不是新開Android系統browser中響應該連接

webView.setWebChromeClient(new WebChromeClient()

{

public void onProgressChanged(WebView view, int progress)

{

activity.setTitle("Loading...");

activity.setProgress(progress * 100);

if(progress == 100){

activity.setTitle(R.string.app_name);

}

}

);

webView.setWebViewClient(new WebViewClient() {



public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)

{ // Handle the error



}



public boolean shouldOverrideUrlLoading(WebView view, String url)

{

view.loadUrl(url);

return true;

}

});

webView.loadUrl("http://www.sohu.com");

}

}app


而進度條的使用是在new出一個setWebChromeClient後,能夠在內部類中寫 onProgressChanged事件 ide


在WebView的設計中,不是什麼事都要WebView類乾的,有些瑣事是分給其餘人的,這樣WebView專心幹好本身的解析、渲染工做就好了。WebViewClient 就是幫助WebView處理各類通知、請求事件的,具體來講包括: 網站

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


判斷加載的頁面URL地址是否正確:
if(URLUtil.isNetworkUrl(url)==true) this

相關文章
相關標籤/搜索