JSBridge.js 3.24 KB
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端

function AppClient(appObj, isAndroid) {
    this.appObj = appObj;
    this.isAndroid = isAndroid;
};

AppClient.prototype.closePage = function() {
    if (this.isAndroid) {
        this.appObj.closePageAction();
    } else {
        this.appObj.callHandler("closePageAction");
    }
}
AppClient.prototype.login = function() {
    if (this.isAndroid) {
        this.appObj.closePageAction();
    } else {
        this.appObj.callHandler("closePageAction");
    }
}
function isJson(str) {
    try {
        JSON.parse(str);
    } catch (e) {
        return false;
    }
    return true;
}
function toJson(str) {
    try {
        var arr = str.split(2,str.length - 4)
        console.log(arr)
    } catch (e) {
        return ''
    }
}
// window.invokeJsPassCompanyCodeAndName = function(_params) {
//     companyCode = _params.companyCode;
//     companyName = _params.companyName;
//     var jsonStr = "";
//     getSign(jsonStr);
// }
//
AppClient.prototype.getERCode = function (callbackName, callback, jsonStr) {
    var dataParams = "";
    if(isJson(jsonStr)){
        dataParams = JSON.parse(jsonStr);
    }
    var iOSData = {
        from: 'H5',
        params: dataParams
    };
    if (this.isAndroid) {
        this.appObj.getERCode('H5', jsonStr);
    } else {
        this.appObj.callHandler("getERCode", iOSData, callback);

    }
};
AppClient.prototype.getGPS = function (callbackName, callback, jsonStr) {
    var dataParams = "";
    if(isJson(jsonStr)){
        dataParams = JSON.parse(jsonStr);
    }
    var iOSData = {
        from: 'H5',
        params: dataParams
    };
    if (this.isAndroid) {
        this.appObj.getGPS('H5', jsonStr);
    } else {
        this.appObj.callHandler("getGPS", iOSData, callback);

    }
};
//
// window. = function (_params) {
//
// }
// window.postGPS = function (params) {
//     layer.open({
//         content: JSON.stringify(_params),
//         time: 10
//     });
// }
var appClient = new AppClient(window.android, true);
// layer.open({
//     content:  window.android,
//     time: 2
// })




if(isAndroid) {
  layer.open({
      content:  'Android' ,
      time: 2
  })
    appClient = new AppClient(window.android, true);
    // 此处可以调用一些init的方法
} else if(isiOS) {
  layer.open({
      content:  'IOS' ,
      time: 2
  })
    function setupWebViewJavascriptBridge(callback) {
        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) {
        appClient = new AppClient(bridge, false);
        // 此处可以调用一些init的方法
    });
} else {
    layer.open({
      content. '环境判断失败',
      time: 2
    })
}