我需要在基于cordova的 Windows 8手机应用程序中创建并安装自定义的cordova插件.目前,应用程序中的按钮单击处理程序无法查看调用cordova.exec的js对象 该对象,使用调用cordova.exe的函数称为d
该对象,使用调用cordova.exe的函数称为dlScanner
它有一个函数scanBarcode,它调用cordova.exec
点击处理程序是这样的:
$(document).ready(function () { $('#cmdOne').click(function () { dlScanner.scanBarcode( function (results) { alert(results); }), function (err) { alert(err); }, 'lowercaseworld' }); });
错误消息是这样的:
TypeError: Cannot read property 'scanBarcode' of undefined
上下文:我使用了Microsoft插件生成器PluginGenerator,找到了here.然后我在应用程序的config.xml文件中使用View Designer,在Visual Studio Community 2015中,将该插件安装到VS拥有的通用cordova Windows 8手机应用程序中早些时候为我创造的.
该插件安装过程将其放在app的config.xml文件中
<vs:plugin name="com.contoso.dlScanner" version="0.1.0" src="C:\Users\TestAndDemo\dlScanner" />
在dlScanner目录(如上所述)中,有src和www目录以及plugin.xml文件
在那个plugin.xml文件是这样的:
<js-module src="www/dlScanner.js" name="dlScanner"> <clobbers target="dlScanner" /> </js-module> <!-- wp8 --> <platform name="wp8"> <config-file target="config.xml" parent="/*"> <feature name="dlScanner"> <param name="wp-package" value="dlScanner"/> </feature> </config-file> <source-file src="src/wp/dlScanner.cs" />
www / dlScanner.js文件包含以下内容:
var dlScanner = { scanBarcode: function (successCallback, errorCallback, strInput) { cordova.exec(successCallback, errorCallback, "dlScanner", "scanBarcode", [strInput]); } } module.exports = dlScanner;
我该怎么做才能使点击处理程序看到dlScanner对象?
谢谢
在Cordova初始化并发出deviceready事件后尝试调用该插件.在此处查看有关此活动的更多信息: http://docs.phonegap.com/en/3.5.0/cordova_events_events.md.html#deviceready.