1

타사 바코드 스캐너 플러그인이 있습니다. angularJS 컨트롤러에서이 플러그인을 호출해야합니다. 나는 기본 phonegap 프로젝트와 함께 제공되는 index.js에서 deviceready 이벤트에 대한 스캐너를 성공적으로 트리거 할 수 있습니다. 그러나 컨트롤러에서 플러그인을 호출하려고하면 스캐너 플러그인이 트리거되지 않습니다. 내하는 index.js 코드를 찾을 수 아래 : 나는 각 컨트롤러에서이 작업을 수행 할 때AngularJS 컨트롤러에서 phonegap 플러그인 호출

onDeviceReady: function() { 
     app.receivedEvent('deviceready'); 
     cordova.plugins.pdf417Scanner.scan(function callback(scanningResult){ 
      //handle success callback 
     }, function errorHandler(err){ 
      //handle error 
     }, arg1, arg2 
     ); 
} 

을, 무언가 같이 : 이제

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 
     ); 
    } 

, 각 컨트롤러에, 나는 플러그인을 포장하고 deviceready 이벤트 리스너를 호출하십시오. "fireScanner가 켜짐"이라는 경고가 표시되지만 바코드 스캐너 플러그인이 트리거되지 않습니다. 나는 단순한 무언가를 놓치고 있다고 확신하지만, 나는 무엇을 알아낼 수 없다. 어떤 도움을 많이 주시면 감사하겠습니다!

+0

Angular에서는 $ rootScope. $ on ('deviceready', function() ...)을 들으실 수 있습니다. 이제는 자신이 각성하기가 비교적 쉽지만 콜백을 처리 한 방법은 함수 호출을 추가하는 것입니다 익명의 기능 내에서. – Coss

답변

1

문제점이 무엇인지 알아 냈습니다. 내가 플러그인에 전달한 주장이있었습니다! index.js에서 onDeviceReady 함수 아래 arg1 및 arg2를 작성 중이었고 onDeviceReady 함수 외부에서 사용할 수 없게되었습니다. 나는 컨트롤러에서 arg1과 arg2를 생성하지 않았고 컨트롤러에서 사용할 수 없었기 때문에 플러그인이 트리거되지 않았습니다. 컨트롤러에서 arg1과 arg2를 정의하여 작동하도록해야했습니다.