uni-app中uni.scanCode扫码识别出不同信息

uni-app中uni.scanCode扫码识别出不同信息

代码示例

uni.scanCode({
  success: res => {
    console.log(res)
    uni.showToast({
      title: res.result,
      duration: 5000,
      icon: 'none'
    })
    // const jsonstr = decodeURIComponent(res.result);
    // const data = JSON.parse(jsonstr);
    // this.addClueCustomer(data);
  },
  fail(e) {
    console.log(e)
  }
});

图片


更多关于uni-app中uni.scanCode扫码识别出不同信息的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

注明只需要扫描QRCODE 。 我加上下面的代码可以正常扫描了。
因为uni的扫码支持多种二维码规则,对于特别复杂的二维码会产生类型识别错误的情况。这种情况下你只需要写死只扫描你的系统使用的类型就可以解决类似的问题。
uni.scanCode({
scanType: [‘qrCode’],
success: (res) => {
this.result = res.result
},
fail: (err) => {
// 需要注意的是小程序扫码不需要申请相机权限
}
});

更多关于uni-app中uni.scanCode扫码识别出不同信息的实战教程也可以访问 https://www.itying.com/category-93-b0.html


从你提供的代码和截图来看,这是一个关于uni.scanCode扫码结果处理的问题。我来分析一下:

  1. 扫码结果res.result可能包含多种格式:
  • 纯文本内容
  • URL编码的字符串
  • JSON格式数据
  • 其他特殊格式
  1. 当前问题可能原因:
  • 你扫描的二维码包含的是URL编码内容,直接显示会看到类似"%7B%22…的字符串
  • 如果二维码包含的是JSON数据,需要先解码再解析
  1. 解决方案建议:
  • 先确定二维码实际内容是什么格式
  • 如果是URL编码,使用decodeURIComponent解码
  • 如果是JSON,解码后再用JSON.parse解析
  • 可以先用console.log打印完整res对象查看所有可用信息
  1. 改进后的代码示例:
uni.scanCode({
  success: res => {
    console.log('完整扫码结果:', res);
    try {
      const decoded = decodeURIComponent(res.result);
      const data = JSON.parse(decoded);
      // 处理解析后的数据
    } catch(e) {
      // 如果不是JSON格式,直接使用原始结果
      uni.showToast({
        title: res.result,
        duration: 5000,
        icon: 'none'
      });
    }
  },
  fail: console.error
});
回到顶部