微信小程序长按图片保存到相册的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 @   蓦然JL  阅读(6705)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
  1. 1 唯一 G.E.M.邓紫棋
  2. 2 他只是经过 白敬亭 魏大勋
  3. 3 Uptown Funk Mark Ronson / Bruno Mars
  4. 4 在你的身边 盛哲
  5. 5 Edge of My Life Manafest
  6. 6 凄美地 郭顶
  7. 7 Wonderful Tonight Boyce Avenue
  8. 8 心如止水 Ice Paper
  9. 9 Sugar Maroon 5
  10. 10 静谧时光 JIAxNING
  11. 11 Right Now (Na Na Na) Aamir
  12. 12 Dangerously Charlie Puth
  13. 13 Someone You Loved Madilyn Paige
  14. 14 Shape of My Heart Boyce Avenue
  15. 15 We Can't Stop Boyce Avenue / Bea Miller
  16. 16 Perfect Boyce Avenue
  17. 17 Love Me Like You Do Boyce Avenue
  18. 18 Thank You Boyce Avenue
  19. 19 Don’t Wanna Know Boyce Avenue / Sarah Hyland
他只是经过 - 白敬亭 魏大勋
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

Not available

访问主页
关注我
关注微博
私信我
返回顶部
点击右上角即可分享
微信分享提示

目录导航