qiankun icon indicating copy to clipboard operation
qiankun copied to clipboard

能否支持加载本地文件,适配Cordova等方案

Open demonskp opened this issue 2 years ago • 2 comments

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);
        })
    })
}

demonskp avatar Apr 29 '22 08:04 demonskp

继续排查 发现 import-html-entry 不支持file:// 协议

demonskp avatar May 18 '22 03:05 demonskp

继续排查 发现 import-html-entry 不支持file:// 协议

后续怎解决?

monstereat avatar Sep 01 '22 13:09 monstereat

Codorval需要重写用ajax请求

wangziweng7890 avatar Apr 10 '23 06:04 wangziweng7890