以下是具体实现代码:
1.从webView中获取设置
WebSettings sws = webView.getSettings()
sws.setSupportZoom(true)
sws.setBuiltInZoomControls(true)
webView.setInitialScale(25)
webView.getSettings().setUseWideViewPort(true)
2.注册setWebChromeClient事件
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
// Activity和Webview根据加载程度决定进度条的进度大小
// 当加载到100%的时候 进度条自动消失
//WebViewProgressActivity.this.setTitle("Loading...")
//WebViewProgressActivity.this.setProgress(progress * 100)
if (progress == 100) {
progressBar.setVisibility(View.GONE)
//WebViewProgressActivity.this.setTitle("完成")
}
}
})
3.注意在onProgressChanged中处理进度,progress就是进度值。
代理- (void)webViewDidStartLoad:(UIWebView *)webView
开始loading
- (void)webViewDidFinishLoad:(UIWebView *)webView
- (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error
这里面关闭loading
此方法已经被标记为废弃,方法的第二个参数类型为String,在Android 7.0以下系统被调用
因此在Android 7.0以下系统,如果我们设置了 WebViewClient ,只有 shouldOverrideUrlLoading(WebView view, String url) 方法会被调用,在Android 7.0及以上系统 shouldOverrideUrlLoading(WebView view, String url) 和 shouldOverrideUrlLoading(WebView view, WebResourceRequest request) 两个方法都会被调用。
以上语句引自于 android.webkit.WebViewClient 类,翻译总结一下就是:
因此阻止 WebView 调用系统浏览器只需要设置 WebViewClient ,然后返回 false 即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)