swan.scanCode

在工具和真机中的实现有区别,详见API 实现差异扫码 swan.scanCode - 图1

解释:调起客户端扫码界面,扫码成功后返回对应的结果。

方法参数

Object object

object 参数说明

属性名类型必填默认值说明
successFunction接口调用成功的回调
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数说明

参数名说明
result所扫码的内容
scanType所扫码的类型
charSet所扫码的字符集,仅支持 Android 系统。

示例

在开发者工具中预览效果

扫码体验

扫码 swan.scanCode - 图2请使用百度APP扫码

图片示例

扫码 swan.scanCode - 图3

扫码 swan.scanCode - 图4

扫码 swan.scanCode - 图5

代码示例

  • 在 swan 文件中
  1. <view class="container">
  2. <view class="card-area">
  3. <view class="list-area border-bottom" s-for="item in infoList">
  4. <text class="list-item-key-4">{{item.chinaName}}</text>
  5. <text class="list-item-value">{{item.value}}</text>
  6. </view>
  7. <view class="button-group">
  8. <button class="btn" type="primary" bindtap="scanCode">扫一扫</button>
  9. </view>
  10. </view>
  11. </view>
  • 在 js 文件中
  1. Page({
  2. /* eslint-enable */
  3. data: {
  4. result: true,
  5. infoList: [{
  6. engName: 'result',
  7. chinaName: '内容',
  8. value: ''
  9. }, {
  10. engName: 'scanType',
  11. chinaName: '类型',
  12. value: ''
  13. },
  14. {
  15. engName: 'charSet',
  16. chinaName: '字符集',
  17. value: ''
  18. }
  19. ]
  20. },
  21. scanCode() {
  22. swan.scanCode({
  23. success: res => {
  24. this.setData('result', false);
  25. console.log('scanCode success', res);
  26. this.updateInfoList(res);
  27. },
  28. fail: err => {
  29. console.log('scanCode fail', err);
  30. }
  31. });
  32. },
  33. updateInfoList(res) {
  34. let infoList = this.getData('infoList');
  35. for (let i = 0; i < infoList.length; ++i) {
  36. if (res[infoList[i].engName] === '') {
  37. infoList[i].value = '暂无';
  38. } else {
  39. infoList[i].value = res[infoList[i].engName];
  40. }
  41. }
  42. // 兼容ios逻辑
  43. if(swan.getSystemInfoSync().platform === 'ios'){
  44. infoList[2].value = '暂无';
  45. }
  46. this.setData('infoList', infoList);
  47. }
  48. });

错误码

Android

错误码说明
201解析失败,请检查调起协议是否合法
202解析失败,请检查参数是否正确
1001执行失败

iOS

错误码说明
202解析失败,请检查参数是否正确
203处理失败,无返回结果