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では$ root( 'deviceready'、function()...)で聞くことができます。今は自分自身の角度が比較的新しいですが、コールバックを処理した方法は関数呼び出しを追加することです匿名の機能の中で。 – Coss

答えて

1

私は問題が何かを知った!私がプラグインに渡した議論がありました! index.jsでは、onDeviceReady関数の下でarg1とarg2を作成していましたが、onDeviceReady関数の外部で利用できるようになっていませんでした。コントローラーにarg1とarg2を作成していないので、コントローラーでは使用できないため、プラグインがトリガーされていませんでした。コントローラでarg1とarg2を定義して動作させる必要がありました。

関連する問題