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

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 提示框
				}
			})
		}
	})
}

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 uni.saveImageToPhotosAlbum 接口将图片保存到微信小程序的本地相册中。 首先,需要在小程序的 app.json 中添加如下权限: ``` "permission": { "scope.writePhotosAlbum": { "desc": "保存图片到相册需要使用" } } ``` 然后,在需要保存图片的页面或组件中,可以调用 uni.saveImageToPhotosAlbum 接口,如下所示: ``` uni.saveImageToPhotosAlbum({ filePath: '图片文件路径', success: function () { console.log('保存图片到本地相册成功'); }, fail: function () { console.log('保存图片到本地相册失败'); } }); ``` 注意: - filePath 参数为图片文件的本地路径。 - uni.saveImageToPhotosAlbum 接口需要用户授权,如果用户拒绝授权,则无法保存图片到本地相册。 在用户授权后,就可以将图片保存到微信小程序的本地相册中了。 ### 回答2: 在uniapp中,可以使用uni.request和uni.downloadFile这两个api来保存微信小程序中的图片到本地。 首先,我们需要将图片保存到服务器上,可以通过uni.request来完成。将图片的url传递给uni.request,并设置responseType为arraybuffer。示例代码如下: uni.request({ url: '图片url', responseType: 'arraybuffer', success: res => { // res.data即为图片的二进制数据 // 接下来将图片保存到本地 } }) 接着,我们可以通过uni.downloadFile api来将图片保存到本地。将res.data作为参数传递给uni.downloadFile的url参数,并设置保存路径filePath。示例代码如下: uni.downloadFile({ url: 'data:image/png;base64,' + uni.arrayBufferToBase64(res.data), success: res => { if (res.statusCode === 200) { // res.tempFilePath为图片保存到本地的临时文件路径 console.log(res.tempFilePath) } } }) 最后,我们可以将保存到本地的临时文件移动到用户的相册中,使用uni.saveImageToPhotosAlbum来完成。示例代码如下: uni.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success: res => { console.log('保存成功') }, fail: err => { console.log('保存失败') } }) 以上就是使用uniapp微信小程序保存图片到本地的简单步骤。需要注意的是,uniapp也提供了其他的api和方法来实现保存图片的功能,可以根据具体需求选择适合的方法。 ### 回答3: uniapp是一种跨平台开发框架,可以同时开发多个平台的应用程序,包括微信小程序。在uniapp中,我们可以使用uni-app插件来实现将图片保存到本地的功能。 具体步骤如下: 1. 首先,我们需要在uniapp项目中引入uni-app插件,可以通过在项目的根目录下的`uni.xml`文件中的`easycom`节点中添加`"@dcloudio/uni-save-image"`来引入插件。 2. 在需要保存图片的页面中,使用`uni.saveImageToPhotosAlbum()`方法保存图片到本地相册。该方法需要传入一个对象参数,其中包含要保存的图片路径`filePath`和一个回调函数`success`用来处理保存成功的情况,和一个`fail`函数用来处理保存失败的情况。 3. 在回调函数中,我们可以通过判断返回值中的`errMsg`属性来判断保存是否成功,如果成功则显示保存成功的提示,否则显示保存失败的提示。 下面是一个示例代码: ``` <template> <view> <image src="/static/image.png"></image> <button @click="saveImage">保存图片</button> </view> </template> <script> export default { methods: { saveImage() { uni.saveImageToPhotosAlbum({ filePath: '/static/image.png', success(res) { uni.showToast({ title: '保存成功', icon: 'success' }); }, fail(res) { uni.showToast({ title: '保存失败', icon: 'none' }); } }); } } } </script> ``` 以上就是在uniapp微信小程序保存图片到本地的简单步骤和示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值