HarmonyOS ArkTS主动与H5通信方式是什么

应用主体是H5页面,在部分场景下,H5中需要主动的监听网络异常的情况下,限制功能是否可用;如何实现在H5中监听网络异常的消息或者ArkTS如何主动与H5进行通信?

HarmonyOS
2024-08-11 14:09:12
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

1 、关于前端监听网络变化,可参考:addEventListener 文档:https://juejin.cn/post/7082567435789795336

2 、ArkTS如何主动与H5进行通信?HarmonyOS Web组件可以实现前端与原生页面的相互调用,这里主要讲解如何在前端获取网络变化通知原生。

首先,声明需要注册的对象。

class testClass { 
  constructor() { 
  } 
  test(): string { 
    return "ArkUI Web Component"; 
  } 
  toString(): void { 
    console.log('Web Component toString'); 
  } 
}

方案一:

@State testObj: testClass = new testClass(); 
Web({ src: $rawfile('index.html'), controller: this.webviewController}) 
  // 将对象注入到web端 
  .javaScriptProxy({ 
    object: this.testObj, 
    name: "testObjName", 
    methodList: ["test"], 
    controller: this.webviewController 
  })

方案二:

@State testObj: testClass = new testClass(); 
webviewController: web_webview.WebviewController = new web_webview.WebviewController(); 
this.webviewController.registerJavaScriptProxy(this.testObj, "testObjName", ["test", "toString"]); 
//使用registerJavaScriptProxy()接口注册方法时,注册后需调用refresh()接口生效 
this.webviewController.refresh();

然后,前端页面调用此方法。

<!-- index.html --> 
  <!DOCTYPE html> 
  <html> 
  <body> 
  <button type="button" onclick="callArkTS()">Click Me!</button> 
  <p id="demo"></p> 
  <script> 
  function callArkTS() { 
    let str = testObjName.test(); 
    document.getElementById("demo").innerHTML = str; 
    console.info('ArkTS Hello World! :' + str); 
  } 
  </script> 
  </body> 
  </html>
分享
微博
QQ
微信
回复
2024-08-12 13:59:42
相关问题
HarmonyOS webH5交互
95浏览 • 1回复 待解决
H5过url scheme拉起对应应用
173浏览 • 1回复 待解决
H5页面如何ArkTS交互
2515浏览 • 1回复 待解决
HarmonyOS H5应用侧数据交互的Demo
35浏览 • 1回复 待解决
HarmonyOS webH5两端数据交互
40浏览 • 1回复 待解决
HarmonyOS web原生和H5如何交互?
41浏览 • 1回复 待解决
webview加载Vue h5失败
17166浏览 • 5回复 待解决
HarmonyOS webview h5的localstorage
48浏览 • 1回复 待解决
Web中webview和H5交互
709浏览 • 1回复 待解决
HarmonyOSH5中如何跳转到应用市场
31浏览 • 1回复 待解决
HarmonyOS 折叠屏H5适配问题
43浏览 • 1回复 待解决
h5如何在鸿蒙设备进行调试
791浏览 • 1回复 待解决
如何实现H5自定义事件
1854浏览 • 1回复 待解决
HarmonyOS h5页面是否可以适配Harmony OS
119浏览 • 1回复 待解决
HarmonyOS h5页面缩放问题
45浏览 • 0回复 待解决
如何加载字符串形式H5数据
1756浏览 • 1回复 待解决
HarmonyOS H5的JS端调用应用端的新问题
129浏览 • 0回复 待解决
如何使H5页面适配多设备?
228浏览 • 1回复 待解决
FA里内嵌H5是怎么保持登录状态?
6725浏览 • 1回复 待解决