linwenxin 1 週間 前
コミット
9095d44a87
1 ファイル変更22 行追加6 行削除
  1. 22 6
      src/common/utils/util.js

+ 22 - 6
src/common/utils/util.js

@@ -1041,6 +1041,18 @@ export const wxConfig = function (configInfo, userInfo, cb) {
     })
 }
 
+function isStringConvertibleToObject(str) {
+  try {
+    // 尝试将字符串解析为对象
+    const obj = JSON.parse(str)
+    // 如果解析成功,检查解析结果是否是对象或数组
+    return typeof obj === 'object' && obj !== null
+  } catch (e) {
+    // 如果解析失败,捕获错误并返回 false
+    return false
+  }
+}
+
 // 微信扫码
 export const wxScanCode = function (scanType = ['qrCode', 'barCode']) {
   return new Promise((resolve, reject) => {
@@ -1050,12 +1062,16 @@ export const wxScanCode = function (scanType = ['qrCode', 'barCode']) {
           needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
           scanType: scanType,
           success: res => {
-            alert(res.resultStr)
-            var result = res.resultStr // 当 needResult 为 1 时,扫码返回的结果
-            var resultArr = result.split(',') // 扫描结果以逗号分割数组
-            var codeVal = resultArr[resultArr.length - 1] // 获取数组最后一个元素,也就是最终的内容
-            // var codeValStr = codeVal.split('=')
-            resolve(codeVal)
+            if (typeof res.resultStr === 'object') {
+              resolve(res.resultStr?.scan_code?.scan_result || '')
+            } else if (isStringConvertibleToObject(res.resultStr)) {
+              resolve(JSON.parse(res.resultStr)?.scan_code?.scan_result || '')
+            } else {
+              var result = res.resultStr // 当 needResult 为 1 时,扫码返回的结果
+              var resultArr = result.split(',') // 扫描结果以逗号分割数组
+              var codeVal = resultArr[resultArr.length - 1] // 获取数组最后一个元素,也就是最终的内容
+              resolve(codeVal)
+            }
           },
           fail: res => {
             reject('')