引言
Cordova 是一个可以让 JS 与原生代码(包括 Android 的 java,iOS 的 Objective-C 等)互相通信的一个库,并提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。更多关于Cordova学习请移步官网http://cordova.apache.org/
接下来要说的是cordova插件处理二维码(基于Android平台),这里只是简单实现了效果,现将其记录下来,方便以后有个引导。至于cordova的安装需要借助于npm包管理工具,可自行Google。
开发步骤
1、cmd进入命令行
2、在D盘下依次执行以下语句(前提在cordova环境配置好之后)
cordova create MyBarcode com.example.cordova MyCode
其中MyBarCode是你新建工程的名称,MyCode是你App名字
cd MyBarcode
cordova platform add android(添加android平台)
cordova plugin add cordova-plugin-barcodescanner(有些博客写的是cordova plugin add https://github.com/wildabeast/BarcodeScanner.git)
3、导入工程,其中有很多坑,直接导入并不能运行,正确的导入方法是打开D:\MyBarcode\platforms\android的build.gradle文件(本人用的是Android Studio)。
4、在assets/www/index.html文件,注释掉原有代码并添加以下代码
<html>
<head>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript">
function scannerCode(){
//扫码的js接口代码
cordova.plugins.barcodeScanner.scan(
function (result) {
document.getElementById("test").innerHTML = "结果: " + result.text;
},
function (error) {
alert("扫描失败: " + error);
});
}
//生成二维码的js接口代码
function encodeCode(){
cordova.plugins.barcodeScanner.encode(
"TEXT_TYPE", //编码的类型 文本型、email、sms、手机号
"http://www.baidu.com", //url
function(success) {
//实现功能逻辑
alert("encode success: " + success); //生成之后会默认作为图片显示出来
},
function(fail) {
alert("encoding failed: " + fail);
});
}
</script>
</head>
<body>
<center>
<button style="margin-top:80px; width=100px; height:40px" onclick="scannerCode()">扫描二维码</button>
<button style=" width=100px; height:40px" onclick="encodeCode()">生成二维码</button>
<div style="margin-top:50px" id="test">扫描结果</div>
</center>
</body>
</html>
好了,大功告成,貌似可以扫描了,但你会发现他是横屏的,好像达不到预期效果,不用急,慢慢看下面操作。下载 zxing_4.1.8.jar (http://download.csdn.net/download/cmh1748218486/9792791)这个jar包,替换掉之前D:\MyBarcode\platforms\android\libs目录下的com.google.zxing.client.android.captureactivity.jar文件,在AndroidMainifest.xml文件中把android:screenOrientation="landscape"改为:
android:screenOrientation="portrait"
在运行,嗯非常完美。。。