Windows Phone 8 PhoneGap 条码扫描仪
Posted
技术标签:
【中文标题】Windows Phone 8 PhoneGap 条码扫描仪【英文标题】:Windows Phone 8 PhoneGap Barcodescanner 【发布时间】:2013-05-11 16:01:42 【问题描述】:我一直在尝试将 Windows Phone 8 与 PhoneGap 和插件 (https://github.com/phonegap/phonegap-plugins/tree/master/WindowsPhone/BarcodeScanner) 一起用于 BarcodeScanning。但我不知道如何开始。
我在 index.html 中集成了一个<a href="#" class="btn" onclick="window.plugins.barcodeScanner.scan">Scan Code</a>
,但 VS2012 只告诉我Error:"Unable to get property 'barcodeScanner' of undefined or null reference file:x-wmapp0:www/index.html Line:31"
谁能帮我一把?
【问题讨论】:
【参考方案1】:我认为您没有包含cordova.windows-x.x.x.js 或barcodescanner.js。
【讨论】:
【参考方案2】:barcodeScanner.js 中有一个错误。
在文件底部显示
Cordova.addConstructor(function()
将 Cordova 更改为 cordova(小写),一切顺利。
接下来,如果你得到错误
Error::Plugin not allowed in config.xml. org.apache.cordova.barcodeScanner
在尝试扫描时,将以下内容添加到项目根目录中的 config.xml 中:
<plugin name="org.apache.cordova.barcodeScanner"/>
【讨论】:
【参考方案3】:我不确定这是否是您想要的,但这是我为使其工作所做的步骤:
在您的项目中添加 BarcodeScanner 和 ZXingVer1_7 dll。
将 BarcodeScanner.cs 添加到您的项目中。(必须在项目的根目录下)
将<plugin name="BarcodeScanner" />
添加到您的 config.xml。
将barcodescanner.js 添加到您的“www”目录中。
添加<script type="text/javascript" src="../barcodescanner.js"></script>
在您的 cordova.js 声明之后到您的 html 页面。 (路径可能会有所不同,具体取决于您放置 html 的位置)
在您的barcodescanner.js 中,确保所有“cordova”引用不是这样写的:“Cordova”
在您的barcodescanner.js 中,以“return cordova.exec(...”开头的行中,将字符串“barcodeScanner”替换为“(您的项目名称).barcodeScanner”
要使用它,只需将其添加到您需要条形码扫描的位置:
window.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);
);
【讨论】:
以上是关于Windows Phone 8 PhoneGap 条码扫描仪的主要内容,如果未能解决你的问题,请参考以下文章
jQuery Mobile无法在PhoneGap Windows Phone 8中运行
Sencha Touch - Windows Phone 8 Phonegap 应用程序栏不隐藏在后退按钮单击
带有 AngularJS 的 Windows Phone 8.1 上的 Phonegap 无法从我的 API 中检索 JSONP
将 windows phone 8.0 phonegap 应用程序从 worklight 6.0 移动到 worklight 6.1
如何查看 Windows Phone 8 模拟器或运行 Phonegap 应用程序的设备的 javascript 控制台输出