HarmonyOS 鸿蒙Next WebView 加载周期
HarmonyOS 鸿蒙Next WebView 加载周期
做了一个web页面Page。
现在需要在WebView加载出网页的标题时,立刻更新Page的标题。
请问这个加载时机, 能在哪个函数里面监听?
第二个问题, 请问,现在的webview,加载网页的生命周期有哪些?
第三个问题, 注册javascript桥的时候 registerJavaScriptProxy,后面的这个函数列表需要主动的声明。 是否有一个办法,可以用代码遍历出 class类的方法列表
当前WebView涉及到的声明周期函数包括:
加载阶段:
- 首先是page的aboutToAppear、onPageShow
- 然后调用组件的通用事件onAppear
- 接下来依次调用web组件独有的onUrlLoadIntercept、onInterceptRequest、onResourceLoad、onPageBegin。其中:
- onUrlLoadIntercept、onInterceptRequest我们通常可以使用它们实现自定义拦截;
- onResourceLoad主要用来通知Web所加载的资源文件url信息。然后onPageBegin调用后内核开始解析和加载H5页面。
- H5阶段首先是Dom解析,然后开始加载Dom节点和资源,这里资源的加载会再次经过onInterceptRequest、onResourceLoad。
- 最后dom和资源都加载完毕后依次调用H5的onload和Web组件的onPageEnd方法
卸载阶段生命周期比较简单,首先调用页面onPageHide、aboutToDisAppear,然后是组件的通用卸载事件onDisAppear
Web组件总的生命周期:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/web-event-sequence-V5
registerJavaScriptProxy加载时机参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-arkweb-27-V5
registerJavaScriptProxy注册后,必须调用refresh接口后生效,refresh会通知web组件刷新页面。所以在onPageBegin,onPageEnd中使用会导致不停刷新页面。可以在onControllerAttached方法中注册registerJavaScriptProxy并refresh。参考链接:
onControllerAttached:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#oncontrollerattached10
registerJavaScriptProxy:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-webview-V5#registerjavascriptproxy
更多关于HarmonyOS 鸿蒙Next WebView 加载周期的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS 鸿蒙Next WebView加载周期主要涉及WebView组件从初始化到内容加载完成的各个阶段。以下是对其加载周期的简要概述:
-
初始化阶段:
- WebView组件被创建并初始化,此时尚未开始加载内容。此阶段主要是WebView资源的分配和内部状态的设置。
-
准备加载阶段:
- WebView接收到要加载的URL或内容请求,开始准备加载过程。这可能包括DNS解析、建立网络连接等准备工作。
-
开始加载阶段:
- WebView正式开始加载内容,此时可能会触发一些加载开始的事件或回调,如
onPageStarted
。
- WebView正式开始加载内容,此时可能会触发一些加载开始的事件或回调,如
-
加载中阶段:
- WebView持续接收并解析网络数据,页面内容逐渐呈现给用户。此阶段可能会涉及多次的数据接收和处理。
-
加载完成阶段:
- WebView完成所有内容的加载,页面完全呈现给用户。此时可能会触发加载完成的事件或回调,如
onPageFinished
。
- WebView完成所有内容的加载,页面完全呈现给用户。此时可能会触发加载完成的事件或回调,如
需要注意的是,加载周期中的各个阶段可能因网络状况、页面复杂度等因素而有所不同。此外,HarmonyOS鸿蒙系统可能会对WebView的加载过程进行一些优化或定制,以确保更好的性能和用户体验。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html