[quote][color=blue]这个插件采用的是开源版的[url=https://github.com/zxing/zxing]zxing[/url],如果性能、识别率不满足需求的话,建议使用[url=http://www.scandit.com/]Scandit[/url],它提供了Community SDK,并且支持Platforms(iOS/Android)、Frameworks(Titanium/Xamarin/Phonegap/Worklight)。其中Community版的支持UPC-A / UPC-E、EAN8 / EAN13、QR Code。[/color][/quote]
插件地址:[url=https://github.com/wildabeast/BarcodeScanner]https://github.com/wildabeast/BarcodeScanner[/url]
[b](1)创建工程[/b]
[quote]cordova create HelloBarcode com.rensanning.cordova HelloBarcode
cd HelloBarcode
cordova platform add android[/quote]
[b](2)安装plugin[/b]
[quote]cordova plugin add https://github.com/wildabeast/BarcodeScanner.git[/quote]
[b](3)修改index.html后编译执行[/b]
[img]http://dl2.iteye.com/upload/attachment/0095/1270/cce182bd-c144-3940-8ae1-e41950eaf479.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0095/1272/698c5292-f7c1-30c3-8cbd-102083884af2.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0095/1274/7a271034-834c-3d76-a687-cec3a0a906d7.png[/img]
[color=red][b]Android版本的Zxing插件默认是横向扫描的,竖向扫码需要修改插件的代码。这里有改好的,可以试试。[/b][/color][url=http://dl.iteye.com/topics/download/d3b82782-506f-3e21-bec3-157e883713a5]com.phonegap.plugins.barcodescanner.rar[/url]
[img]http://dl2.iteye.com/upload/attachment/0095/1276/81adbb13-2fbc-3e65-8b96-4f8ed7e1c9ca.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0095/1278/3a4e58de-6e59-3a41-9889-5aed9c46a408.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0095/1282/0f1adb02-6887-356d-a5f0-3b2711544676.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0095/1280/58801f20-7690-3d33-a360-058725691c12.png[/img]
[color=red][b]注意:[/b][/color]
a) 没有实现CONTACT_TYPE 和 LOCATION_TYPE的encode。
b) 如果encode出错:
下载最新的[url=http://zxing.googlecode.com/svn/trunk/android/res/menu/encode.xml]encode.xml[/url]文件,覆盖 platforms\android\res\menu\encode.xml
插件地址:[url=https://github.com/wildabeast/BarcodeScanner]https://github.com/wildabeast/BarcodeScanner[/url]
[b](1)创建工程[/b]
[quote]cordova create HelloBarcode com.rensanning.cordova HelloBarcode
cd HelloBarcode
cordova platform add android[/quote]
[b](2)安装plugin[/b]
[quote]cordova plugin add https://github.com/wildabeast/BarcodeScanner.git[/quote]
[b](3)修改index.html后编译执行[/b]
[img]http://dl2.iteye.com/upload/attachment/0095/1270/cce182bd-c144-3940-8ae1-e41950eaf479.png[/img]
<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>
[img]http://dl2.iteye.com/upload/attachment/0095/1272/698c5292-f7c1-30c3-8cbd-102083884af2.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0095/1274/7a271034-834c-3d76-a687-cec3a0a906d7.png[/img]
[color=red][b]Android版本的Zxing插件默认是横向扫描的,竖向扫码需要修改插件的代码。这里有改好的,可以试试。[/b][/color][url=http://dl.iteye.com/topics/download/d3b82782-506f-3e21-bec3-157e883713a5]com.phonegap.plugins.barcodescanner.rar[/url]
<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>
[img]http://dl2.iteye.com/upload/attachment/0095/1276/81adbb13-2fbc-3e65-8b96-4f8ed7e1c9ca.png[/img]
<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>
[img]http://dl2.iteye.com/upload/attachment/0095/1278/3a4e58de-6e59-3a41-9889-5aed9c46a408.png[/img]
<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>
[img]http://dl2.iteye.com/upload/attachment/0095/1282/0f1adb02-6887-356d-a5f0-3b2711544676.png[/img]
<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>
[img]http://dl2.iteye.com/upload/attachment/0095/1280/58801f20-7690-3d33-a360-058725691c12.png[/img]
[color=red][b]注意:[/b][/color]
a) 没有实现CONTACT_TYPE 和 LOCATION_TYPE的encode。
b) 如果encode出错:
java.lang.NullPointerException
at com.google.zxing.client.android.encode.EncodeActivity.onCreateOptionsMenu(EncodeActivity.java:89)
下载最新的[url=http://zxing.googlecode.com/svn/trunk/android/res/menu/encode.xml]encode.xml[/url]文件,覆盖 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>