onPageStarted、onPageFinished、shouldOverrideUrlLoading

本文详细解析了H5页面在加载和导航过程中的关键事件,包括onPageStarted, onPageFinished及shouldOverrideUrlLoading的触发时机与场景。特别关注了页面重定向和跳转对事件的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进入一个h5,会调用onPageStarted-》onPageFinished,     

                      或者调两次onPageFinished:onPageStarted-》onPageFinished-》onPageFinished

如果在这个h5的onLoad方法里重定向,那么就不会调用onPageFinished:onPageStarted-》shouldOverrideUrlLoading

 

 

在这个h5页面点击跳转别的h5页面,可能直接调用onPageFinished

                                                          也可能重定向:shouldOverrideUrlLoading-》onPageStarted-》onPageFinished

 

 

从这个h5页面回到上一个h5页面:onPageStarted-》onPageFinished

                                                      或者onPageStarted-》shouldOverrideUrlLoading

package com.github.lzyzsd.jsbridge; import android.graphics.Bitmap; import android.webkit.WebView; import android.webkit.WebViewClient; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; /** * Created by bruce on 10/28/15. */ public class BridgeWebViewClient extends WebViewClient { private BridgeWebView webView; public BridgeWebViewClient(BridgeWebView webView) { this.webView = webView; } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { try { url = URLDecoder.decode(url, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } if (url.startsWith(BridgeUtil.YY_RETURN_DATA)) { // 如果是返回数据 webView.handlerReturnData(url); return true; } else if (url.startsWith(BridgeUtil.YY_OVERRIDE_SCHEMA)) { // webView.flushMessageQueue(); return true; } else { return super.shouldOverrideUrlLoading(view, url); } } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); if (BridgeWebView.toLoadJs != null) { BridgeUtil.webViewLoadLocalJs(view, BridgeWebView.toLoadJs); } } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); // if (webView.getStartupMessage() != null) { for (Message m : webView.getStartupMessage()) { webView.dispatchMessage(m); } webView.setStartupMessage(null); } } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { super.onReceivedError(view, errorCode, description, failingUrl); } }
最新发布
07-04
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值