index.js 4.4 KB

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