WXWebAssembly.instantiate方法的第一个参数,如何通过远程下载本地实例化?
发布于 4 年前 作者 chenmin 8200 次浏览 来自 官方Issues

根据报错提示,第一个参数需要传入一个绝对路径的.wasm文件,如pages/index/hello.wasm

如果需要将远程的wasm下载到本地再实例化应该如何实现呢,报错明确提示了,不能以wxfile://或http的文件路径开头,所有还有其他读取存储后文件绝对路径的且获取出来不为wxfile:前缀的绝对路径,api可以调用吗?

wasm资源文件超出了2m,希望可以走远程下载到本地再实例化

const info = {};
const cloudWasm = 'https://cdn.com/hello.wasm'
wx.downloadFile({
  url:cloudWasm,
  success:res=>{
      const {tempFilePath} = res;
      // 如何将tempFilePath转成绝对路径呢?
    const fs = wx.getFileSystemManager();
      const { env:{ USER_DATA_PATH } } = wx; // 当前用户设备的环境目录
      const wasmfilename = tempFilePath.slice(tempFilePath.lastIndexOf('/') + 1);// 提取文件名和后缀
     fs.saveFileSync(tempFilePath, wasmdir + wasmfilename);
     
      const wasmdir = USER_DATA_PATH + "/wasm/"// 在当前用户环境下新建一个目录
      const obsoluteWasmFilePath = `${tempFilePath}/${wasmfilename}`;

      WXWebAssembly.instantiate(obsoluteWasmFilePath,info).then(suc=>{
           console.log('初始化成功') 
      },err=>{
           console.log('初始化失败')  
      })
    
          }
    }  )
1 回复

WXWebAssembly.instantiate方法,如何通过远程下载wasm文件且存储读取为非wxfile://开头的绝对路径,实例化成功????

回到顶部