android webview知识积累

1、如果访问的页面中有Javascript,则webview必须设置支持Javascript。

mWebView.getSettings().setJavaScriptEnabled(true);

2、如果页面中链接,如果希望点击链接继续在当前browser中响应,而不是新开Android的系统browser中响应该链接,必须覆盖 webview的WebViewClient对象。

mWebView.setWebViewClient(new WebViewClient(){ 

public boolean shouldOverrideUrlLoading(WebView view, String url) { 

        view.loadUrl(url); 

        return true; //返回true,代表事件已处理,事件流到此终止

    } 

});

3、如果不做任何处理,浏览网页,点击系统“Back”键,整个Browser会调用finish()而结束自身,如果希望浏览的网页回退而不是退出浏览器,需要在当前Activity中处理并消费掉该Back事件。

public boolean onKeyDown(int keyCode, KeyEvent event) {       

        if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {       

            mWebView.goBack();       

                   return true;       

        }       

        return super.onKeyDown(keyCode, event);       

    }

4、如果webView中需要用户手动输入用户名、密码或其他,则webview必须设置支持获取手势焦点。

mWebView.requestFocusFromTouch();

5、重写WebChromeClient的onProgressChanged方法更新进度条。

mWebView.setWebChromeClient(new WebChromeClient() {

            //当WebView进度改变时更新窗口进度

            @Override

            public void onProgressChanged(WebView view, int newProgress) {

                //Activity的进度范围在0到10000之间,所以这里要乘以100

                LoadActivity.this.setProgress(newProgress * 100);

            }

});

 6、使WebView支持点击下载链接可跳转。

        mWebView.setDownloadListener(new DownloadListener()

        {

            @Override

            public void onDownloadStart(String url , String userAgent , String contentDisposition , String mimetype , long contentLength)

            {

                // TODO Auto-generated method stub

                Uri uri = Uri.parse(url);

                Intent intent = new Intent(Intent.ACTION_VIEW, uri);

                startActivity(intent);

            }

        });

 

你可能感兴趣的:(android)