微信小程序踩坑记录 ------- 解决 http://thirdwx.qlogo.cn 不在以下 downloadFile 合法域名列表中的问题

这几天搞了个活动再次用到了使用canvas生成分享图的技巧,本来都是轻车熟路,奈何还是太年轻,严重低估了微信小程序坑的深度,这一脚踩的是猝不及防。几经周折终于是试出来了一个解决的办法,在这里记录,为后人搭桥防止坠坑。

对于还不知道如何在微信小程序中用canvas画出分享图的小伙伴,可以参考我的另外一篇文章 《微信小程序踩坑记录 ------- canvas生成带小程序码的微信朋友圈分享图》

在我之前写的文章有提到过,canvas 里面的图片必须是本地图片不能使用网络图片,因此我们需要用到微信的一个API wx.downloadFile 将网络图片转化成本地图片,以供canvas画图时候使用,其中也明确提出需要将要下载图片的路径地址中 https 格式的域名在小程序后台进行安全域名配置。本以为万事具备,但是万万没想到正式发版以后好多用户都无法生成自己的分享图,真的是让自己严重怀疑是否写错了,可是我怎么测试都没有问题,最后几经周折发现是因为有一部分从第三方引入的用户头像是 https://thirdwx.qlogo.cn 开头的路径,时间长不使用这个功能了这就当是自己业务能力不足造成的,这个锅我背了,赶紧配置安全域名进行解决。本以为这回总没事了吧,谁成想,千算万算怎么也没算到,微信玩了一手更狠的,还有一大部分用户头像是以 http://thirdwx.qlogo.cn 开头的路径,报错信息如下,微信自己发布提供的http格式路径让存着,然后又在这里自己卡着不放报着错,真乃神操作。
在这里插入图片描述
千言万语一句话,MMP。不发牢骚上干货。

耗费了我整整一个晚上在这里试来试去,什么将http://thirdwx.qlogo.cn 替换成 https://thirdwx.qlogo.cn 呀(方法无效),后端进行批量处理呀(害怕后续新用户还有这种路径的头像),都不如意,最终定下来这一套解决方案 。

wx.downloadFile({
	url: shareInfo.userphoto.replace('http://thirdwx.qlogo.cn', 'https://wx.qlogo.cn'),
	success: (res)=>{
		var avatarUrl = res.tempFilePath
	}
})

解决思路,通过 replace 方法将头像路径中的 http://thirdwx.qlogo.cn 替换成 https://wx.qlogo.cn ,头像还是原来的头像,但是可以下载成本地图片再也不会报错了,canvas 可以正常画图了,用户可以正常进行分享图生成了,总算是解决掉了这个问题。

我的解决办法是一步步试出来的,仅供参考,如果有更好的解决方案欢迎留言评论。

  • 12
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值