qiankun
qiankun copied to clipboard
能否支持加载本地文件,适配Cordova等方案
What happens?
搜索资料看到建议重写fetch方法,去读取文件内容来适配,file:// 协议。
重写fetch方法后,会报错:
application 'test-app' died in status LOADING_SOURCE_CODE: Failed to construct 'URL': Invalid base URL
是否是重写的fetch方法,返回的Response对象有什么特别的要求?
主要代码
**
* Step4 启动应用
*/
start({
fetch: async(url, ...args)=>{
let realUrl = url;
if(url.startsWith("//localhost:7100")){
realUrl = location.origin+location.pathname.replace("index.html", "test-app");
realUrl += url.replace("//localhost:7100", "");
}
console.log(111111, url, realUrl);
return readFile(realUrl);
},
});
async function readFile(path){
return new Promise((resolve, reject)=>{
MFileManager.readFile(path,(result)=>{
const realResult = new Response(result,{ "status" : 200 , "statusText" : "ok!" });
resolve(realResult);
}, (err)=>{
reject(err);
})
})
}
继续排查 发现 import-html-entry 不支持file:// 协议
Codorval需要重写用ajax请求