从 AngularJS 控制器调用 phonegap 插件
Calling phonegap plugin from AngularJS controller
我有一个第 3 方条码扫描器插件。我需要从 angularJS 控制器调用这个插件。我能够从基本的 phonegap 项目附带的 index.js 成功触发设备就绪事件上的扫描仪。但是,当我尝试从控制器调用插件时,不会触发扫描仪插件。您可以在下方找到我的 index.js 代码:
onDeviceReady: function() {
app.receivedEvent('deviceready');
cordova.plugins.pdf417Scanner.scan(function callback(scanningResult){
//handle success callback
}, function errorHandler(err){
//handle error
}, arg1, arg2
);
}
当我尝试在 angular 控制器中执行此操作时,类似于:
var myApp = angular.module("scanApp",[]);
myApp.controller("mainCtrl", function(){
document.addEventListener('deviceready', fireScanner, false);
function fireScanner(){
alert("fireScanner is on");
cordova.plugins.pdf417Scanner.scan(function callback(scanningResult){
//handle success callback
}, function errorHandler(err){
//handle error
}, arg1, arg2
);
}
现在,在 angular 控制器中,我将插件调用包装在设备就绪事件侦听器中。显示 "fireScanner is on" 的警报被触发,但条形码扫描器插件未被触发。我确定我错过了一些简单的东西,但我无法弄清楚是什么。任何帮助将不胜感激!
我找到问题所在了!这是我传递给插件的参数!在 index.js 中,我在 onDeviceReady 函数下创建了 arg1 和 arg2,但它并没有使自己在 onDeviceReady 函数之外可用。我没有在控制器中创建 arg1 和 arg2,它们在控制器中根本不可用,因此没有触发插件。我必须在控制器中定义 arg1 和 arg2 才能使其工作。
我有一个第 3 方条码扫描器插件。我需要从 angularJS 控制器调用这个插件。我能够从基本的 phonegap 项目附带的 index.js 成功触发设备就绪事件上的扫描仪。但是,当我尝试从控制器调用插件时,不会触发扫描仪插件。您可以在下方找到我的 index.js 代码:
onDeviceReady: function() {
app.receivedEvent('deviceready');
cordova.plugins.pdf417Scanner.scan(function callback(scanningResult){
//handle success callback
}, function errorHandler(err){
//handle error
}, arg1, arg2
);
}
当我尝试在 angular 控制器中执行此操作时,类似于:
var myApp = angular.module("scanApp",[]);
myApp.controller("mainCtrl", function(){
document.addEventListener('deviceready', fireScanner, false);
function fireScanner(){
alert("fireScanner is on");
cordova.plugins.pdf417Scanner.scan(function callback(scanningResult){
//handle success callback
}, function errorHandler(err){
//handle error
}, arg1, arg2
);
}
现在,在 angular 控制器中,我将插件调用包装在设备就绪事件侦听器中。显示 "fireScanner is on" 的警报被触发,但条形码扫描器插件未被触发。我确定我错过了一些简单的东西,但我无法弄清楚是什么。任何帮助将不胜感激!
我找到问题所在了!这是我传递给插件的参数!在 index.js 中,我在 onDeviceReady 函数下创建了 arg1 和 arg2,但它并没有使自己在 onDeviceReady 函数之外可用。我没有在控制器中创建 arg1 和 arg2,它们在控制器中根本不可用,因此没有触发插件。我必须在控制器中定义 arg1 和 arg2 才能使其工作。