ACScanner

立即使用

openScan closeScan show hide flash encodeQR decodeQR

模块概述

ACScanner 模块封装了原生二维码库,可扫描二维码、条形码、生成二维码等。

注意:使用本模块前,需在云编译页面勾选添加访问摄像头权限

android设置targetVersion

** 设置targetVersion

模块接口

openScan

打开扫描控件

openScan({params}, callback(ret))

params

rect:

  • 类型:JSON 对象
  • 描述:(可选项)扫描器的位置及尺寸,在安卓平台宽高比须跟屏幕宽高比一致,否则摄像头可视区域的图像可能出现少许变形;w和h属性最好使用api.winWidth和api.winHeight,这样不会导致变形,也不会出现手机必须要在一定的距离上才能扫描出来的现象
  • 内部字段:
  1. {
  2. x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
  3. y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
  4. w: 320, //(可选项)数字类型;模块的宽度;默认:所属的 Window 或 Frame 的宽度
  5. h: 480 //(可选项)数字类型;模块的高度;默认:所属的 Window 或 Frame 的高度
  6. }

scanAnim:

  • 类型:JSON 对象
  • 描述:(可选项)扫描动画配置
  • 默认:不显示扫描动画
  • 内部字段:
  1. {
  2. w:, //(可选项)数字类型;扫描框宽度;默认:200
  3. h:, //(可选项)数字类型;扫描框高度;默认:200
  4. framColor:'', //(可选项) 字符串类型;扫描框颜色;默认;“#ff5f00”
  5. lineColor:'', //(可选项)字符串类型;扫描线颜色;默认:“#ff5f00”
  6. }

scanType:

  • 类型:数字类型
  • 描述:(可选项)扫描码类型
  • 取值范围:1/二维码,2/条形码,3/全部类型
  • 默认:3

sound:

  • 类型:字符串
  • 描述:(可选项)扫描结束后的提示音文件路径,要求本地路径(fs://、widget://),endSound为true时有效为保证兼容性,推荐使用 wav 格式的短音频文件
  • 默认:无

scanInterval:

  • 类型:数字
  • 描述:(可选项)连续扫描间隔;单位:秒
  • 默认值:2

scanStill:

  • 类型:布尔类型
  • 描述:(可选项)是否连续扫描;
  • 默认值:true

isDrawQRCodeRect:

  • 类型:布尔
  • 描述:(可选项) 是否开启二维码自动对焦
  • 默认值:false

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:模块依附于当前 window

fixed:

  • 类型:布尔
  • 描述:(可选项)模块是否随所属 window 或 frame 滚动
  • 默认值:true(不随之滚动)

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:, //布尔类型,接口是否调用正常
  3. eventType: 'success', //字符串类型;扫码事件类型
  4. //取值范围:
  5. //show(模块显示)
  6. //success(扫码成功)
  7. //cameraError(访问摄像头失败) (android 需要设置targetVersion>= 23 , 且仅缺少权限时返回)
  8. content: '' //扫描的二维码/条形码信息
  9. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg: ‘’, //字符串类型;错误信息
  3. }

示例代码

  1. var ACScanner = api.require('ACScanner');
  2. ACScanner.openScan({
  3. scanAnim: {
  4. w:200,
  5. h:200,
  6. }
  7. }, function(ret, err) {
  8. if (ret) {
  9. alert(JSON.stringify(ret));
  10. } else {
  11. alert(JSON.stringify(err));
  12. }
  13. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closeScan

关闭扫描控件

closeScan({params}, callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:, //布尔类型,接口是否调用正常
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg: ‘’, //字符串类型;错误信息
  3. }

示例代码

  1. var ACScanner = api.require('ACScanner');
  2. ACScanner.closeScan({
  3. }, function(ret, err) {
  4. if (ret) {
  5. alert(JSON.stringify(ret));
  6. } else {
  7. alert(JSON.stringify(err));
  8. }
  9. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

show

显示控件,打开以后有效

show({params}, callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:, //布尔类型,接口是否调用正常
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg: ‘’, //字符串类型;错误信息
  3. }

示例代码

  1. var ACScanner = api.require('ACScanner');
  2. ACScanner.show({
  3. }, function(ret, err) {
  4. if (ret) {
  5. alert(JSON.stringify(ret));
  6. } else {
  7. alert(JSON.stringify(err));
  8. }
  9. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

hide

隐藏控件,打开以后有效

hide({params}, callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:, //布尔类型,接口是否调用正常
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg: ‘’, //字符串类型;错误信息
  3. }

示例代码

  1. var ACScanner = api.require('ACScanner');
  2. ACScanner.hide({
  3. }, function(ret, err) {
  4. if (ret) {
  5. alert(JSON.stringify(ret));
  6. } else {
  7. alert(JSON.stringify(err));
  8. }
  9. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

flash

开关灯

flash({params}, callback(ret))

parameter

light:

  • 类型:布尔类型
  • 描述:(可选项)是否打开灯
  • 默认:打开

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:, //布尔类型,接口是否调用正常
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg: ‘’, //字符串类型;错误信息
  3. }

示例代码

  1. var ACScanner = api.require('ACScanner');
  2. ACScanner.flash({
  3. light:false,
  4. }, function(ret, err) {
  5. if (ret) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

encodeQR

生成二维码

encodeQR({params}, callback(ret))

parameter

content:

  • 类型:字符串类型
  • 描述:生成二维码内容

size:

  • 类型:数字
  • 描述:(可选项)生产二维码图片的宽高,仅支持iOS
  • 默认:200

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:, //布尔类型;接口是否调用正常
  3. qrPath:'', //字符串类型;生成二维码路径
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg: ‘’, //字符串类型;错误信息
  3. }

示例代码

  1. var ACScanner = api.require('ACScanner');
  2. ACScanner.encodeQR({
  3. content:“”,
  4. }, function(ret, err) {
  5. if (ret) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

decodeQR

解码二维码

decodeQR({params}, callback(ret))

parameter

img:

  • 类型:字符串类型
  • 描述:二维码路径,支持weight、fs

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:, //布尔类型;接口是否调用正常
  3. content:'', //字符串类型;二维码内容
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg: ‘’, //字符串类型;错误信息
  3. }

示例代码

  1. var ACScanner = api.require('ACScanner');
  2. ACScanner.decodeQR({
  3. img:“”,
  4. }, function(ret, err) {
  5. if (ret) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本