ionic3 实现扫码功能
ionic3 通过插件phonegap-plugin-barcodescanner,调用机器硬件摄像头实现扫码功能。
首先当然先了解下 phonegap-plugin-barcodescanner,这个插件。
支持的平台
- Android的
- iOS版
- Windows(Windows / Windows Phone 8.1和Windows 10)
- Windows Phone 8
- 黑莓10
- 浏览器
支持的条码类型

安装
首先,我们在项目中安装这个插件和ionic-native插件:
$ ionic cordova plugin add phonegap-plugin-barcodescanner
$ npm install --save @ionic-native/barcode-scanner
使用:
import { BarcodeScanner } from '@ionic-native/barcode-scanner';
.....
constructor(private barcodeScanner: BarcodeScanner) { }
.....
scan{
alert("We got a barcode\n" +
"Result: " + barcodeData.text + "\n" +
"Format: " + barcodeData.format + "\n" +
"Cancelled: " + barcodeData.cancelled);
}
当然不能忘记将此插件添加到应用程序的NgModule中
...
import { BarcodeScanner } from '@ionic-native/barcode-scanner';
...
@NgModule({
...
providers: [
...
BarcodeScanner
...
]
...
})
export class AppModule { }
添加安卓平台
cordova platform add android
运行在真机上
cordova run android
后来在使用过程被大佬说这个插件不行啊,效率不行啊。在ios上扫码的速度还ok,可是到了android手机上扫码真慢,看他是先拍照截图下来再进行识别的,太慢了。
后来我看上了这款扫码插件→cordova-plugin-cszbar
install plugin:
ionic cordova plugin add cordova-plugin-cszbar npm install --save @ionic-native/zbar
ps:要移除我前面安装的那个插件,不然再安装这个插件就会出现错误的。
支持平台:
- Android
- iOS
用法:
import { ZBar, ZBarOptions } from '@ionic-native/zbar';
constructor(private zbar: ZBar) { }
...
scan() {
let options: ZBarOptions = {
flash: 'off',
text_title: '扫码',
drawSight: false
};
this.zbar.scan(options)
.then(result => {
alert("结果:" + result); // Scanned code
})
.catch(error => {
alert(error); // Error message
});
}
记得将插件添加到应用程序的NgModule中
...
import { ZBar } from '@ionic-native/zbar';
...
@NgModule({
...
providers: [
...
ZBar
...
]
...
})
export class AppModule { }
这份Zbar插件实现的扫码功能,在ios上可以说效率是飞快了,在android上 也很ok,比之前那个phonegap-plugin-barcodescanner快了很多了。
如果仅仅是ios跟android这两个平台上实现扫码功能,那么Zbar也是够用了。
此随笔乃本人学习工作记录,如有疑问欢迎在下面评论,转载请标明出处。
如果对您有帮助请动动鼠标右下方给我来个赞,您的支持是我最大的动力。
ps:github链接→https://github.com/tjwoon/csZBar
ionic3 实现扫码功能的更多相关文章
- vue移动app扫码功能
第一步: 上面这段代码写在index.html里面,我也不知道为什么,可能是全局的关系: 第二步: 定义一个按钮,点击启动扫码功能,另外再定义一个盒子来当做扫码的容器:我给这个盒子定义了一个id类名: ...
- 微信小程序实现连续扫码功能(uniapp)
注:本文使用的是 uniapp 语法. 微信小程序提供了扫码API:wx.scanCode,但它只能扫一次码,想要实现连续扫码,需要借用 camera 组件.camera 组件不仅能拍照,还具有扫码功 ...
- PHP--------微信网页开发实现微信扫码功能
今天说说微商城项目中用到的扫一扫这个功能,分享一下,希望对各位有所帮助. 前提:要有公众号,和通过微信认证,绑定域名,得到相应信息,appid,appsecret等. 微信开发文档:https://m ...
- vue项目中实现扫码功能
项目地址:https://github.com/wkl007/vue-scan-demo.git 项目主要是做的一个扫码的功能 核心代码为 <div class="scan" ...
- Android | 带你零代码实现安卓扫码功能
目录 小序 背景介绍 前期准备 开始搬运 结语 小序 这是一篇纯新手教学,本人之前没有任何安卓开发经验(尴尬),本文也不涉及任何代码就可以使用一个扫码demo,华为scankit真是新手的福音-- ...
- Ionic4 Cordova 调用原生硬件 Api 实现扫码功能
QR Scanner 速度快,样式随心所欲,默认只能扫二维码 https://ionicframework.com/docs/native/qr-scanner/ 安装插件 ionic cordova ...
- 配置微信api调扫码功能
var url = encodeURIComponent(location.href.split('#')[0]); $.get(iapi+'/htweb/wx/getJsSdkSign?url='+ ...
- Android | 教你如何开发扫二维码功能
前言 最近要做一个停车场扫码收费的app,在网上搜了一圈,首先接触到了ZXing,上手试了下,集成过程不复杂,但是感觉效果欠佳,比如距离稍微远点儿就扫不出来了,另外角度对的不好,反光或者光线比较暗 ...
- iOS Swift WisdomScanKit二维码扫码SDK,自定义全屏拍照SDK,系统相册图片浏览,编辑SDK
iOS Swift WisdomScanKit 是一款强大的集二维码扫码,自定义全屏拍照,系统相册图片编辑多选和系统相册图片浏览功能于一身的 Framework SDK [1]前言: 今天给大家 ...
随机推荐
- JAVA实训第二次作业
一维数组的创建和遍历. 声明并创建存放4个人考试成绩的一维数组,并使用for循环遍历数组并打印分数.要求: (1) 首先按"顺序"遍历,即打印顺序为:从第一个人到第四个人: (2) ...
- 通过HashSet达到对象集去重的实现(jdk1.8)
通过HashSet达到对象集去重的实现(jdk1.8) public class Contract { private String contractId; private String contra ...
- 整合 springboot 和 swagger出问题
整合 springboot 和 swagger ,出现报错, org.springframework.beans.factory.UnsatisfiedDependencyException: Err ...
- python学习基础总结
看了一篇python基础的博客 感觉写的很好,总结的很到位,原地址为 http://blog.csdn.net/iloveyin/article/details/38754231 ****** ...
- Self Attention需要掌握的基本原理
字面意思理解,self attention就是计算句子中每个单词的重要程度. 1. Structure 通过流程图,我们可以看出,首先要对输入数据做Embedding 1. 在编码层,输入的word- ...
- vuex的mutations传值
mutations是要通过方法触发的,用于更改store里的数据的.this.$store.commit("mutationsName") 例子: store.js import ...
- VC6 LINK : fatal error LNK1168: cannot open Debug/Test.exe for writing
在使用VC++运行程序时,第一次没有任何问题,但是当再次运行时就会出现:LINK : fatal error LNK1168: cannot open Debug/Test.exe for writi ...
- Python数据结构之单链表
Python数据结构之单链表 单链表有后继结点,无前继结点. 以下实现: 创建单链表 打印单链表 获取单链表的长度 判断单链表是否为空 在单链表后插入数据 获取单链表指定位置的数据 获取单链表指定元素 ...
- let,const,var
1.const定义的变量不可以修改,而且必须初始化. 1 const b = 2;//正确 2 // const b;//错误,必须初始化 3 console.log('函数外const定义b:' + ...
- 乘法器的Verilog HDL实现(转载)
原文地址:http://www.cnblogs.com/shengansong/archive/2011/05/23/2054401.html 1. 串行乘法器 两个N位二进制数x.y的乘积用简单的方 ...