微信小程序-图片授权保存本地【每天一个上分小技巧】

£神魔★判官ぃ 2023-07-21 11:04 71阅读 0赞

《随手先点赞系列》之每天一个上分小技巧

人傻话不多,直接上成品,看完记得给宝宝随个赞哦!

20200403143932609.gif

好了,又到了宁们最喜欢的代码环节,我将毫无保留的给宁们呈上!

先定义好一个保存触发按钮;codes为图片url

  1. <view class="bottom2" bindtap="postSave" data-src="{
  2. {codes}}">
  3. <view class="imgright">
  4. <image src="../../image/download.png"></image>
  5. </view>
  6. <view class="download">
  7. <button class="buttonSize">保存本地</button>
  8. </view>
  9. </view>

接着就是实现postSave方法了;

  1. // 保存图片
  2. postSave(e) {
  3. wx.showLoading({
  4. title: '保存中...'
  5. })
  6. wx.downloadFile({
  7. url: e.currentTarget.dataset.src,
  8. success: function (res) {
  9. //图片保存到本地
  10. wx.saveImageToPhotosAlbum({
  11. filePath: res.tempFilePath,
  12. success: function (data) {
  13. wx.hideLoading()
  14. wx.showModal({
  15. title: '提示',
  16. content: '保存成功,赶快分享给好友吧',
  17. showCancel: false,
  18. })
  19. },
  20. fail: function (err) {
  21. if (err.errMsg === "saveImageToPhotosAlbum:fail:auth denied" || err.errMsg === "saveImageToPhotosAlbum:fail auth deny") {
  22. // 这边微信做过调整,必须要在按钮中触发,因此需要在弹框回调中进行调用
  23. wx.showModal({
  24. title: '提示',
  25. content: '需要您授权保存相册',
  26. showCancel: false,
  27. success: modalSuccess => {
  28. wx.openSetting({
  29. success(settingdata) {
  30. console.log("settingdata", settingdata)
  31. if (settingdata.authSetting['scope.writePhotosAlbum']) {
  32. wx.showModal({
  33. title: '提示',
  34. content: '获取权限成功,再次点击图片即可保存',
  35. showCancel: false,
  36. })
  37. } else {
  38. wx.showModal({
  39. title: '提示',
  40. content: '获取权限失败,将无法保存到相册哦~',
  41. showCancel: false,
  42. })
  43. }
  44. },
  45. fail(failData) {
  46. console.log("failData", failData)
  47. },
  48. complete(finishData) {
  49. console.log("finishData", finishData)
  50. }
  51. })
  52. }
  53. })
  54. }
  55. },
  56. complete(res) {
  57. wx.hideLoading()
  58. }
  59. })
  60. }
  61. })
  62. },

参考文章:https://www.jianshu.com/p/6ba26ea8e53f

推荐阅读:每天一篇上分小技巧-微信小程序前端你所不知道的“秘密”

往期回顾:

【1】究竟使用何种手段能使弹框始终水平垂直居中?

【2】ios拖动或者下拉会出现留白现象?你知道什么原因吗?

【3】微信小程序是如何发ajax 与后端进行交互的?


❤如果文章对您有所帮助,就在文章的右上角或者文章的末尾点个赞吧!(づ ̄ 3 ̄)づ

❤如果喜欢大白兔分享的文章,就给大白兔点个关注吧!(๑′ᴗ‵๑)づ╭❤~

❤对文章有任何问题欢迎小伙伴们下方留言或者入群探讨【群号:708072830】

❤鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复讨论(请勿发表攻击言论)。

发表评论

表情:
评论列表 (有 0 条评论,71人围观)

还没有评论,来说两句吧...

相关阅读

    相关 程序授权

    首先要清楚小程序的几种授权,且oppenid是可以静默拿到,不需要授权 所以,在获取oppenid这一块,可以写在app.js的onLaunch中,并且在封装好的post