美文网首页vue系列uni
鸿蒙next webview搭桥

鸿蒙next webview搭桥

作者: litielongxx | 来源:发表于2024-12-08 16:57 被阅读0次

https://ohpm.openharmony.cn/#/cn/detail/@yue%2Fwebview_javascript_bridge
已有较为详细的方式。

搭桥

app中接入h5之后,网页如果想要和app通信。
1 直接打开app原生某个页;2 设置app权限定位;3 获取客户端实时传给页面的参数、或页面传给客户端就需要用到

2 搭桥方式和ios一致
__bridge_loaded__ 这个域名实际上是一个约定俗成的标识,用于WebViewJavascriptBridge框架中触发桥接初始化的特定行为。在setupWebViewJavascriptBridge函数中,通过创建一个不可见的iframe元素,并将其src属性设置为wvjbscheme://__BRIDGE_LOADED__(或者https://__bridge_loaded__),目的是让WebView加载这个特殊的URL,从而触发原生代码中的桥接初始化流程
仅看js端

// 初始化 WebViewJavascriptBridge
function setupWebViewJavascriptBridge(callback) {
      if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge); }
      if (window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback); }
      window.WVJBCallbacks = [callback];
      var WVJBIframe = document.createElement('iframe');
      WVJBIframe.style.display = 'none';
      WVJBIframe.src = 'https://__bridge_loaded__';
      document.documentElement.appendChild(WVJBIframe);
     // 为什么setTimeout 0见上述
      setTimeout(function () { document.documentElement.removeChild(WVJBIframe) }, 0)
}

// 注册方法,给原生调用  (基本用不到忽略)
setupWebViewJavascriptBridge(function (bridge) {
    bridge.registerHandler('getH5Info', function (data, responseCallback) {
        console.log('原生调用 getH5Info 方法传递的参数', JSON.stringify(data))
        // JS 返回给原生的数据
        var responseData = { 'H5Info': 'xxxxx' }
        responseCallback(responseData)
    })
})

// JS 调用原生端注册的方法  getNativeInfo是客户端写当如变了则换对应
function testGetNativeInfo() {
    setupWebViewJavascriptBridge(function(bridge) {
        bridge.callHandler('getNativeInfo', { 'key': 'value' }, function (response) {
                  console.log('JS 获取到原生侧给的数据', response)
            })
    })
}

webview 识别鸿蒙端next
var u = navigator.userAgent //判断手机类型
u.indexOf('ArkWeb') > -1
u.indexOf('iPhone') > -1
u.indexOf('Android') > -1

补充

如果setupWebViewJavascriptBridge有时无效,可以放在setTimeout例如多少ms延时后

相关文章

  • Fa应用WebView中web页面Js传值给Java(Abili

    其实相关内容已经在 鸿蒙(HarmonyOS)-Fa应用中WebView的使用[https://www.jians...

  • 搭桥

    【搭桥】 他坐在火炉旁,吃着早上刚烤好的馒头,今天天气阴沉沉的,昨天手机天气预报说...

  • 搭桥

    第二组作品(陈果、禹博然、施月婷、张益晨、罗培溪) 一天,天气晴朗,阳光明媚,天空蓝蓝的,小河里的水清澈见...

  • 搭桥

    第一组作品(周炜承、沈王湘镱、孙紫偌、王琪曼、胡江东) 有一天,天气晴朗,天上飘着棉花糖一样的白云。碧绿碧...

  • 搭桥

    有一天洪水把平坦的地分成了两块,可是小白兔想要去对面的另一半地上去采蘑菇,小刺猬想去对面摘苹果,于是大白兔大声喊着...

  • 搭桥

    小小说:搭桥 文/饶哲生 没有入口,手足无措。茫然看天,天也像我的心情一样阴沉沉的,没有注解。 回到客厅,女儿...

  • 搭桥

    今天晚上我和爸爸玩了一个游戏叫搭桥。首先要把顺序一样的扑克牌打乱,然后再分牌,一个一个的放牌,然后等到出现...

  • 搭桥

    现实是此岸,理想是彼岸,中间隔着湍急的河流,行动就是架在河上的桥梁。——克雷洛夫 星期五这天小山村里风和日丽,充满...

  • 鸿蒙如何才能“成功”

    1、鸿蒙为何物? 鸿蒙包括手机鸿蒙和万物鸿蒙,此文讨论的鸿蒙重点是基于万物互联的鸿蒙,而不仅仅是手机鸿蒙。也只有在...

  • 鸿蒙(HarmonyOS)-Fa应用中WebView的使用

    Fa应用是支持WebView嵌入H5网页的,WebView提供在应用中集成Web页面的能力,不过目前只支持Java...

网友评论

    本文标题:鸿蒙next webview搭桥

    本文链接:https://www.haomeiwen.com/subject/wxmgsjtx.html