微信小程序调用摄像头扫描识别二维码和条形码

今天在整一个有关于快递的小程序,快递单号一般比较长,手动录入会很麻烦。

然后就找了一下,其实微信小程序 API 中自带一个扫码识别的功能。

wx.scanCode(Object object)

调起客户端扫码界面进行扫码。

示例代码:

// 允许从相机和相册扫码
wx.scanCode({
  success(res) {
    console.log(res)
  }
})

// 只允许从相机扫码
wx.scanCode({
  onlyFromCamera: true,
  success(res) {
    console.log(res)
  }
})

WXSS就不贴了

WXML部分(应用):

<view class='form-list'>
  <text>运单号码</text>
  <input type='text' value='{{scanCodeMsg}}'></input>
  <image class='scan' bindtap='scanCode' src='/images/scanCode.png' mode='widthFix'></image>
</view>

给扫描按钮的图片绑定一个事件,点击调用摄像头扫码,扫描成功将数值赋给 input 输入框的 value 值。效果如下图:

kdxcx.png 微信小程序调用摄像头扫描识别二维码和条形码 小程序

JS 部分(应用):

data: {
  scanCodeMsg: "",
},
scanCode: function() {
  var that = this;
  wx.scanCode({ //扫描API
    success(res) { //扫描成功
      console.log(res) //输出回调信息
      that.setData({
        scanCodeMsg: res.result
      });
      wx.showToast({
        title: '成功',
        duration: 1000
      })
    }
  })
},

参数 Object object

属性类型默认值说明
onlyFromCamerabooleanfalse是否只能从相机扫码,不允许从相册选择图片
scanTypeArray.<string>['barCode', 'qrCode']扫码类型
successfunction
接口调用成功的回调函数
failfunction
接口调用失败的回调函数
completefunction
接口调用结束的回调函数(调用成功、失败都会执行)

object.scanType 的合法值

说明
barCode一维码
qrCode二维码
datamatrixData Matrix 码
pdf417PDF417 条码

object.success 回调函数

参数

Object res

属性类型说明
resultstring所扫码的内容
scanTypestring所扫码的类型
charSetstring所扫码的字符集
pathstring当所扫的码为当前小程序二维码时,会返回此字段,内容为二维码携带的 path
rawDatastring原始数据,base64编码

res.scanType 的合法值

说明
QR_CODE二维码
AZTEC一维码
CODABAR一维码
CODE_39一维码
CODE_93一维码
CODE_128一维码
DATA_MATRIX二维码
EAN_8一维码
EAN_13一维码
ITF一维码
MAXICODE一维码
PDF_417二维码
RSS_14一维码
RSS_EXPANDED一维码
UPC_A一维码
UPC_E一维码
UPC_EAN_EXTENSION一维码
WX_CODE二维码
CODE_25一维码


赞 (20)
分享到: +

评论 沙发

Avatar

换个身份

  • 昵称 (必填)
  • 邮箱 (选填)