# hybridBridge
**Repository Path**: cpanmac/hybridBridge
## Basic Information
- **Project Name**: hybridBridge
- **Description**: No description available
- **Primary Language**: JavaScript
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2020-03-22
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
- 1、添加 js 文件到 html 页面
```html
```
- 2、调用原生预定义能力并设置回调函数
``` javaScript
(function(window,undefined){
//-----日志打印调试配置-----
//默认不打印日志
window.webBridgeLoging=true;
//开启调试模式
var vConsole = new VConsole();
//-----日志打印调试配置-----
})(window);
//创建二维码调用
window.webBridge.scanQrcode(
//回调函数
function callback(data) {
document.getElementById("qrcodeContent").innerHTML = data;
}
);
```
- 3、拓展原生能力
与原生沟通调用名称定义 例如“scanQrcode”,让原生定义好调用能力定义,在webBridgeSDK文件结尾部 增加调用原生定义[getUserInfo为举例说明原生未进行该功能实现]:
```javaScript
//原生调用能力添加到mobile下
var mobile = {
scanQrcode: function(callback) {
callAppRouter("scanQrcode", {}, callback);
},
getUserInfo: function(userId,callback){
callAppRouter("getUserInfo", {userId:userId}, callback);
}
};
```
- 4、IOS 端实现 安装开源组件即可实现
代码地址:[WebViewJavascriptBridge](https://github.com/marcuswestin/WebViewJavascriptBridge)
- 5、Android 端实现
```java
//建立桥接对象:bridge
myWebView.addJavascriptInterface(new JavaScriptinterface(this), "bridge");
//设置 js 调用原生方法
//jsonData 的数据规范
///{ 'method': method, 'dData': params, 'callbackName':cbName }
@JavascriptInterface
public void callHandler(String jsonData) {
JavaScriptinterfaceJson jsonObj=JSONUtil.parse(jsonData);
//扫码原生调用
if(jsonObj.getMethod().equal("scanQrcode")){
//TODO:调用原生能力 .....
String qrcodeResult="demo";
this.runJavascriptInterfaceCallback(jsonObj.getCallbackName(),qrcodeResult);
}
}
//通过调用 js 回调函数执行返回结果回调
private void runJavascriptInterfaceCallback(String cbName,String resultDataJson){
webview.loadUrl("javascript:"+cbName+"(" + "'"+resultDataJson+"'" + ")");
}
```
- 6、TODO
ios和android端demo编写