uni-app中长按图片保存(保存二维码等)

uni-app中长按保存图片

个人第二个项目是在小程序和app端的一款应用,在项目中需要使用到长按保存二维码功能,但uni-app官方的uni.saveImageToPhotosAlbum api只能传入文件路径,不支持网络路径,而我们大部分需要保存的图片基本都是网络路径,所以想到了uni.downloadFile,这个api会返还一个图片的临时路径,刚好可以作为参数使用saveImageToPhotosAlbum,所以问题就可以解决!

关于长按事件,我使用的是canvas的@longtop,不过这个不是难点,看需求只要能执行即可

1.放置二维码图片

<view class="CodeBox MarginAuto MarginT_20rpx BackgroundC_FFFFFF PaddingT_1rpx">
                <canvas style="width: 440rpx;height: 490rpx;" canvas-id="code" @longtap="bc_code">
					<image class="CodeImg Block" :src="codeImg" mode="widthFix"></image>
				</canvas>
</view>
//注意,canvas必须添加属性canvas-id,否则不显示

2.主体代码

//长按保存二维码
			bc_code(){
				let that = this;
				//console.log('保存二维码')
				uni.downloadFile({           //获得二维码的临时地址
					url:this.codeImg,
					success:(res)=>{
						//console.log('获取url',res)
						if(res.statusCode == 200){
							uni.saveImageToPhotosAlbum({
								filePath:res.tempFilePath,//传入临时地址
								success() {
									that.$.ti_shi('保存成功')//封装的提示
								},
								fail() {
									that.$.ti_shi('保存失败')
								}
							})
						}
					}
				})
			},

3.保存结果
uni-app中长按图片保存(保存二维码等)_第1张图片
uni-app中长按图片保存(保存二维码等)_第2张图片

4.成功!

你可能感兴趣的:(uni-app,前端,vue.js,html5,前端)