gistfile1.txt var init = function (cb) { // 判断ios 和 android var device = (function () { var sUserAgent = window.navigator.userAgent.toLowerCase(), bIsIpad = sUserAgent.match(/ipad/i) == "ipad", bIsIphoneOs = sUserAgent.match(/iphone/i
var init = function (cb) { // 判断ios 和 android var device = (function () { var sUserAgent = window.navigator.userAgent.toLowerCase(), bIsIpad = sUserAgent.match(/ipad/i) == "ipad", bIsIphoneOs = sUserAgent.match(/iphone/i) == "iphone", bIsAndroid = sUserAgent.match(/android/i) == "android"; if (bIsIpad || bIsIphoneOs) { return 'ios'; } else if (bIsAndroid) { return 'android'; } })(); //判断是否在一生约app内 var isApp = (function () { var sUserAgent = navigator.userAgent.toLowerCase(); if (sUserAgent.match(/yishengyue/i) == "yishengyue") { return true; } else { return false; } })(); //ios桥接 if (isApp) { if (device == "ios") { function connectToSwiftWebViewBridge(callback) { if (window.SwiftWebViewBridge) { callback(SwiftWebViewBridge); } else { document.addEventListener('SwiftWebViewBridgeReady', function () { callback(SwiftWebViewBridge); }, false); } } connectToSwiftWebViewBridge(function (bridge) { bridge.init(); var app = function (obj) { var send = obj.data ? obj.data : ''; bridge.callSwiftHandler(obj.funName, send, function (res) { typeof obj.callback == "function" && obj.callback(res); }) } typeof cb == "function" && cb(app); }); } else if (device == "android") {//安卓实际不需桥接 但是为了传参数与ios一致 还是进行了封装 var app = function (obj) { if (obj.data) { var send = JSON.stringify(obj.data); var res = JsToNative[obj.funName](send); } else { var res = JsToNative[obj.funName](); } typeof obj.callback == "function" && obj.callback(JSON.parse(res)); } typeof cb == "function" && cb(app); } } else { typeof cb == "function" && cb(); } }; //使用方法 init(function (app) { if(app){ // 到这里说明网页在一生约app中被打开 // 并且已经桥接初始化完成 可以调用app定义好的方法 // 例:调用app的原生分享 (app端定义的方法名为 'share') app({ funName: "share",//app暴露给你的方法名称 data: { //传给app的参数 title: '分享标题', des: '分享描述', img: "分享缩略图(url全路径)", url: 'http://www.baidu.com'//分享的url地址 }, callback: function(res) { //调用原生方法后的回调 app端可以通过res告诉你调用成功(失败)等其他业务数据 (也有可能没有回调) console.log(res); } }) }else{ // 这里说明该网页在普通浏览器中被打开 } });