WebViewJavascriptBridge实现js与android和ios原生交互
16lz
2021-01-23
1、实现原生与js交互
function setupWebViewJavascriptBridge(callback) { //android使用 if (window.WebViewJavascriptBridge) { callback(window.WebViewJavascriptBridge) } else { document.addEventListener( 'WebViewJavascriptBridgeReady' , function() { callback(window.WebViewJavascriptBridge) }, false ); } //ios使用 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) {//oc或android掉js bridge.registerHandler('result', function(data, responseCallback) { if(data.errorCode == null || data.errorCode == "") window.location.href = "refresh.html?result=success"; else window.location.href = "refresh.html?result=fail"; }); //js掉原生 $(document).on('click', '#call', function() { bridge.callHandler('call', {'sessionId':$.cookie("sessionId")}, function(response) { //处理oc过来的回调 var responseData = { 'Javascript Says':'Right back atcha!' }; responseCallback(responseData); }); });});
跳转手机端 >
参考:https://www.jianshu.com/p/e37ccf32cb5b
更多相关文章
- Android 手机震动
- Android应用程序安装过程源代码分析(4)
- Android 手机与Android Studio wifi联调
- Android平台mass storage相关代码
- 使用代码为textview设置drawableLeft
- [置顶] Android 2.3.5源代码 更新至android 6.0,可以下载,度娘网盘
- cocos2dx 调用java层代码
- 安卓学习(初)第三章(3)(《第一行代码》)
- 【源码分享下载】每日更新之Android项目源码---手机天气预报系统