微信小程序长按图片保存到相册的3种方法

方法一: image + show-menu-by-longpress

image组件 + show-menu-by-longpress属性 ,image图片组件用法这也是最简单的一种,不用写js就能实现功能。代码如下:

方法二:wx.previewImage

这次需要使用微信官方提供的wx.previewImage API的使用方法

// 核心js代码:
wx.previewImage({
  urls: [网络图片地址,不支持本地路径],
  current: 网络图片地址,不支持本地路径
})

方法三:longpress + wx.saveImageToPhotosAlbum + scope.writePhotosAlbum

微信官方文档是这样介绍longpress的:手指触摸后,超过350ms再离开,如果指定了事件回调函数并触发了这个事件,tap事件将不被触发。小程序最低基础库版本1.5.0

既然longpress是一个事件,所以跟bindtap的使用方法是一样的。大致代码如下:

// 核心js代码:
handleLongPress(e){
  console.log('e=', e)
  this.setData({
    longPressSrc: e.currentTarget.dataset.src
  })
  this.getWritePhotosAlbum(() => { /* 验证用户是否授权了保存图片到相册的权限 */
    this.handleSaveImageToPhotosAlbum(); /* 调用封装好的保存图片到相册的代码 */
  });
}

三、总结3种方法

上面介绍了三种长按保存图片到相册的方法,接下来再总结下各方法的优缺点。

方法 优点 缺点
法一:image + show-menu-by-longpress 简单,无需js 存在兼容性,基础库2.7.0+
法二:wx.previewImage 兼容性良好 由于是全屏预览模式,所以无法设置图片尺寸和去掉大面积黑色
法三:longpress + wx.saveImageToPhotosAlbum + scope.writePhotosAlbum 想不出有啥优点 1、代码多!2、需要判断用户授权情况3、wx.saveImageToPhotosAlbum不支持网络图片

三种方法的优缺点已对比完毕,至于用哪种,就看看官自己选择了。

posted @ 2022-06-13 15:50  蓦然JL  阅读(5948)  评论(0编辑  收藏  举报
访问主页
关注我
关注微博
私信我
返回顶部