scanner

来自于:官方立即使用

概述

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

open

打开二维码/条码扫描器

open()

params

needBr:

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

sound:

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

save:

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

callback(ret, err)

ret:

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

示例代码

var scanner = api.require('scanner');
scanner.open(function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

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

callback(ret, err)

ret:

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

示例代码

var scanner = api.require('scanner');
scanner.openView({
    x: 40,
    y: 160,
    w: 200,
    h: 240,
    sound: 'widget://test.wav'
}, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closeView

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

closeView()

示例代码

var scanner = api.require('scanner');
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 对象
  • 内部字段:
{
    msg:''    //返回扫描信息(扫码失败则返回失败信息)
}

示例代码

var scanner = api.require('scanner');
scanner.decode({
    sound: 'widget://test.wav'
}, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

encode

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

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

params

type:

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

string:

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

save:

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

callback(ret, err)

ret:

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

示例代码

var scanner = api.require('scanner');
scanner.encode({
    string: '123456789',
    save: {
        imgPath: 'fs://',
        imgName: 'album.png'
    }
}, function(ret, err) {
    if (ret.status) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

lightSwitch

闪光灯开关

lightSwitch({params})

params

turnOn:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.1及更高版本

解码图片位置

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

取值范围:

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

生成图片类型

生成的图片类型。字符串

取值范围:

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