我的问题已经解决了,在这里通过提问这种形式分享下我遇到的问题,有可能会对您有一些帮助!
场景描述
- 我想在我的页面里,用canvas动态生成一张图片(包含用户头像、小程序码),然后让用户保存图片到相册,继而分享图片到朋友圈,如下图
问题描述
- 小程序 canvas 的 drawImage api,即把一张图片画在画布上 ,第一个参数为 图片的地址,该地址不能是网络图片,在这个地方有人做出解释
- 由于不能使用网络图片,所以需要利用
downloadFile
或getImageInfo
这两个api将其缓存到本地
坑所在的地方
- 其实坑说到底不是 canvas 的坑 ,而是微信安全域名的坑
- 当我在开发者工具中调试时,一切正常(因为我的开发者工具默认不校验安全域名),所以一直没问题
- 在手机上的表现:打开调试模式头像就加载正常,关闭调试模式就加载不出来
- 想了好长时间,查了好多canvas资料,也没搞明白问题,
高潮来了问题不是出现在canvas身上,而是出现 , downloadFile 身上
,downloadFile 受安全域名限制
,头像所在的url为https://wx.qlogo.cn
, 我万万没想到,微信居然连自己家的域名也挡在门外,真是丧心病狂啊 - 找到原因了,确实不是 canvas 的锅,是缓存 downloadFile 的问题
解决方法:将 https://wx.qlogo.cn 配置到 安全域名内就 ok 了
折腾了一大圈,没想到居然是这么个问题,有遇到这个问题的朋友可以参考下
以上就是自己的答案