瀏覽代碼

二维码

zhaoxiaohai 3 年之前
父節點
當前提交
b1fd628a42
共有 3 個文件被更改,包括 45 次插入21 次删除
  1. 26 0
      components/My_TwoDimensionalCode/base64src.js
  2. 12 21
      components/My_TwoDimensionalCode/index.js
  3. 7 0
      project.private.config.json

+ 26 - 0
components/My_TwoDimensionalCode/base64src.js

@@ -0,0 +1,26 @@
+const fsm = wx.getFileSystemManager();
+const FILE_BASE_NAME = 'file_base64src'; //自定义文件名
+
+function base64src(base64data, cb) {
+    const [, format, bodyData] = /data:image\/(\w+);base64,(.*)/.exec(base64data) || [];
+    if (!format) {
+        return (new Error('ERROR_BASE64SRC_PARSE'));
+    }
+    const filePath = `${wx.env.USER_DATA_PATH}/${FILE_BASE_NAME}.${format}`;
+    const buffer = wx.base64ToArrayBuffer(bodyData);
+    fsm.writeFile({
+        filePath,
+        data: buffer,
+        encoding: 'binary',
+        success() {
+            cb(filePath);
+        },
+        fail() {
+            return (new Error('ERROR_BASE64SRC_WRITE'));
+        },
+    });
+};
+
+export {
+    base64src
+};

+ 12 - 21
components/My_TwoDimensionalCode/index.js

@@ -1,4 +1,7 @@
-const QR = require('../../miniprogram_npm/qrcode-base64/index.js')
+const QR = require('../../miniprogram_npm/qrcode-base64/index.js');
+import {
+    base64src
+} from './base64src';
 Component({
 Component({
     /**
     /**
      * 组件的属性列表
      * 组件的属性列表
@@ -19,9 +22,13 @@ Component({
                 errorCorrectLevel: 'M',
                 errorCorrectLevel: 'M',
                 size: 500
                 size: 500
             })
             })
-            this.setData({
-                qrcodeURL: imgData
-            })
+            base64src(imgData, res => {
+                console.log("转换", res) // 返回图片地址,直接赋值到image标签即可
+                this.setData({
+                    qrcodeURL: res
+                });
+            });
+
         },
         },
         detached: function () {
         detached: function () {
             // 在组件实例被从页面节点树移除时执行
             // 在组件实例被从页面节点树移除时执行
@@ -105,14 +112,9 @@ Component({
         /* 特别注意要先获取图片信息在进行保存,不让保存不了 */
         /* 特别注意要先获取图片信息在进行保存,不让保存不了 */
         img() {
         img() {
             const that = this;
             const that = this;
-            /// 通过微信小程序自带方法将base64转为二进制去除特殊符号,再转回base64
-            const base64Data = wx.arrayBufferToBase64(wx.base64ToArrayBuffer(this.data.qrcodeURL));
-            /// 拼接请求头,data格式可以为image/png或者image/jpeg等,看需求
-            const base64ImgUrl = "data:image/png;base64," + base64Data;
-
             /* 保存图片到相册 */
             /* 保存图片到相册 */
             wx.saveImageToPhotosAlbum({
             wx.saveImageToPhotosAlbum({
-                filePath: base64ImgUrl,
+                filePath: that.data.qrcodeURL,
                 success: function () {
                 success: function () {
                     console.log('save success');
                     console.log('save success');
                     wx.showModal({
                     wx.showModal({
@@ -125,17 +127,6 @@ Component({
                     console.log(res);
                     console.log(res);
                 }
                 }
             });
             });
-            /* 获取图片信息 */
-            /*  wx.getImageInfo({
-                 src: that.data.qrcodeURL,
-                 success: function (res) {
-                     console.log(res)
-                    
-                 },
-                 fail:(err => {
-                     console.log(err)
-                 })
-             }); */
         }
         }
     }
     }
 })
 })

+ 7 - 0
project.private.config.json

@@ -152,6 +152,13 @@
                     "launchMode": "default",
                     "launchMode": "default",
                     "scene": null
                     "scene": null
                 },
                 },
+                {
+                    "name": "",
+                    "pathName": "pages/businessPartner/applyFor",
+                    "query": "",
+                    "launchMode": "default",
+                    "scene": null
+                },
                 {
                 {
                     "name": "",
                     "name": "",
                     "pathName": "pages/businessPartner/applyFor",
                     "pathName": "pages/businessPartner/applyFor",