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);
}
});

浙公网安备 33010602011771号