index.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. const QR = require('../../miniprogram_npm/qrcode-base64/index.js');
  2. import {
  3. base64src
  4. } from './base64src';
  5. Component({
  6. /**
  7. * 组件的属性列表
  8. */
  9. properties: {
  10. title: {
  11. type: String
  12. },
  13. codeName: {
  14. type: String
  15. }
  16. },
  17. lifetimes: {
  18. attached: function () {
  19. const codeText = 'https://www.baidu.com';
  20. if (this.data.title == '商户二维码') {
  21. console.log('商户二维码')
  22. } else {
  23. console.log('合作二维码')
  24. }
  25. // 在组件实例进入页面节点树时执行
  26. var imgData = QR.drawImg(codeText, {
  27. typeNumber: 4,
  28. errorCorrectLevel: 'M',
  29. size: 500
  30. })
  31. base64src(imgData, res => {
  32. this.setData({
  33. qrcodeURL: res
  34. });
  35. });
  36. },
  37. detached: function () {
  38. // 在组件实例被从页面节点树移除时执行
  39. },
  40. },
  41. /**
  42. * 组件的初始数据
  43. */
  44. data: {
  45. qrcodeURL: "",
  46. },
  47. /**
  48. * 组件的方法列表
  49. */
  50. methods: {
  51. /* 预览大图 */
  52. preViewImage() {
  53. const url = [this.data.qrcodeURL];
  54. wx.previewImage({
  55. urls: url,
  56. })
  57. },
  58. /* 下载二维码 */
  59. download() {
  60. const that = this;
  61. wx.authorize({
  62. /* 这个就是保存相册的 */
  63. scope: 'scope.writePhotosAlbum',
  64. success() {
  65. /* 保存图片方法 */
  66. that.img();
  67. },
  68. complete(res) {
  69. /* 这里判断一下如果没有授权重新打开设置选项 */
  70. wx.getSetting({
  71. success(res) {
  72. if (!res.authSetting['scope.writePhotosAlbum']) {
  73. /* 打开设置的方法 */
  74. that.opensit();
  75. }
  76. }
  77. });
  78. }
  79. });
  80. },
  81. /* 授权提示 ,这里就是重复提示用户去授权*/
  82. opensit() {
  83. wx.showModal({
  84. content: '由于您还没有允许保存图片到您相册里,这无法进行分享操作点击确定去允许授权',
  85. success: function (res) {
  86. if (res.confirm) {
  87. /* 这个就是打开设置的API*/
  88. wx.openSetting({
  89. success(res) {
  90. console.log(res.authSetting);
  91. }
  92. });
  93. } else if (res.cancel) {
  94. wx.showModal({
  95. cancelText: '依然取消',
  96. confirmText: '重新授权',
  97. content: '很遗憾你点击了取消,这将无法进行分享操作,请慎重考虑',
  98. success: function (res) {
  99. if (res.confirm) {
  100. wx.openSetting({
  101. success(res) {
  102. console.log(res.authSetting);
  103. }
  104. });
  105. } else if (res.cancel) {
  106. console.log('用户不授权');
  107. }
  108. }
  109. });
  110. }
  111. }
  112. });
  113. },
  114. /* 特别注意要先获取图片信息在进行保存,不让保存不了 */
  115. img() {
  116. const that = this;
  117. /* 保存图片到相册 */
  118. wx.saveImageToPhotosAlbum({
  119. filePath: that.data.qrcodeURL,
  120. success: function () {
  121. console.log('save success');
  122. wx.showModal({
  123. title: '保存成功',
  124. content: '图片已成功保存到相册,快去分享到您的圈子吧',
  125. showCancel: false
  126. });
  127. },
  128. complete(res) {
  129. console.log(res);
  130. }
  131. });
  132. }
  133. }
  134. })