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 @   童话里都是骗人的  阅读(3831)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示