最近有位同学咨询,他开发的微信小程序,有一个图片保存功能,就是对生成的二维码,点击分享后可以保存到本地,很普通的功能,在本地测试以及提交的体验版中,该功能都使用正常,都可以正常保存图片,但是在发布版中,该功能却无法使用,这是怎么回事呢?今天丁老师根据这个问题,做一下解释和回答。
首先查看该同学的代码:
wx.downloadFile({
url:image_url,
success: (res) => {
if (res.statusCode!==200) {
console.log('图片下载失败')
}
else{
wx.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success: () => {
console.log('保存成功')
},
fail: (error) => {
console.log('保存失败', error)
}
})
}
},
fail: (err) => {
console.log('图片下载失败,网络异常')
}
})从这个代码上看,先是下载图片,然后根据保存的临时路径,保存到本地,这个代码一点问题也没有,并且在本地和体验版中,都能成功运行,成功保存图片,这说明程序代码是没有问题的,那么为什么在正式版中无法保存呢?
问题分析
1.根据微信小程序的要求,下载的远程图片,域名必须在微信小程序开发者设置中的白名单中,检查白名单后发现没问题,该图片的根据域名已经添加白名单。
2.检查了图片文件,是正规的普通jpg文件,200K左右,尺寸不大,文件大小符合规范,没问题。
3.既然在体验版中可以用,在正式发布版中没法用,那么最后就只剩下权限问题了。和该同学沟通,了解了他在微信发布时的情况,果然,就是发布时的问题,他没有选择“采集用户隐私”!就时这个问题引起的!
采集用户隐私
1.微信小程序要求,在发布微信小程序时,需要选择是否采集用户隐私信息。
2.在以往的版本中,隐私信息包含用户的姓名、电话、地址等敏感信息,如果涉及采集这些信息,则必须选择“采集用户隐私”。
3.在现在的微信小程序审核中,用户相册的写入权限,也容纳在了采集用户隐私信息中,即使该小程序没有读取用户姓名、电话、地址等敏感信息,而涉及用户照片读取和写入的,一样归类未采集用户隐私信息。
4.因此,对小程序重新进行发布,在“用户隐私保护指引设置”中,勾选“采集用户隐私信息”即可。

解决方法
1.提交审核时,在“用户隐私保护指引设置”中,勾选“采集用户隐私”。
2.点击下方的“点击更新”用户隐私保护指引,完成用户隐私信息设置。
3.完善相册写入权限的用途、完善联系方式。

4.完善信息后,点击
保存即可。然后关闭窗口,在审核页面,点击提交审核按钮即可。
全文总结
目前微信小程序的生态越来越完善,微信官方针对小程序的审核也越来越严格,对各项功能的使用,都有这严格的限制标准,开发者在开发上架时,需要完善对应的隐私协议、功能说明才能够正常使用。
丁老师开发了上百款的微信小程序,发现一个规律,那就是在本地调试的正常,在体验版中功能使用的正常,发布后无法使用的功能,往往不是小程序代码的问题,更多的都是规则、白名单、开发者设置、隐私协议、接口授权的问题,这往往是属于技术范畴之外的要求,如果仅在代码中找问题,那这个故障永远都没法解决。建议各位开发者朋友,在遇到类似的问题时,不要只盯着代码,多去看看微信小程序官方的文档和最新协议要求,说不准就能找到解决方法。
以上就是该文章的全部内容,如果你的小程序也遇到了相关的问题,可以试着去解决一下。如果解决不了,或者是有其他更好的意见和建议,欢迎联系丁老师咨询和交流!
OpenMRS(Open Medical Record System)是一个全球性的电子健康记录(EHR)平台,是全球具有影响力的电子医疗记录系统,专注于医疗记录管理,尤其在发展中国家医疗信息化项目中应用广泛,是医疗领域软件的权威代表。...
用MCP+知识库+工作流+OpenClaw实现自动化办公,是以OpenClaw为核心,对接AI大模型完成日常办公自动化,可以实现企业级智能化办公,可将复杂任务自动化、降低开发成本的AI解决方案。本文将从技术原理、组件介绍、协同方式、应用...
Google Gemini是一款非常强大的AI大语言模型,由google公司出品,支持包括中文语言在内的超过40种语言处理,在中文内容的处理方面,个人感觉比国内的大模型要优秀一些(主要是生成的内容质量、语义语法、内容重复性、文章结构等几...
#通用微信小程序原型生成提示词 #角色设定与技术要求 您是一位世界级的全栈工程师,同时精通产品规划和UI/UX设计。现在需要开发一款微信小程序,要求输出一套完整的微信小程序原型图。 请严格按照以下要求执行: #核心技术规范 使用Tail...
从事技术开发的同学都知道,不管是做网站也好,开发各种业务系统也好,目前大多数企业部署的web环境是-操作系统:Linux,数据库:Mysql/MariaDB/PostgreSQL/MongoDB,Web容器:Nginx/Tomcat/Apa...
fontawesome所有图标class类名单,适用于4.7.0版本。总计有593个图标class类(包含别名):fa-500pxfa-address-bookfa-address-book-ofa-address-cardfa-addre...
挺不错的浏览器,强加入了edge image viewer图片浏览器,感觉不是那么好,对于开发者来说,更想要原生的东西。包括微信网页版里的表情图片,用edge image viewer打开的话,无法保存为gif格式,即使保存了,也只是第一帧...
上一期我们讲到了《微信小程序发布后多久可以能被搜索到?》,我们已经知道了微信小程序在上架后,多久能被搜索到的一个时间范围。本期我们讲一下,微信小程序被搜索,如何提升排名,是搜索结果靠前的方法。首先,微信小程序的搜索结果排名,并没有一个固定的...