JSBridge.js
2.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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");
}
}
function isJson(str) {
try {
JSON.parse(str);
} catch (e) {
return false;
}
return true;
}
// 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("postERCode", 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("postGPS", iOSData, callback);
}
};
window.postERCode = function (_params) {
layer.open({
content: JSON.stringify(_params),
time: 10
});
}
window.postGPS = function (params) {
layer.open({
content: JSON.stringify(_params),
time: 10
});
}
if(window.android) {
appClient = new AppClient(window.android, true);
// 此处可以调用一些init的方法
} else {
layer.open({
content: '初始化',
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的方法
});
}