uniapp app端长按保存图片保存图片到手机相册

找了很多例子 都不起作用,然后搜索到一个大佬的 代码然后试了试

teamShare 是服务端返回的图片

<view class="sign-box" v-if="teamShare">
		<image :src="'data:image/jpg;base64,'+ teamShare" mode="" @tap="save" @longtap="toSave" class="teamShare"></image>
</view>

app 端的图片是服务端返回bese64的图片

	toSave() {
			uni.showModal({
				title: '图片保存',
				content: '确定要保存图片吗',
				success: e => {
					if (e['confirm']) {
						// this.save();
						let url = 'data:image/png;base64,'+this.teamShare
						// this.savePhoto(url)
						// #ifdef APP-PLUS
							this.saveBase64Img(url)
						// #endif
					}
				}
			});
			},
				//保存图片
			saveBase64Img(base64) {
				let _this = this
			    const bitmap = new plus.nativeObj.Bitmap('test');
			    bitmap.loadBase64Data(
			        base64,
			        function() {
			            const url = '_doc/' + new Date() + '.png'; // url建议用时间戳命名方式
			            console.log('url:', url);
			            bitmap.save(
			                url,
			                {
			                    overwrite: true // 是否覆盖
			                    // quality: 'quality'  // 图片清晰度
			                },
			                i => {
			                    uni.saveImageToPhotosAlbum({
			                        filePath: url,
			                        success: function() {
			                            console.log('保存成功');
										uni.showToast({
											title:'保存成功,请到手机相册'
										})
										_this.teamShare = null
			                            bitmap.clear();
			                        }
			                    });
			                },
			                e => {
			                    console.log('保存失败', e);
			                    bitmap.clear();
			                }
			            );
			        },
			        e => {
			            console.log('保存失败', e);
			            bitmap.clear();
			        }
			    );
			},
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值