33 lines
1.2 KiB
JavaScript
33 lines
1.2 KiB
JavaScript
let handleImgBase64Data=require("../utils/ImgBase64Handler")
|
|
|
|
// Reference from https://github.com/marcuswestin/WebViewJavascriptBridge
|
|
function setupWebViewJavascriptBridge(callback) {
|
|
if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge); }
|
|
if (window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback); }
|
|
window.WVJBCallbacks = [callback];
|
|
let WVJBIframe = document.createElement('iframe');
|
|
WVJBIframe.style.display = 'none';
|
|
WVJBIframe.src = 'https://__bridge_loaded__';
|
|
document.documentElement.appendChild(WVJBIframe);
|
|
setTimeout(function() { document.documentElement.removeChild(WVJBIframe) }, 0)
|
|
}
|
|
|
|
function adapter(request, responseCallBack) {
|
|
setupWebViewJavascriptBridge(function (bridge) {
|
|
bridge.callHandler("onAjaxRequest",request,(responseData)=>{
|
|
responseData = JSON.parse(responseData);
|
|
if(request.responseType==="stream") {
|
|
handleImgBase64Data(responseData);
|
|
}
|
|
responseCallBack(responseData)
|
|
})
|
|
})
|
|
}
|
|
//build环境定义全局变量
|
|
KEEP("cdn||cdn-min", () => {
|
|
window.wjsbAdapter= adapter
|
|
})
|
|
|
|
module.exports = adapter;
|
|
|