微信小程序分享海报/卡片生成时常见问题分析

2019年3月2日 7031点热度 6人点赞 6条评论

微信小程序的分享功能目前只能转发给微信用户或者是转发分享到群,不能实现直接转发分享到微信朋友圈。因此,很多微信小程序都采用了生成分享图,小卡片式的分享海报,便于用户分享到朋友圈。

然而,很多时候,开发者在调试小程序的分享图时,总是会遇到不能正常生成的问题,这里面还是有许多的坑。这一次就把我个人所知道的问题分享一下。

第一种情况:域名不在信任下载列表。

现在微信小程序对于需要下载的资源,都是需要把对应的下载资源域名填写到微信小程序的开发设置中的服务器配置里的 downloadFile 域名。假如出现的错误提示是域名不在下载列表,那么就是没有把对应的图片域名填写到服务器配置的 downloadFile 域名中。

第二种情况:域名已经添加在 downloadFile 域名中。

在调试过程中,遇到有人说,域名已经添加到了 downloadFile 域名中了,但是还是提示该域名不在信任下载域名列表中。其实这种情况的发生有两个原因。

原因一、添加域名后,没有更新开发工具的缓存,一般情况下,关掉开发工具,重新打开开发工具调试,就基本上正常了。

原因二、添加的域名和提示错误的域名所使用的协议不一致。比如,图片的链接协议是 http 方式,但是添加到 downloadFile 域名的协议,默认是 https 协议,这是微信小程序的硬性要求,必须使用 https 协议。所以,域名是一致,但是,协议不一致,同样也是不行的,自然也就报错了。

第三种情况:域名已经添加在 downloadFile 域名中,且协议方式一致。

这种情况会让很多人抓狂,明明照着说明,已经做对了,开发工具中也没有任何的提示,为什么还是不行呢?这种情况,需要留意的一个问题就是图片命名了。

有很多网站或者是后端上传图片的时候,为了容易查找该图片,所以采用的是中文命名方式。使用中文名称的图片在展现上是没有什么大问题的,但是在微信小程序下载图片的时候,如果没有对图片的中文名进行转码,是无法正常下载的,必须要对中文名称进行转码才可以正常下载图片进行合成分享图。所以,遇到这种情况的,可以试着更换图片,使用英文或数字名称的图片进行测试分享图的生成。

第四种情况:downloadFile 域名设置正确,图片也改成了英文或数字名称,但还是一样提示错误或者没有反应。

这种情况有时候容易让人忽略的一个问题就是:服务器缓存。为了加快访问速度,有时候会在服务器对数据进行缓存,从而可以提高小程序或者网站的访问速度。但是,缓存一般都是有个时间值的,时间值没有失效,那么数据就还是之前缓存的内容,也就是你修改之前的内容的。如果在开发调试之前就已经有问题产生,而修改了错误内容后又没有更新缓存(服务器和开发工具),那么,问题依然还是会存在的。所以,注意一下后端是否有缓存设置,如果有缓存,更新内容和设置后,需要清理一下缓存再调试。

除了以上的四种情况,还有可能存在的一个问题就是图片太大,网速不好,导致生成分享图的时候,一直没有任何的反应,即没有错误提示,又没有合成的分享图片出来。这种情况可以考虑换个小一点的图片,和更换网络进行测试一下。一般情况下,我都是比较建议在生成分享图的过程中有提示。比如:下载二维码,下载封面图,正在生成等,每一个步骤都有对应的提示,这样有利于用户了解生成分享图是否完成,也有利于调试到哪一步出问题,从而更好的寻找问题的原因。

以上就是我在使用 WordPress 创建微信小程序生成朋友圈分享图中遇到过的问题。当然,除了上面的情况,还有其他未知原因,这个和不同的程序后端及 API 有关系,需要自己多去尝试了。

好久没有更新内容,也没有发布更新小程序,一方面是工作原因,另一方面是个人原因。当然,也有尝试开发了一个小程序,背景音频播放小程序,正在做最后的测试,完成后将分享给我个人的知识星球用户,有兴趣的不妨加入一起聊。

封面题图:rawpixel / Pixabay

WPTalk

这个人很懒,什么都没留下

文章评论

  • 翁志辉

    支持

    2019年3月17日
  • MEI

    界面越来越好看了,优秀

    2019年3月17日
    • Chi

      @MEI 来一份支持一下?哈哈哈

      2019年3月18日
  • 翁志辉

    cdn很可能也会出现问题,比如防盗链没设置好

    2019年3月24日
    • Chi

      @翁志辉 如果你托管图片的服务器有防盗链处理,那么得将 servicewechat.com 加入白名单中。

      2019年3月25日
  • 马克จุ๊บ

    看起来不错哦

    2019年4月25日
  • 您需要 登录 之后才可以评论