Taro -- 微信小程序长按图片保存到相册

微信小程序长按图片保存到相册

方法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'
                      })
                    }
                  })
                }
              })
          }
        })
      }
    })
  }

 

posted @ 2020-04-02 10:20  童话里都是骗人的  阅读(3730)  评论(0编辑  收藏  举报