Android比较简单:
H5调用Android:
bridge.doClipOnlineProject(id, holderId); // doClipOnlineProject是Android定义好的方法
Android调用H5:
let keyboardUpEvents = () => {
alert('keyboardUpEvents');
console.log('keyboardUpEvents');
}; // 直接定义函数 Android可以直接调用
ios:
H5调用ios:
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)
}
setupWebViewJavascriptBridge(function(bridge){
bridge.callHandler('getToken', {'code':'0'}, function(response) {
Bridge.token = response.user_token || GetRequest().user_token;
console.log(response);
Bridge = { // 注册到Bridge 上可以绑定到window
createVC(url){ // 新开webview
bridge.callHandler('createVC', {'url':url});
},
webClip(id,holderId){
bridge.callHandler('webClip', {'id':id, 'holderId':holderId})
},
localClip(){
bridge.callHandler('localClip')
}
}
});
})
ios调用H5:
bridge.registerHandler('Refresh', function(data, responseCallback) { // 运用registerHandler注册事件
console.log("Refresh");
});