首页 > 原创文章 > 技术应用 > 查看文章

微信小程序无法保存图片是怎么回事?如何解决

所属分类:技术应用 来源: 丁老师原创 更新时间:2025-12-22 08:49 浏览: 3097 IP属地: 深圳

最近有位同学咨询,他开发的微信小程序,有一个图片保存功能,就是对生成的二维码,点击分享后可以保存到本地,很普通的功能,在本地测试以及提交的体验版中,该功能都使用正常,都可以正常保存图片,但是在发布版中,该功能却无法使用,这是怎么回事呢?今天丁老师根据这个问题,做一下解释和回答。

首先查看该同学的代码:

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.因此,对小程序重新进行发布,在“用户隐私保护指引设置”中,勾选“采集用户隐私信息”即可。

image.png

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

image.png

4.完善信息后,点击image.png保存即可。然后关闭窗口,在审核页面,点击提交审核按钮即可。

全文总结
目前微信小程序的生态越来越完善,微信官方针对小程序的审核也越来越严格,对各项功能的使用,都有这严格的限制标准,开发者在开发上架时,需要完善对应的隐私协议、功能说明才能够正常使用。

丁老师开发了上百款的微信小程序,发现一个规律,那就是在本地调试的正常,在体验版中功能使用的正常,发布后无法使用的功能,往往不是小程序代码的问题,更多的都是规则、白名单、开发者设置、隐私协议、接口授权的问题,这往往是属于技术范畴之外的要求,如果仅在代码中找问题,那这个故障永远都没法解决。建议各位开发者朋友,在遇到类似的问题时,不要只盯着代码,多去看看微信小程序官方的文档和最新协议要求,说不准就能找到解决方法。

以上就是该文章的全部内容,如果你的小程序也遇到了相关的问题,可以试着去解决一下。如果解决不了,或者是有其他更好的意见和建议,欢迎联系丁老师咨询和交流!

相关文章

Java招聘中常说的Dubbo、Maven、...

有做程序员的同学最近在群里问,最近在找工作时,经常遇到Java程序员要求精通Dubbo、Marven、Jekins,可这些都是什么东东呀?么乱七八糟的呀,完全搞不懂呢。哈哈,其实这些都是java开发中, 经常用到的中间件程序,别着急,丁...

网站中的CSS/LESS/SCSS都是什么,...

最近有做前端的小伙伴咨询丁老师,网站中使用的不是只有css吗?怎么现在还有Less和Scss,这些都是什么,和CSS有什么区别呢?今天丁老师介绍一下。CSSCSS就是传统的网站样式表,是Cascading Style Sheet的缩写,...

Jquery 简写ready

每次使用都要在网上查询,关键词也不好搜,直接发布在这里,以供不时之需,需要请直接copy。$(function(){ console.log('丁老师软件开发做APP、小程序、网站'); });

Mysql查当天、本周、当月、本季度、当年等...

以下是mysql常用的日期时间查询语句,其中,时间字段名是默认以datetime格式的,如果是int时间戳格式的时间,则需要在时间字段名字段上,加上from_unixtime(时间字段名)。查询当天的数据:#时间字段为y-m-d格式,如...

推荐文章

AI工具大全:好用的AI工具推荐(持续更新中...

这几年AI技术的发展已经达到新的高度,从提高个人生产力到企业操作效率的各个方面,AI都扮演着不可或缺的角色。无论是进行语言交流、内容创作、或是任务管理,都有相应的AI工具可以帮助我们更加轻松地完成工作。以下是丁老师觉得不错的AI工具推荐,希...

小红书个人账号/认证账号/企业号区别一览

普通账号个人认证号企业认证号蓝色认证标识薯条推广聚光平台效果广告普通应商业合作以KOL/KOC身份和品牌合作以品牌方身份发起起合作开设店铺个人店铺或个体户(不支持港澳台公司申请)旗舰店店或专卖店(支持港澳台公司申请)主动私信每天10位陌生用...

fontawesome所有图标class类名...

fontawesome所有图标class类名单,适用于4.7.0版本。总计有593个图标class类(包含别名):fa-500pxfa-address-bookfa-address-book-ofa-address-cardfa-addre...

使用photoshop编辑文字时,弹出的文字...

今天有同学在群里提问,在使用photoshop编辑文字时,经常会弹出一个文字选择的面板如图:这时文字也无法输入,也无法取消和关闭,很是烦人,怎么取消这个功能呢?经过丁老师研究,方法很简单:1.打开photoshop菜单-编辑2.选择首选项-...