微信小程序错误收集

作者: SunshineBrother | 来源:发表于2018-11-05 16:55 被阅读8次

小程序canvasToTempFilePath调用报错create bitmap failed

wx.canvasToTempFilePath(OBJECT, this)
把当前画布指定区域的内容导出生成指定大小的图片,并返回文件路径。在自定义组件下,第二个参数传入组件实例this,以操作组件内 <canvas/> 组件。在性能不强的安卓机上,调用时会出现这一报错

解决办法: 延迟调用或者错误回调中进行处理。

延迟调用

wx.draw(false, () => {
    setTimeout(()=>{
        wx.canvasToTempFilePath();
    }, 200);
});

wx.draw()是一个异步执行的api,canvasToTempFilePath需要在其回调中执行。延迟200毫秒一般就可以解决这个问题。
当这个api只执行一次时延迟200毫秒其实无所谓,但是多次调用时,这个延迟也浪费了不少时间。对于性能强大的手机,这也是一种浪费,一般只有性能较弱的安卓机才会出现这个问题。所以我更建议大家使用下面一个。

错误回调处理

canvasToTempFilePath本身也是异步api,有错误回调可以使用。

let count = 0;
function getTempFile(otherOptions) {
    wx.canvasToTempFilePath({
        ...otherOptions,
        success: () => {},
        fail: (error) => {
            const { errMsg } = error;
            // 可能会有其他报错 还是拦截一下吧
            if ( errMsg === '具体报错' ) {
                // 一次不行再试一遍 两次都不过就放弃吧
                count += 1;
                if (count < 3) {
                    getTempFile(otherOptions);
                }
                else {
                    // 错了这么多遍基本没救了
                }
            }
            
        },
    });
}

小程序上传多张图片,开发环境打开调试功能时, 能正常上传,关闭调试上传失败

你的上传域名是否和小程序配置的上传文件域名一致,包括请求协议需要https

非调试状态下域名必须一致

is not in navigateToMiniProgramAPPidList

每个小程序可跳转的其他小程序数量限制为不超过 10 个

从 2.4.0 版本以及指定日期(具体待定)开始,开发者提交新版小程序代码时,如使用了跳转其他小程序功能,则需要在代码配置中声明将要跳转的小程序名单,限定不超过 10 个,否则将无法通过审核。该名单可在发布新版时更新,不支持动态修改。配置方法详见 配置。调用此接口时,所跳转的 appId 必须在配置列表中,否则回调 fail appId "${appId}" is not in** navigateToMiniProgramAppIdList**

app.json中配置

"navigateToMiniProgramAppIdList": [
    "wxbd687630cd02ce1d"
  ]

微信小程序签约免密支付文档

微信支付文档
微信小程序签约免密支付文档

相关文章

网友评论

    本文标题:微信小程序错误收集

    本文链接:https://www.haomeiwen.com/subject/kwqpoftx.html