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了該行:

然後,我添加此代碼app.js當你是一個移動設備或網絡的內部indetify:

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除去納克應用內

所有這些使得我的角度應用程序與科爾多瓦一起工作。

相關問題