scanner

来自于:官方

open openView closeView decode encode lightSwitch

概述

二维码/条码扫描器,本模块底层集成了 ZXing,Zbar 条码/二维码分析库,调用 open 接口可打开默认UI的二维码/条码扫描页面,此页面内添加了闪光灯开关、从相册读取图片扫描按钮。开发者亦可通过 openView 接口打开自定义扫描区域(大小和位置)的扫码视图。本模块亦实现了对图片解码,对字符串编码的功能,按照接口规范调用 decode、encode 接口即可实现。开发者可通过调整接口参数可将扫描结果保存到系统相册、指定位置。FNScanner 模块是 scanner 模块的优化版,建议使用 FNScanner 模块,此模块已停止更新。

scanner - 图1

open

打开二维码/条码扫描器

open()

params

needBr:

  • 类型:布尔
  • 默认值:false
  • 描述:(可选项)如果本参数为true,则所扫二维码的信息字符串如果包含回车键(\n)则用
    替换。false则直接将\n去掉

sound:

  • 类型:字符串
  • 默认值:无
  • 描述:(可选项)扫描结束后的提示音文件的路径,暂仅支持fs://、widget://等本地路径协议

save:

  • 类型:JSON 对象
  • 默认值:见内部字段
  • 描述:(可选项)所生成的图片保存位置
  • 内部字段:
  1. {
  2. album: //(可选项)布尔值,是否保存到系统相册,默认false
  3. imgPath: //(可选项)保存的文件路径,无默认值,若不传则不保存;若路径不存在文件夹,则创建此目录
  4. imgName: //(可选项)保存的图片名字,字符串类型,无默认值,若不传则不保存,支持png和jpg格式,若不指定格式,则默认png
  5. size: //(可选项)生成的图片(正方形)的边长,数字,默认200
  6. }

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. eventType //扫码事件类型,字符串类型,取值范围如下:
  3. 'cancel' //用户取消扫码
  4. 'image' //用户选择从系统相册读取二维码
  5. 'success' //扫码成功
  6. 'fail' //扫码失败
  7. savePath //若扫码成功且需保存所扫二维码图片,则返回该图片保存路径
  8. msg:'' //返回扫描信息(扫码失败则返回失败信息)
  9. }

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

openView

打开自定义视图大小的二维码/条码扫描器

openView({params}, callback(ret, err))

params

x:

  • 类型:数字
  • 默认值:0
  • 描述:(可选项)视图左上角点的X坐标

y:

  • 类型:数字
  • 默认值:0
  • 描述:(可选项)视图左上角点的Y坐标

w:

  • 类型:数字
  • 默认值:父窗口视图的宽
  • 描述:(可选项)模块视图的宽

h:

  • 类型:数字
  • 默认值:父窗口视图的高
  • 描述:(可选项)模块视图的高

fixedOn:

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

needBr:

  • 类型:布尔
  • 默认值:false
  • 描述:(可选项)如果此值为true,则所扫二维码的信息字符串如果包含回车键(\n)则用
    替换。false则直接将\n去掉

sound:

  • 类型:字符串
  • 默认值:无
  • 描述:(可选项)扫描结束后的提示音文件的路径,暂仅支持fs://、widget://等本地路径协议

save:

  • 类型:JSON 对象
  • 默认值:见内部字段
  • 描述:(可选项)所生成的图片保存位置
  • 内部字段:
  1. {
  2. album: //(可选项)布尔值,是否保存到系统相册,默认false
  3. imgPath: //(可选项)保存的文件路径,无默认值,若不传则不保存,若路径不存在则创建此目录
  4. imgName: //(可选项)保存的图片名字,字符串类型,无默认值,若不传则不保存,支持 png 和 jpg 格式,若不指定格式,则默认 png
  5. size: //(可选项)生成的图片(正方形)的边长,数字,默认200
  6. }

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. savePath //若扫码成功且需保存所扫二维码图片,则返回改图片保存路径
  3. msg:'' //返回扫描信息(扫码失败则返回失败信息)
  4. }

示例代码

  1. var scanner = api.require('scanner');
  2. scanner.openView({
  3. x: 40,
  4. y: 160,
  5. w: 200,
  6. h: 240,
  7. sound: 'widget://test.wav'
  8. }, function(ret, err) {
  9. if (ret) {
  10. alert(JSON.stringify(ret));
  11. } else {
  12. alert(JSON.stringify(err));
  13. }
  14. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closeView

关闭自定义视图大小的二维码/条码扫描器

closeView()

示例代码

  1. var scanner = api.require('scanner');
  2. scanner.closeview();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

decode

图片解码

decode({params}, callback(ret, err))

params

needBr:

  • 类型:布尔
  • 默认值:false
  • 描述:(可选项)如果此值为true,则所扫二维码的信息字符串如果包含回车键(\n)则用
    替换。false则直接将\n去掉

sound:

  • 类型:字符串
  • 默认值:无
  • 描述:(可选项)扫描结束后的提示音文件的路径,暂仅支持fs://、widget://等本地路径协议
  • 备注:若不传则无提示声音

imgPath:

  • 类型:字符串
  • 默认值:无
  • 描述:(可选项)要解码的图片
  • 备注:若不传则去系统相册取图片

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg:'' //返回扫描信息(扫码失败则返回失败信息)
  3. }

示例代码

  1. var scanner = api.require('scanner');
  2. scanner.decode({
  3. sound: 'widget://test.wav'
  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及更高版本

encode

将字符串生成条码/二维码

encode({params}, callback(ret, err))

params

type:

  • 类型:字符串
  • 默认值:qr_image
  • 描述:(可选项)生成图片的类型,取值范围见生成图片类型

string:

  • 类型:字符串
  • 默认值:’test’
  • 描述:(可选项)所要生成的条码/二维码的字符串

save:

  • 类型:JSON 对象
  • 默认值:见内部字段
  • 描述:(可选项)所生成的图片保存位置
  • 内部字段:
  1. {
  2. album: //(可选项)布尔值,是否保存到系统相册,默认false
  3. imgPath: //(可选项)保存的文件路径,无默认值,若不传则不保存,若路径不存在则创建此目录
  4. imgName: //(可选项)保存的图片名字,字符串类型,无默认值,若不传则不保存,支持png和jpg格式,若不指定格式,则默认png
  5. size: //(可选项)生成的图片(正方形)的边长,数字,默认200
  6. }

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. savePath //若扫码成功且需保存所扫二维码图片,则返回改图片保存路径
  3. status: //是否生成成功
  4. }

示例代码

  1. var scanner = api.require('scanner');
  2. scanner.encode({
  3. string: '123456789',
  4. save: {
  5. imgPath: 'fs://',
  6. imgName: 'album.png'
  7. }
  8. }, function(ret, err) {
  9. if (ret.status) {
  10. alert(JSON.stringify(ret));
  11. } else {
  12. alert(JSON.stringify(err));
  13. }
  14. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

lightSwitch

闪光灯开关

lightSwitch({params})

params

turnOn:

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

示例代码

  1. var scanner = api.require('scanner');
  2. scanner.lightSwitch({
  3. turnOn: false
  4. });

可用性

iOS系统,Android系统

可提供的1.0.1及更高版本

解码图片位置

解码图片位置。字符串类型

取值范围:

  • album //从系统相册选取图片
  • custom //自定义图片

生成图片类型

生成的图片类型。字符串

取值范围:

  • bar_image //生成条码图片
  • qr_image //生成二维码图片