Android加載網頁控件WebView

         1、因爲要加載網頁,先給應用添加網絡權限。

<uses-permission android:name="android.permission.INTERNET"/>
         2、在佈局文件中添加WebView控件。

<WebView
    android:id="@+id/mWebView"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</WebView>
         3、在代碼中找到該控件。

mWebView = (WebView) findViewById (R.id.mWebView);
               4、直接加載網頁,這時運行項目,發現是打開系統網頁,而不是在我們的WebView中呈現出來。

mWebView.loadUrl ("http://www.baidu.com");
            5、要解決這個問題,需要設置WebViewClient對象,在shouldOverridUrlLoading()方法中,調用view.loadUrl(url)方法即可。

mWebView.setWebViewClient (new WebViewClient (){
    @Override
    public boolean shouldOverrideUrlLoading (WebView view, String url) {
        view.loadUrl (url);
        return true;
    }
    //加載頁面出錯時回調
    @Override
    public void onReceivedError (WebView view, WebResourceRequest request, WebResourceError error) {
        super.onReceivedError (view, request, error);
    }
    //加載資源
    @Override
    public void onLoadResource (WebView view, String url) {
        super.onLoadResource (view, url);
    }
    //頁面加載完成後回調
    @Override
    public void onPageFinished (WebView view, String url) {
        super.onPageFinished (view, url);
    }

});
         6、當加載了網頁,我們可以點擊跳轉到其它網頁,如果想回到上一頁時,發現點擊返回鍵就直接退出APP了,要解決這個問題,可以重新監聽返回鍵。

@Override
public boolean onKeyDown (int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)&&mWebView.canGoBack ()){
        mWebView.goBack ();
        return true;
    }
    return super.onKeyDown (keyCode, event);
}
         7、關於WebView的一些設置。

WebSettings webSettings = mWebView.getSettings ();
 webSettings.setJavaScriptEnabled (true);//支持JS
 //將圖片調整到適合webview的大小
 webSettings.setUseWideViewPort (false);
 //支持縮放
 webSettings.setSupportZoom (true);
 //支持內容重新佈局
 webSettings.setLayoutAlgorithm (WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
 //支持多窗口
 webSettings.supportMultipleWindows ();
 //關閉webview中緩存
webSettings.setCacheMode (WebSettings.LOAD_CACHE_ELSE_NETWORK);
 //設置可以訪問文件
 webSettings.setAllowContentAccess (true);
 //設置支持縮放
 webSettings.setBuiltInZoomControls (true);
 //支持通過JS打開新窗口
 webSettings.setJavaScriptCanOpenWindowsAutomatically (true);
 //縮放至屏幕的大小
 webSettings.setLoadWithOverviewMode (true);
 //設置支持自動加載圖片
 webSettings.setLoadsImagesAutomatically (true);
 webSettings.setNeedInitialFocus (true);

發佈了78 篇原創文章 · 獲贊 7 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章