minigame-unity-webgl-transform icon indicating copy to clipboard operation
minigame-unity-webgl-transform copied to clipboard

WXWriteBinFileSync函数返回字符串为空

Open dvgco opened this issue 2 years ago • 1 comments

SDK-Call-JS-Old.jslib中WXWriteBinFileSync函数返回字符串为JavaScript字符串,未通过stringToUTF8 helper转化,导致C#端接收不到返回值

dvgco avatar Aug 12 '22 03:08 dvgco

请问能否提供复现demo,联系研发助手minigamedevop08进行排查

Oooocean avatar Aug 16 '22 13:08 Oooocean

@Oooocean Unity端代码大概这样调用,文件写入正常,result返回值为空。

 ...
 var fs = WeChatWASM.WX.GetFileSystemManager();
 var result = fs.WriteFileSync(filePath, bytes);
 Debug.Assert(result == "ok");

SDK-Call-JS-Old.jslib中函数:

    WXWriteBinFileSync:function(filePath, data, dataLength, encoding){
        return window.WXWASMSDK.WXWriteBinFileSync(
            _WXPointer_stringify_adaptor(filePath),
            HEAPU8.slice(data,dataLength+data),
            _WXPointer_stringify_adaptor(encoding)
        )
    }

调整下即可

    WXWriteBinFileSync:function(filePath, data, dataLength, encoding){
        var returnStr = window.WXWASMSDK.WXWriteBinFileSync(
            _WXPointer_stringify_adaptor(filePath),
            HEAPU8.slice(data, dataLength+data),
            _WXPointer_stringify_adaptor(encoding)
        );
        var bufferSize = lengthBytesUTF8(returnStr) + 1;
        var buffer = _malloc(bufferSize);
        stringToUTF8(returnStr, buffer, bufferSize);
        return buffer;
    }

dvgco avatar Aug 17 '22 05:08 dvgco

感谢反馈,已修复

Oooocean avatar Sep 01 '22 08:09 Oooocean