Cordova 3.x 实用插件(2) -- 二维码Barcode
程序员文章站
2022-05-15 11:41:13
...
引用
这个插件采用的是开源版的zxing,如果性能、识别率不满足需求的话,建议使用Scandit,它提供了Community SDK,并且支持Platforms(iOS/Android)、Frameworks(Titanium/Xamarin/Phonegap/Worklight)。其中Community版的支持UPC-A / UPC-E、EAN8 / EAN13、QR Code。
插件地址:https://github.com/wildabeast/BarcodeScanner
(1)创建工程
引用
cordova create HelloBarcode com.rensanning.cordova HelloBarcode
cd HelloBarcode
cordova platform add android
cd HelloBarcode
cordova platform add android
(2)安装plugin
引用
cordova plugin add https://github.com/wildabeast/BarcodeScanner.git
(3)修改index.html后编译执行
<a href="#" class="btn" onclick="scanCode();">Scan Code</a> <script type="text/javascript"> function scanCode() { cordova.plugins.barcodeScanner.scan( function (result) { alert("We got a barcode\n" + "Result: " + result.text + "\n" + "Format: " + result.format + "\n" + "Cancelled: " + result.cancelled); }, function (error) { alert("Scanning failed: " + error); } ); } </script>
Android版本的Zxing插件默认是横向扫描的,竖向扫码需要修改插件的代码。这里有改好的,可以试试。com.phonegap.plugins.barcodescanner.rar
<a href="#" class="btn enc" onclick="encodeText();">Encode Text</a> <script type="text/javascript"> function encodeText() { cordova.plugins.barcodeScanner.encode( "TEXT_TYPE", "http://www.baidu.com", function(success) { alert("encode success: " + success); }, function(fail) { alert("encoding failed: " + fail); } ); } </script>
<a href="#" class="btn enc" onclick="encodeEmail();">Encode Email</a> <script type="text/javascript"> function encodeEmail() { cordova.plugins.barcodeScanner.encode( "EMAIL_TYPE", "rensanning@gmail.com", function(success) { alert("encode success: " + success); }, function(fail) { alert("encoding failed: " + fail); } ); } </script>
<a href="#" class="btn enc" onclick="encodePhone();">Encode Phone</a> <script type="text/javascript"> function encodePhone() { cordova.plugins.barcodeScanner.encode( "PHONE_TYPE", "135-1234-5678", function(success) { alert("encode success: " + success); }, function(fail) { alert("encoding failed: " + fail); } ); } </script>
<a href="#" class="btn enc" onclick="encodeSMS();">Encode SMS</a> <script type="text/javascript"> function encodeSMS() { cordova.plugins.barcodeScanner.encode( "SMS_TYPE", "An important message for someone.", function(success) { alert("encode success: " + success); }, function(fail) { alert("encoding failed: " + fail); } ); } </script>
注意:
a) 没有实现CONTACT_TYPE 和 LOCATION_TYPE的encode。
b) 如果encode出错:
java.lang.NullPointerException at com.google.zxing.client.android.encode.EncodeActivity.onCreateOptionsMenu(EncodeActivity.java:89)
下载最新的encode.xml文件,覆盖 platforms\android\res\menu\encode.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_share" android:title="@string/menu_share" android:icon="@android:drawable/ic_menu_share" android:orderInCategory="1" android:showAsAction="withText|ifRoom"/> <item android:id="@+id/menu_encode" android:title="@string/menu_encode_vcard" android:icon="@android:drawable/ic_menu_sort_alphabetically" android:orderInCategory="2" android:showAsAction="withText|ifRoom"/> </menu>
上一篇: Java 8 之 新日期时间API
下一篇: CSS3选择符语法
推荐阅读
-
Cordova 3.x 实用插件(2) -- 二维码Barcode
-
Cordova 3.x 实用插件(1) -- Google地图Maps
-
Cordova 3.x 实用插件(3) -- 社交分享SocialSharing
-
Cordova 3.x 实用插件(6) -- 检查APP是否被安装
-
Cordova 3.x 实用插件(5) -- 通过自定义URL Scheme启动你的APP
-
Cordova 3.x 实用插件(4) -- Android的SEND、VIEW、CALL(WebIntent)
-
Cordova 3.x 实用插件(3) -- 社交分享SocialSharing
-
Cordova 3.x 实用插件(6) -- 检查APP是否被安装
-
Cordova 3.x 实用插件(5) -- 通过自定义URL Scheme启动你的APP
-
Cordova 3.x 实用插件(2) -- 二维码Barcode