HarmonyOS 鸿蒙Next WebView 加载周期

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next WebView 加载周期

做了一个web页面Page。

现在需要在WebView加载出网页的标题时,立刻更新Page的标题。

请问这个加载时机, 能在哪个函数里面监听?

第二个问题, 请问,现在的webview,加载网页的生命周期有哪些?

第三个问题, 注册javascript桥的时候 registerJavaScriptProxy,后面的这个函数列表需要主动的声明。 是否有一个办法,可以用代码遍历出 class类的方法列表

2 回复

当前WebView涉及到的声明周期函数包括:

加载阶段:

  1. 首先是page的aboutToAppear、onPageShow
  2. 然后调用组件的通用事件onAppear
  3. 接下来依次调用web组件独有的onUrlLoadIntercept、onInterceptRequest、onResourceLoad、onPageBegin。其中:
    • onUrlLoadIntercept、onInterceptRequest我们通常可以使用它们实现自定义拦截;
    • onResourceLoad主要用来通知Web所加载的资源文件url信息。然后onPageBegin调用后内核开始解析和加载H5页面。
  4. H5阶段首先是Dom解析,然后开始加载Dom节点和资源,这里资源的加载会再次经过onInterceptRequest、onResourceLoad。
  5. 最后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组件从初始化到内容加载完成的各个阶段。以下是对其加载周期的简要概述:

  1. 初始化阶段:

    • WebView组件被创建并初始化,此时尚未开始加载内容。此阶段主要是WebView资源的分配和内部状态的设置。
  2. 准备加载阶段:

    • WebView接收到要加载的URL或内容请求,开始准备加载过程。这可能包括DNS解析、建立网络连接等准备工作。
  3. 开始加载阶段:

    • WebView正式开始加载内容,此时可能会触发一些加载开始的事件或回调,如onPageStarted
  4. 加载中阶段:

    • WebView持续接收并解析网络数据,页面内容逐渐呈现给用户。此阶段可能会涉及多次的数据接收和处理。
  5. 加载完成阶段:

    • WebView完成所有内容的加载,页面完全呈现给用户。此时可能会触发加载完成的事件或回调,如onPageFinished

需要注意的是,加载周期中的各个阶段可能因网络状况、页面复杂度等因素而有所不同。此外,HarmonyOS鸿蒙系统可能会对WebView的加载过程进行一些优化或定制,以确保更好的性能和用户体验。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部