flat: 暂存,新增一体机sdk,和一体机环境
This commit is contained in:
BIN
static/font/DIN-Medium.woff2
Normal file
BIN
static/font/DIN-Medium.woff2
Normal file
Binary file not shown.
69
static/js/jsbridge.js
Normal file
69
static/js/jsbridge.js
Normal file
@@ -0,0 +1,69 @@
|
||||
(() => {
|
||||
if (!/android/.test(navigator.userAgent.toLowerCase())) {
|
||||
console.error("当前环境不支持WebView桥接通信, 请检查是否为安卓环境");
|
||||
return
|
||||
}
|
||||
let bridge;
|
||||
function setupWebViewJavascriptBridge(callback) {
|
||||
return new Promise((reslove, reject) => {
|
||||
if (window.WebViewJavascriptBridge) {
|
||||
bridge = window.WebViewJavascriptBridge;
|
||||
callback && callback()
|
||||
reslove()
|
||||
} else {
|
||||
document.addEventListener(
|
||||
"WebViewJavascriptBridgeReady",
|
||||
function () {
|
||||
bridge = window.WebViewJavascriptBridge;
|
||||
callback && callback()
|
||||
reslove()
|
||||
},
|
||||
false
|
||||
);
|
||||
}
|
||||
})
|
||||
}
|
||||
let funcs = {}
|
||||
setupWebViewJavascriptBridge(() => {
|
||||
bridge.init()
|
||||
bridge.registerHandler("ampeHHCommunication", (data) => {
|
||||
console.log('[zyh][registerHandler]',data);
|
||||
data = JSON.parse(data || '{}');
|
||||
let eventName = data.eventName || '{}';
|
||||
let eventData = JSON.parse(data.eventData || '{}');
|
||||
if (funcs[eventName]) {
|
||||
for (let callback of funcs[eventName]) {
|
||||
callback({type: eventName, data: eventData})
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
window.hh = {
|
||||
async call(funcName, params, callback) {
|
||||
if (!bridge) {
|
||||
await setupWebViewJavascriptBridge()
|
||||
}
|
||||
bridge.callHandler(funcName, params, callback);
|
||||
},
|
||||
async on(funcName, callback) {
|
||||
if (funcs[funcName]) {
|
||||
funcs[funcName].add(callback)
|
||||
} else {
|
||||
funcs[funcName] = new Set([callback])
|
||||
}
|
||||
},
|
||||
off(funcName, callback) {
|
||||
if (!funcs[funcName]) {
|
||||
return false
|
||||
}
|
||||
if (!callback) {
|
||||
return delete funcs[funcName]
|
||||
}
|
||||
let res = funcs[funcName].delete(callback)
|
||||
if(funcs[funcName].size <= 0) {
|
||||
delete funcs[funcName]
|
||||
}
|
||||
return res
|
||||
}
|
||||
};
|
||||
})();
|
||||
Reference in New Issue
Block a user