微信小程序保存图片的两种方法

wx.showShareImageMenu( )

功能描述:打开分享图片弹窗,可以将图片发送给朋友、收藏或下载

效果如下:

 //下载
wx.downloadFile({
   url: 'https://res.wx.qq.com/wxdoc/dist/assets/img/demo.ef5c5bef.jpg',
   success: (res) => {
     wx.showShareImageMenu({
       path: res.tempFilePath //要分享的图片地址,必须为本地路径或临时路径
     })
   }
 })

如果只想要把图片保存到系统相册,不想要打开分享弹窗,可以使用:

wx.saveImageToPhotosAlbum( )

功能描述:保存图片到系统相册

// 点击下载图片事件
downloadImg(url) {
	let that = this
	wx.showLoading({
		title: '加载中...'
	});
	//wx.downloadFile方法:下载文件资源到本地
	wx.downloadFile({
		url: url, //图片地址
		success: function(res) {
			//wx.saveImageToPhotosAlbum方法:保存图片到系统相册
			wx.saveImageToPhotosAlbum({
				filePath: res.tempFilePath, //图片文件路径
				success: function(data) {
					wx.hideLoading(); //隐藏 loading 提示框
					wx.showModal({
						title: '提示',
						content: '保存成功',
						modalType: false,
						complete() {
							that.closePicturePopup()
							that.closeSharePopup()
						}
					})
			
				},
				// 接口调用失败的回调函数
				fail: function(err) {
					if (err.errMsg === "saveImageToPhotosAlbum:fail:auth denied" || err
						.errMsg === "saveImageToPhotosAlbum:fail auth deny" || err
						.errMsg === "saveImageToPhotosAlbum:fail authorize no response"
					) {
						wx.showModal({
							title: '提示',
							content: '需要您授权保存相册',
							modalType: false,
							success: modalSuccess => {
								wx.openSetting({
									success(settingdata) {
										console.log("settingdata",
											settingdata)
										if (settingdata
											.authSetting[
												'scope.writePhotosAlbum'
											]) {
											wx.showModal({
												title: '提示',
												content: '获取权限成功,再次点击图片即可保存',
												modalType: false,
											})
										} else {
											wx.showModal({
												title: '提示',
												content: '获取权限失败,将无法保存到相册哦~',
												modalType: false,
											})
										}
									},
									fail(failData) {
										console.log("failData",
											failData)
									},
									complete(finishData) {
										console.log("finishData",
											finishData)
									}
								})
							}
						})
					}
				},
				complete(res) {
					wx.hideLoading(); //隐藏 loading 提示框
				}
			})
		}
	})
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值