关于android WebViewClient的方法解释
适用项目:
js页面还没加载好时,在上面赋loading界面,如果加载好就隐藏loading
失败经历:以前写一个项目时第一个界面是原生的,第二个界面是java写的(js页面)要求是js页面还没加载完成时要显示一个loading界面界面,等它加载完成时隐藏;现实情况是js页面出来会有1-2秒钟的黑屏现象(可能是代码问题,我接手事前面已经有至少三个人开发,找不到人,所以只能加一个loading界面把黑屏掩盖掉),当时不知道有WebViewClient的方法,所以Java人员给我一个方法是写一个方法,方法中有一个标记位,如果为true怎么样,为false怎么样,js进行调用这个方法,写完之后出现各种问题,以失败告终。
1、在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。
public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; }2、在页面加载开始时调用。
public void onPageStarted(WebView view, String url, Bitmap favicon) { // TODO Auto-generated method stub if (DEBUG) { Log.d(TAG, " onPageStarted "); } if (url.endsWith(".apk")) { download(url);//下载处理 } super.onPageStarted(view, url, favicon); loading.setVisibility(View.VISIBLE);//loading加载页面 }3、在页面加载结束时调用。
public void onPageFinished(WebView view, String url) { // TODO Auto-generated method stub if (DEBUG) { Log.d(TAG, " onPageFinished "); } super.onPageFinished(view, url); loading.setVisibility(View.INVISIBLE);//loading隐藏 }4、重写此方法可以让webview处理https请求。
public void onReceivedSslError(WebView view, SslErrorHandler handler, android.net.http.SslError error) { handler.proceed(); }5、重写此方法才能够处理在浏览器中的按键事件。
public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) { return super.shouldOverrideKeyEvent(view, event); }6、 在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。
public void onLoadResource(WebView view, String url) { // TODO Auto-generated method stub if (DEBUG) { Log.d(TAG, " onLoadResource "); } super.onLoadResource(view, url); }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。