ArkWeb组件实现兼容H5页面中JsBridge.registerHandler('funcName', function (data) {...}) 方法,如何实现

​我想咨询一下怎样用这个例子:​https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/tutorials_NEXT-SelectContact​,实现原生对H5页面的调用和回调呢?

现在是这样,我用tutorials_NEXT-SelectContact例子的方法实现了H5页面对HarmonyOS原生程序的调用和回调,但是现在我们还有一个场景,就是原生程序对H5页面的调用,在其他端,我们原来采用如下这种方式对H5页面进行调用​。

webview.callHandler("shareResult", new Gson().toJson(returnData), new CallBackFunction() { 
  @Override 
  public void onCallBack(String data) { 
    Log.e("MainActivity", "H5ToNativeGetShareStringMsg:" + data); 
  } 
});

在H5页面端,我们采用如下代码进行接收。

JsBridge.registerHandler('shareResult', function (data) { 
  var resultData = JSON.parse(data); 
  if (resultData.result) { 
    alert ("1111:"+resultData.result); 
  } else { 
    alert ("2222"); 
  } 
})

我想请教一下,在H5页面程序不做大改造的情况下,在HarmonyOS端应该怎么实现这种原生程序对H5的调用功能呢?最好还是基于tutorials_NEXT-SelectContact例子的方式,能实现这个原生程序对H5的调用么。

HarmonyOS
2024-11-06 11:40:33
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

​关于jsBridge H5调用原生,原生调用H5,FAQ中已有解决方案,可以参考FAQ:​https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-arkweb-kit-V5?catalogVersion=V5

FAQ中提供的是web本身的原生调用H5函数的方法,是通过runJavaScript()调用,也有一个三方库dsBridge,可以参考其中的实现思路。

三方库:​https://ohpm.openharmony.cn/#/cn/detail/@hzw%2Fohos-dsbridge

分享
微博
QQ
微信
回复
2024-11-06 17:37:15
相关问题
如何在HarmonyOS调试h5页面
954浏览 • 1回复 待解决
HarmonyOS Web组件加载在线H5页面
275浏览 • 1回复 待解决
HarmonyOS h5页面缩放问题
592浏览 • 0回复 待解决
如何使H5页面适配多设备?
790浏览 • 1回复 待解决
HarmonyOS H5页面加载缓存机制
329浏览 • 1回复 待解决
HarmonyOS webview H5页面事件监听
41浏览 • 1回复 待解决
HarmonyOS H5页面localstorage为null
40浏览 • 1回复 待解决
HarmonyOS h5页面是否可以适配Harmony OS
548浏览 • 1回复 待解决
HarmonyOS H5页面保存图片到本地相册
35浏览 • 1回复 待解决