首页 > 行业动态 >小程序开发中需注意的6个问题,小心踩坑!

小程序开发中需注意的6个问题,小心踩坑!

2021-09-27

小程序轻便快捷,无需下载安装即可使用,因此诞生三年来一直很受大众追捧。现在各种类型的小程序都陆续上线,不过相信大家也发现了,虽然数量很多,但质量却参差不齐。这是由于小程序开发水平有高有低。 这篇文章主要是介绍在微信小程序上踩过的一些比较典型的坑和一些避坑小技巧, 希望给大家一些参考,从而节省产品开发和上线的时间。这篇文章主要面向的是有一定小程序开发经验的读者。


小程序轻便快捷,无需下载安装即可使用,因此诞生三年来一直很受大众追捧。现在各种类型的小程序都陆续上线,不过相信大家也发现了,虽然数量很多,但质量却参差不齐。这是由于小程序开发水平有高有低。

   这篇文章主要是介绍在微信小程序上踩过的一些比较典型的坑和一些避坑小技巧, 希望给大家一些参考,从而节省产品开发和上线的时间。这篇文章主要面向的是有一定小程序开发经验的读者。

一、小程序canvas保存图片问题

   问题表现:用canvas动态生成一张图片(包含用户头像、小程序码),然后让用户保存图片到相册,继而分享图片到朋友圈。这时出现系统繁忙,没有办法生成图片海报。而且在小程序调试工具不会出现问题, android手机不会出现问题, ios会出现该问题。

   分析与解决方案:翻遍文档,查了google。研究下canvas保存图片的原理大致是canvas要把图片放在画布上面,不能使用网络图片,因此需要利用downloadFile这个Api把图片缓存到本地。而downloadFile是受到安全域名限制的,所以需要在小程序后台将图片链接的域名,包括微信头像的域名wx.qlogo.cn加入到安全域名中。

二、Formid问题

   问题表现:微信小程序发送模板消息出现41028,invalid form id hint, 新产生的formid依然无法正常使用,android的可以,而ios的总是失败。

   分析和解决方案:为了能给用户发送消息通知,需要在小程序埋表单,在用户点击某个按钮时获取formid并传到后端保存。经过分析发现数据库的长度是16位, 而安卓端产生的formID 是这样的13位例如:1532424185780, ios端产生的是32位:5f51e0ba44ad3103dc359893571835a7。 ios产生的formid超过数据库的字段长度,会在存储到数据库时自动被截取前16位 ,因此发送的formid就变成无效formid了。解决方案是延长数据库字段的长度到32位。

三、模板通知跳转问题

   问题表现:在生产做测试时点击小程序的模板通知,发现跳转了体验版的页面.

   分析与解决方案:后来查看了微信小程序的文档,发现小程序模板消息的跳转逻辑如下:formid是开发版获取的,就跳开发版;formid是体验版获取的,就跳体验版;formid是发布版获取的,就跳发布版。删除对应用户获取到的formid, 让用户重新获取formid即可。

四、二维码跳转问题

   对于调用微信接口生成的二维码, 扫描二维码会直接跳转至正式版小程序,不会跳转至体验版,调试的时候要注意。

五、H5链接参数丢失问题

   问题表现:webview打开h5链接时都不是想要的网站页面。也就是说在直接复制链接在手机浏览器或者微信浏览器打开都没有问题,但是在小程序嵌入链接打开就不是指定的页面。

   分析与解决方案: 通过抓包分析(推荐工具whistle), 发现了h5链接参数发生丢失, 比如原链接是https://example.com?host=xxxx, 在微信小程序里打开就变成https://example.com. 解决方案是先encodeURIComponent(url) 后在webview页面decodeURIComponent(url )。

六、审核问题

   审核不通过提示”涉及平台未允许的内容:诱导分享朋友圈 “, 可以尝试修改下文案再提交,比如说"分享到朋友圈" 修改为<。。。。>。

   这里说明一下, 微信小程序有一套审核机制,实现上感觉像是机器审核+人工审核。上线之前要提交审核,只有审核成功的小程序才能正常发布。微信对诱导分享的行为有所限制,但是目测修改文案也可以能通过审核。当然不敢保证完全成功。

上一篇: 定制微商城与平台微商城有什么区别?
下一篇: APP开发合同签署需要注意哪些问题?