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

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

所属分类:技术应用 来源: 丁老师原创 更新时间:2025-12-22 08:49 浏览: 2072 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保存即可。然后关闭窗口,在审核页面,点击提交审核按钮即可。

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

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

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

相关文章

Wordpress如何进行版本更新?

Wordpress更新有两种方式,一种是自动更新,一种是手动更新。如何查看Wordpress的当前版本?1.用管理员登录Dashbord,如果Wordpress有新更新,在顶部会自动显示有新版本发布,提示进行更新。2.用管理员账号登录后...

微信小程序可以直接转为APP吗?如何实现

有客户咨询,他们已经有微信小程序了,想在微信小程序的基础上,看能不能再转为生成APP,看是否可以呢?关于这个问题,丁老师今天做一下介绍。首先,微信小程序是否能转为APP,取决与微信小程序的开发方式:一、微信小程序是原生开发如果微信小程序...

Krpano全景图默认开启陀螺仪

krpano全景图默认开启陀螺仪的方法

Linux开发常用命令

常用命令:#查看linux内核 uname -r cat /proc/version#查看linux版本详细信息 hostnamectl #列出所有文件 ls -a #列出带有拥有者的文件 ls -l #移动文件 mv 源文件或目录 新...

推荐文章

Bagisto-基于Laravel框架的免费...

软件介绍Basgito是基于Laravel框架的免费电子商务平台,可以快速搭建自己企业专属的电子商务交易平台,适用于中小型外贸企业。该电商平台拥有无头laravel商务(headless laravel commerce)的强大功能,可以快...

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

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

Linux使用lnmp套件安装后打卡默认站点...

最近要在某单位内网部署项目,使用了lnmp来配置环境,软件安装成功,可安装后不管是打开ip地址还是默认站点,都提示nginx 403 forbidden,这是怎么回事呢?首先,已经出现了nginx 403提示,说明nginx是安装正常的。其...

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

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