请教cocoscreator集成wasm构建发布到抖音的问题

问题描述
CocosCreator3.8.5 集成 wasm
准备了app.js和app.wasm两个文件,
放入 assets/resources/lib 文件夹下并把app.wasm改名为app.bin
import WasmModule from “./lib/app.js” //引入js文件
@property(BufferAsset) wasm_asset: BufferAsset //场景中挂载app.bin文件 即就是挂载 wasm文件
//测试是否正确加载wasm
let wasm_buffer: ArrayBuffer | string = this.wasm_asset?.buffer()
WasmModule({ wasmBinary: wasm_buffer }).then((Instance: any) => {
console.log(’ 测试挂载wasm成功 ')
})

测试结果: 在cocoscreator3.8.5编辑器环境下 正常
构建发布到 web手机端 运行 正常

构建发布到 抖音小游戏
在抖音开发者工具里运行 出现

app.js:40 failed to asynchronously prepare wasm: API_ERROR: instantiate:fail inputs[0] should be string, but got a(n) uint8array

报错已经告诉你答案了。
这种问题去官方文档查一下就会有结果。

请问具体怎么操作呢?能否在我给的代码上给个具体可操作的修改呢?

你把生成.wasm 单独拷贝到tt工程内。这个文件的相对tt工程的路径就是传入的参数wasmUrl
范例 代码:
async initWasm(wasmFactory, wasmUrl) {
console.log(‘wasmUrl’, typeof wasmUrl);
return new Promise((resolve, reject) => {
const errorMessage = (err) => [WasmModule]: WasmModule wasm lib load failed: ${err};
wasmFactory({
instantiateWasm: function (importObject, receiveInstance) {
WebAssembly.instantiate(wasmUrl, importObject).then((result) => {
receiveInstance(result.instance, result.module);
}).catch((err) => {
reject(errorMessage(err));
});
// let result = WebAssembly.instantiate(wasmUrl, importObject) as unknown as WebAssembly.WebAssemblyInstantiatedSource;
// receiveInstance(result.instance, result.module);
}
}).then((inst) => {
resolve(inst);
}).catch((err) => {
reject(errorMessage(err));
});
});

        // let result = await wasmFactory({ instantiateWasm: instantiateWasmFunc });
        // return result;
    };
    async loadWasm(wasmBinaryData) {
        if (!wasmBinaryData) {
            console.error('为传递模块数据');
        }
        // 某个异步函数体内
        try {
            const module = await this.initWasm(createRvo2Module, wasmBinaryData);
            return module;
        } catch (error) {
            console.error('模块加载失败', error);
            return null;
        }

    }