最近整合二维码扫描到phonegap的项目中,经过一天的折腾重要折腾好了。
其实也很简单,只不过对android的开发不熟悉所以出来很多问题。不过经过再网上查找相关文档重要解决了。
[目前插件已经支持到Phonegap 3.5以上],同时支持竖屏显示。以前都是横屏的。
首先获取phonegap的插件包
针对插件包,我们说明一下插件包里的LibraryProject文件夹是一个二维码的依赖库项目,所以需要把这个文件夹导入到Eclipse去作为第三方库存在。然后在集成:
最重要的一个步骤就是 添加 Android Library
这个我一直不知道怎么回事折腾了好久终于搞明白了
其实就是先把里面的Library作为一个单独的项目库,存在 然后再phonegap的项目中引入,这样在我们的phonegap的项目中就能使用扫描软件了。
具体怎么引入library 看这篇文章:
http://www.yelanxiaoyu.com/code/andriod/%E5%A6%82%E4%BD%95%E6%B7%BB%E5%8A%A0android-library.html
这是也是改插件正常使用的关键。
下来就按照插件的说明来添加代码程序。
- 拷贝 barcodescanner.js 到你的www文件夹,并在html页面里面引用方法。具体方法可以查看我的附件js文件。
- 拷贝BarcodeScanner.java 到你的src文件夹里面。
- 你的config.xml文件里面添加插件引用。
==============【phonegap3.x 插件引入方法】=====
<feature name=”BarcodeScanner”>
<param name=”android-package” value=”com.phonegap.plugins.barcodescanner.BarcodeScanner” />
</feature> - 添加AndroidManifest.xml 文件代码如下:
- 在<application/> tag之前
<!-- ZXing activities --> <activity android:name="com.google.zxing.client.android.CaptureActivity" android:screenOrientation="portrait" android:clearTaskOnLaunch="true" android:configChanges="orientation|keyboardHidden" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:windowSoftInputMode="stateAlwaysHidden" android:exported="false"> <intent-filter> <action android:name="com.phonegap.plugins.barcodescanner.SCAN"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> <activity android:name="com.google.zxing.client.android.encode.EncodeActivity" android:label="@string/share_name"> <intent-filter> <action android:name="com.phonegap.plugins.barcodescanner.ENCODE"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> <activity android:name="com.google.zxing.client.android.HelpActivity" android:label="@string/share_name"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.FLASHLIGHT" />
至此,二维码扫描就可以用了。
通过测试 改插件不仅能扫描二维码还能生成各种二维码。
附上我的js代码:
var scanCode = function() { window.plugins.barcodeScanner.scan( function(result) { alert("Scanned Code: " + result.text + ". Format: " + result.format + ". Cancelled: " + result.cancelled); }, function(error) { alert("Scan failed: " + error); }); }
var encodeText = function() {
window.plugins.barcodeScanner.encode(
BarcodeScanner.Encode.TEXT_TYPE,
“http://www.mobiledevelopersolutions.com”,
function(success) {
alert(“Encode success: ” + success);
}, function(fail) {
alert(“Encoding failed: ” + fail);
});
}
var encodeEmail = function() {
window.plugins.barcodeScanner.encode(
BarcodeScanner.Encode.EMAIL_TYPE,
“a.name@gmail.com”, function(success) {
alert(“Encode success: ” + success);
}, function(fail) {
alert(“Encoding failed: ” + fail);
});
}
var encodePhone = function() {
window.plugins.barcodeScanner.encode(
BarcodeScanner.Encode.PHONE_TYPE,
“555-227-5283”, function(success) {
alert(“Encode success: ” + success);
}, function(fail) {
alert(“Encoding failed: ” + fail);
});
}
var encodeSMS = function() {
window.plugins.barcodeScanner.encode(
BarcodeScanner.Encode.SMS_TYPE,
“An important message for someone.”, function(success) {
alert(“Encode success: ” + success);
}, function(fail) {
alert(“Encoding failed: ” + fail);
});
}