0

私はPhonegapとAngularJSを使用してFCMから通知を受け取ります。先週から通知データを取得するためにコントローラのFCM工場に電話

私は今、私はメッセージからデータを取得したいと思い、彼らはこのコードを使用することをお勧めので、cordova-fcm-pluginでそれを行うことができます:

FCMPlugin.onNotification(
    function(data){ 
    if(data.wasTapped){ 
     //Notification was received on device tray and tapped by the user. 
     alert(JSON.stringify(data)); 
    }else{ 
     //Notification was received in foreground. Maybe the user needs to be notified. 
     alert(JSON.stringify(data)); 
    } 
    }, 
    function(msg){ 
    console.log('onNotification callback successfully registered: ' + msg); 
    }, 
    function(err){ 
    console.log('Error registering onNotification callback: ' + err); 
    } 
); 

私の問題は、私はそのコードを追加する方法が分からないということでした角度コントローラに、私は似たようなインターネットの何かに検索し、私はこのfactory

angular.module('rhoAppApp') 
     .factory('$FCMPlugin', $FCMPlugin); 

     $FCMPlugin.$inject = []; 

     function $FCMPlugin() { 
      var service = { 
       getToken: function(successCallback, failCallback) { 
        FCMPlugin.getToken(successCallback, failCallback); 
       }, 
       onNotification: function(onNotification, onCallbackSuccesSet, onCallbackFailSet) { 
        FCMPlugin.onNotification(onNotification, 
         onCallbackSuccesSet, onCallbackFailSet); 
       } 
      }; 
      return service;    

      } 

を見つけだから今私の問題は私のコントローラでそのファクトリを使用している、私はあなたが呼び出す必要があること(多分私が間違っている)知っていますそれから:

.controller('MainCtrl', function ($FCMPlugin) { 

$FCMPlugin.something 

}) 

しかし、私はその工場の使い方がわかりません。

答えて

0

私はこれで、この問題を解決することができます:

私は角のPhoneGap +ヨーマンを使用してビルドを作った、この方法の問題の建物の一つは、あなたがcordova.jsに

マイproblemaを含める必要があるということですでした、私はこのライン

<!-- build:js(.) scripts/vendor.js --> 
<!-- bower:js --> 
<script src="bower_components/jquery/dist/jquery.js"></script> 
<script src="bower_components/angular/angular.js"></script> 
<script src="bower_components/bootstrap/dist/js/bootstrap.js"></script> 
<!-- endbower --> 
<!-- endbuild --> 

内部condorva.jsが含まそして、あなたはvendor.jsでそれを構築したいいけないので、それは問題であることを、代わりに私はそのラインの外にcordova.jsを追加しました:

は、その後、私はあなたがモバイルデバイスやウェブの内側にあるときindetifyするapp.jsにこのコードを追加:

angular.element(document).ready(function() { 
    if (navigator.userAgent.match(/(iOS|iPhone|iPod|iPad|Android|BlackBerry)/)) { 

     document.addEventListener('deviceready', function() { 

     console.log('This is mobile app'); 

     angular.bootstrap(document.body, ['moodleAppApp']); 

     }, false); 

    } else { 

     console.log('This is web app'); 

     angular.bootstrap(document.body, ['moodleAppApp']); 

    } 
    }); 

また、私はindex.htmlを

から NG-アプリを削除します

これは私の角のあるアプリをコードバで動作させるものです。

関連する問題