HarmonyOS 关于web组件的js运行环境的生命周期及页面间通信问题

web组件在所属父页面不可见时是否有相关限制,如web的js环境是否可用,H5的接口请求是否会挂起等

在app内构建了一个包含web组件的通用H5展示页面 以下统称为H5容器页

1.当H5容器页不可见比如跳转至其他页面时,请问web组件的js环境是否会被挂起,js方法和网络请求是否可执行?

2.同上场景,若当前app在其他页面时,此时如果需要通知路由栈中的某个H5容器页执行相关js方法,请问如何进行页面间通信,调用目标页面的webController 或者有无最佳实践方案?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

1、Web 组件处于后台时,网页 js 脚本还会继续执行,如需要暂停h5页面脚本执行,需要通过控制web组件的javaScriptAccess属性,当设置为false时,js脚本将停止执行

2、可以将Aweb页的Controller导出,在Bweb页使用,参考demo:

//Aweb页:
import { webview } from '@kit.ArkWeb';
import { router } from '@kit.ArkUI';

class webviewA{
  webviewController: webview.WebviewController = new webview.WebviewController();
  testFun(){
    this.webviewController.loadUrl('https://www.index.com')
  }
}
export let webviewControllerA = new webviewA()
@Entry
@Component
struct Index {
  build() {
    Column() {
      Text("pages/Index2")
        .onClick(() => {
          router.pushUrl({
            url: "pages/Index2"
          })
        })
      Web({ src: $rawfile('sample-mml.html'), controller: webviewControllerA.webviewController })
        .javaScriptProxy({
          object: this,
          name: 'messageHandlers',
          methodList: ['htmlCallBack'],
          controller: webviewControllerA.webviewController
        })
    }
  }
}

//Bweb页:
import { webview } from '@kit.ArkWeb';
import { webviewControllerA } from "./HDRichTextView"
import { router } from '@kit.ArkUI';

@Entry
@Component
struct Index2 {
  controller: webview.WebviewController = new webview.WebviewController();

  build() {
    Column() {
      Text("testFun")
        .onClick(()=>{
          webviewControllerA.testFun()
        })
      Button("返回")
        .onClick(()=>{
          router.back()
        })
      Web({ src: $rawfile('scan.html'), controller: this.controller })
    }
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 页面生命周期问题
39浏览 • 1回复 待解决
Dialog组件生命周期问题
358浏览 • 1回复 待解决
HarmonyOS tab组件生命周期问题
46浏览 • 1回复 待解决
Window窗口生命周期问题
352浏览 • 1回复 待解决
HarmonyOS Navigation生命周期问题
38浏览 • 1回复 待解决
HarmonyOS NavDestination生命周期问题
48浏览 • 1回复 待解决
HarmonyOS Navigation跳转组件生命周期
625浏览 • 2回复 待解决
HarmonyOS 生命周期区别
17浏览 • 1回复 待解决
HarmonyOS 弹框Dialog生命周期问题
598浏览 • 1回复 待解决
HarmonyOS navigation主页面生命周期
538浏览 • 1回复 待解决
HarmonyOS页面onPageShow生命周期不回调
1044浏览 • 1回复 待解决