flyio
Version:
Lightweigh Promise based HTTP client for the browser and node.js
33 lines (28 loc) • 1.21 kB
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;