HarmonyOS 使用WebViewJavascriptBridge第三方库进行JS交互

使用WebViewJavascriptBridge三方库进行js交互的时候,js端调用原生的方法,原生端如何进行参数传递?

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

https://ohpm.openharmony.cn/#/cn/detail/@yue%2Fwebview_javascript_bridge是可以实现h5调用的。

参考写法:

var callbackButton2 = document.getElementById('buttons').appendChild(document.createElement('button'))
callbackButton2.innerHTML = '原生注册方法--,h5 从原生获取信息'
callbackButton2.onclick = function (e) {
  e.preventDefault()
  log('JS 调用方法 "getNativeInfo2" 方法')
  bridge.callHandler('getNativeInfo2', { 'key': 'value' }, function (response) {
    log('JS 获取到数据', response)
  })
}

然后在ets中的setupWebViewJavascriptBridge再注册个方法
this._bridge.registerHandler('getNativeInfo2', (data: Object, responseCallback: WVJBResponseCallback) => {
  if (data) {
    this._toast("JS 调用 getNativeInfo2 \n原生接收到参数:" + WebViewJavascriptBridgeTools.jsonStringify(data));
  }
  // 返回数据
  let map: Record<string, Record<string, string>> = {
    "deviceInfo": {
      "types": "测试",
      "debug": "2",
    },
    "userInfo": {
      "userId": "111",
      "member_name": "用户名",
    }
  }
  const jsonStr: string = WebViewJavascriptBridgeTools.jsonStringify(map);
  responseCallback(jsonStr);
});

这就实现了原生向js传递数据,要传什么在返回数据里面传。

分享
微博
QQ
微信
回复
1天前
相关问题
ArkTS不支持使用第三方js
4444浏览 • 1回复 待解决
第三方js迁移有懂的吗?
2775浏览 • 1回复 待解决
HarmonyOS 依赖第三方报错
226浏览 • 1回复 待解决
native交叉编译第三方
367浏览 • 1回复 待解决
HarmonyOS 编译第三方大数libgmp
235浏览 • 1回复 待解决
HarmonyOS ohpm添加第三方报错
193浏览 • 1回复 待解决
HarmonyOS 使用第三方应用打开
197浏览 • 1回复 待解决
react-native 第三方使用npm更新
1548浏览 • 1回复 待解决
如何引入自己的“第三方
788浏览 • 1回复 待解决
HarmonyOS 如何依赖第三方,比如UUID
262浏览 • 1回复 待解决
HarmonyOS支持的第三方的列表
1683浏览 • 1回复 待解决
HarmonyOS lottie 第三方报错无法使用
233浏览 • 1回复 待解决
HarmonyOS 第三方APP跳转
41浏览 • 1回复 待解决
HarmonyOS 如何加载第三方页面
37浏览 • 1回复 待解决
HarmonyOS 如何启动第三方APP
217浏览 • 1回复 待解决
HarmonyOS如何移植第三方MCU?
9446浏览 • 1回复 待解决
是否支持使用第三方的webview内核
1362浏览 • 1回复 待解决