微信小程序长按图片保存到相册
方法1:可以通过先点击预览图片Taro.previewImage,再长按保存到相册。
<Image src={imagePath} data-url={imagePath} onClick={this.previewImage}></Image>
// 预览图片 previewImage(e) { var current = e.target.dataset.url; //这里获取到的是一张本地的图片 Taro.previewImage({ current: [current],//需要预览的图片链接列表 urls: [current] //当前显示图片的链接 }) }
方法2:
首先需要通过 Taro.getSetting 先查询一下用户是否授权了写入相册权限;
其次对于网络图片,可调用Taro.downloadFile下载文件资源到本地;
然后非网络图片,可以调用Taro.getImageInfo(Object object)获取图片信息;
最后调用Taro.saveImageToPhotosAlbum,保存图片到系统相册。
<Image src={imagePath} onLongPress={this.downloadImg}></Image>
// onLongPress事件 downloadImg(){ let _this = this; Taro.getSetting({ success: res => { Taro.authorize({ scope:'scope.writePhotosAlbum', success: res => { console.log('授权成功'); let imgUrl = _this.state.imagePath; console.log(imgUrl); Taro.downloadFile({ //下载文件资源到本地,客户端直接发起一个HTTP GET 请求,返回文件的本地临时路径 url: imgUrl, success: res => { Taro.saveImageToPhotosAlbum({ filePath: res.tempFilePath, //返回的临时文件路径,下载后的文件会存储到一个临时文件 success: res => { Taro.showToast({ title: '成功保存到相册', icon: 'success' }) } }) } }) } }) } }) }