首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js与ios桥接使用WebViewJavascriptBridge简单理解

js与ios桥接使用WebViewJavascriptBridge简单理解

作者头像
蓓蕾心晴
发布2018-04-12 14:50:15
1.3K0
发布2018-04-12 14:50:15
举报
文章被收录于专栏:前端小叙前端小叙

https://github.com/marcuswestin/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(function() { document.documentElement.removeChild(WVJBIframe) }, 0)
}
Finally, call setupWebViewJavascriptBridge and then use the bridge to register handlers and call ObjC handlers:
setupWebViewJavascriptBridge(function(bridge) {
    
    /* Initialize your app here */

    bridge.registerHandler('JS Echo', function(data, responseCallback) {
        console.log("JS Echo called with:", data)
        responseCallback(data)
    })
    bridge.callHandler('ObjC Echo', {'key':'value'}, function responseCallback(responseData) {
        console.log("JS received response:", responseData)
    })
})

github地址如上

工作中用到了这个桥接,出现了很多问题,

首先,初始化了这个函数之后,然后调用这个函数,调用ios端定义的handler或者js 注册自己的handler,

但是好像不可以写多个该函数的调用,否则所有写的交互不生效。

那么我如果想调用ios定义的多个函数,只能写在一个调用里,罗列多个

 bridge.registerHandler 
和
bridge.callHandler来写了。
目前还是出现了个别交互不生效的问题。
registerHandler 就是在网页端定义一个函数,获取后端返回的相应参数,后端调用使用
callHandler  就是在ios端定义一个函数,网页端调用,传过去相应参数。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档