您的位置:首页 > 移动开发

js与ios交互,使用WebViewJavascriptBridge三方库

2017-08-22 11:59 567 查看

js与ios交互,使用WebViewJavascriptBridge

js端:

<body>
<button>点我</button>
<input value="" id="res" type="text"/>
</body>


1,固定代码放js里:

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 = 'wvjbscheme://__BRIDGE_LOADED__';
document.documentElement.appendChild(WVJBIframe);
setTimeout(function() { document.documentElement.removeChild(WVJBIframe) }, 0)
}


2,封成函数方便后面交互时调用:

nativeInteractive=function(fn,obj){
setupWebViewJavascriptBridge(function(bridge) {
if(obj){
bridge.callHandler('webview_call_native', obj, function(response) {});
}
bridge.registerHandler('native_call_webview', function(data,response) {
fn(data);
})
});
}


native_call_webview是要接受ios端参数的函数名;

webview_call_native是要传参给ios的参数名;

这两个名字要与ios端协商好;

3,调用:

$("button").click(function(){
var native=function(data){//data是ios向js传的参
if(data.say=="yes"){
$("#res").val(data.iosSay);
}
responseCallback({'jsSay': 'yes'});//收到参数回复ios
}
var requestH5={//js向ios传参
user_id:"js001",
jssay:"can you hear me?"
}
nativeInteractive(native,requestH5);
})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: