1. 接到需求时我觉得这个东西还不好做么,就两天写完了,万万没想到啊
一开始老大给我一个文件告诉我这里面有分享的代码,你按照这个写。我天真的以为这下全
有了,就是差我的代码实现了。吭哧吭哧写完了,把代码改了一下。卧槽,放到手机里不起
用,我google了一下,发现尼玛给我的是js-SDK,适用于微信系的开发,在我们混合不适用
。我去找老大去了,又给我一套,我发现只有ios可以,Android不适用啊,没办法又去找,
这次是我直接找的Android的开发,因为ios和Android的方法调用不同。
2. 其实很简单的,就是使用jsBridge,通过桥连接的方式实现js与native的通讯,js调用native的分享放法就可以了。
//注册桥
function connectWebViewJavascriptBridge(callback) {
if (window.WebViewJavascriptBridge) {
callback(WebViewJavascriptBridge)
} else {
document.addEventListener('WebViewJavascriptBridgeReady', function () {
callback(WebViewJavascriptBridge)
}, false)
}
}
//方法绑定
connectWebViewJavascriptBridge(function(bridge) {
// iOS扫描方法绑定
bridge.init(function(message, responseCallback) {//初始化桥接器
responseCallback({});
})
bridge.registerHandler('scanfJavascriptHandler',function(data) {// scanfJavascriptHandler
// alert(JSON.stringify(data));
console.log(data.backData);
})
});
就是在js里全是回调函数,后端的代码我看了一下,但是没有权限拉取,所以没办法粘贴一部分代码。 下面的代码是实现分享的代码
function scanCode(options) {
if (browser.versions.android) {
javascript: android.share(options.img,options.title,options.title,options.url);
} else if (browser.versions.ios || browser.versions.iPhone || browser.versions.iPad) {
let data = {
'type': 1,
'img': options.img,
'title': options.title,
'url': options.url,
'subtitle': options.title
}
// 使用桥接器执行ios方法;
window.WebViewJavascriptBridge && window.WebViewJavascriptBridge.send(data, function (responseData) {
});
}
}
网上有一些例子,但是我感觉我这种实现是最方便,最简单的。