微信小程序長按圖片保存到相冊
方法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' }) } }) } }) } }) } }) }