Android 和 IOS 使用 jsBridge 进行交互方法
来源:互联网 发布:盯盯是什么软件 编辑:程序博客网 时间:2024/05/16 04:14
注册监听事件
这段代码是固定的,必须要放到js中
if (window.WebViewJavascriptBridge) { callback(WebViewJavascriptBridge) } else { document.addEventListener( 'WebViewJavascriptBridgeReady' , function() { callback(WebViewJavascriptBridge) }, false ); } 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)}
原生调用js
在 setupWebViewJavascriptBridge 中注册原生调用的js
//在改function 中添加原生调起js方法setupWebViewJavascriptBridge(function(bridge) { bridges = bridge; //注册原生调起方法 //参数1: buttonjs 注册flag 供原生使用,要和原生统一 //参数2: data 是原生传给js 的数据 //参数3: responseCallback 是js 的回调,可以通过该方法给原生传数据 bridge.registerHandler("buttonjs",function(data,responseCallback){ document.getElementById("show").innerHTML = "buuton js" + data; responseCallback("button js callback"); });})
js 调用原生方法
注:该方法应放在setupWebViewJavascriptBridge 中进行绑定
document.getElementById('enter3').onclick = function (e) {var data = "good hello"//参数1: pay 注册flag 供原生使用,要和原生统一//参数2: 是调起原生时向原生传递的参数//参数3: 原生调用回调返回的数据bridge.callHandler('getBlogNameFromObjC',data,function(resp){ document.getElementById("show").innerHTML = "payInterface" + resp; } );
完整代码
<html><head> <meta content="text/html; charset=utf-8" http-equiv="content-type"> <title> js调用java </title></head><body><p> <div id="show"></div></p><p><input type="button" id="enter3" value="payInterface" onclick="payInterface();"/></p></body><script> function setupWebViewJavascriptBridge(callback) { if (window.WebViewJavascriptBridge) { callback(WebViewJavascriptBridge) } else { document.addEventListener( 'WebViewJavascriptBridgeReady' , function() { callback(WebViewJavascriptBridge) }, false ); } 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) } //在改function 中添加原生调起js方法 setupWebViewJavascriptBridge(function(bridge) { //注册原生调起方法 //参数1: buttonjs 注册flag 供原生使用,要和原生统一 //参数2: data 是原生传给js 的数据 //参数3: responseCallback 是js 的回调,可以通过该方法给原生传数据 bridge.registerHandler("getUserInfos",function(data,responseCallback){ document.getElementById("show").innerHTML = "buuton js" + data; responseCallback("button js callback"); }); document.getElementById('enter3').onclick = function (e) { var data = "hello" //参数1: pay 注册flag 供原生使用,要和原生统一 //参数2: 是调起原生时向原生传递的参数 //参数3: 原生调用回调返回的数据 bridge.callHandler('getBlogNameFromObjC',data,function(resp){ document.getElementById("show").innerHTML = "payInterface" + resp; } ); } })</script></html>
1 0
- Android 和 IOS 使用 jsBridge 进行交互方法
- 使用jsBridge和原生IOS、Android交互
- html和native使用JSBridge交互
- 安卓webview和JS交互,使用连接桥JsBridge进行连
- Android-使用JsBridge来优化js与本地的交互
- Android利用JSBridge与HTML5的交互使用
- android与js交互-jsbridge
- iOS与H5界面JSBridge交互Demo
- iOS与H5界面JSBridge交互Demo
- Android,IOS中JSBridge原理
- Android JSBridge实现与前端的交互
- JsBridge android中java与js交互
- Android与前端交互之JSBridge
- Android-使用JsBridge来优化js与本地webview的交互
- 【iOS开发】H5与Native交互之JSBridge技术
- 使用java.net进行Android和服务器信息交互
- Android和js进行交互
- Android webView与js 交互以及jsbridge框架源码分析
- Android 如何在textView里面获取行数
- Win7 64bit +vs2013 + GTX1080 cuda theano caffe 配置详细记录
- RSA加密算法的基本流程
- JSON与XML的区别比较
- 图像识别(0)——终于进入“正轨”
- Android 和 IOS 使用 jsBridge 进行交互方法
- 转发与重定向的区别
- linux ASOC(3)—— jack framwork & drv
- Linux文件存储结构,包括目录项、inode、数据块
- RecyclerView 控件使用
- SM-G9008V Root,google框架安装 设置开发者模式
- mysql的SQL语句执行计划分析:EXPLAIN
- js的事件及其种类
- "undefined reference to" 问题解决方法