2015-08-29 4 views
0

Я пытаюсь реализовать некоторое уведомление по проекту y cordova, используя AngularJS как FO.Cordova PushNotification issue

Что я сделал:

0/зарегистрировать идентификатор на ГКМ

1/установлен плагин https://github.com/phonegap-build/PushPlugin.git

2/включена последняя версия cordova.js в моей index.html

Код:

<html ng-app="baclyApp"> 
    <head> 
<meta name="format-detection" content="telephone=no"> 
     <meta name="msapplication-tap-highlight" content="no"> 
     <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"> 
     <link rel="stylesheet" type="text/css" href="css/bootstrap.css"> 
     <link rel="stylesheet" type="text/css" href="css/style.css"> 
     <link rel="stylesheet" type="text/css" href="css/angular-growl.min.css"> 

     <title>Bacly Mobile</title> 
    </head> 
    <body> 
      <div class="navbar navbar-default navbar-fixed-top" role="navigation" id='nav1' ng-controller="navCtrl"> 
       <div class="container-fluid"> 
        <div class=""> 
         <ul class="nav navbar-nav navbar-left"> 
          <li> 
           <a class="navbar-brand" ui-sref="home"> 
            Bacly Mobile 
           </a> 
          </li> 
         </ul> 
        </div> 
        <div class="collapse navbar-collapse"> 
          <ul class="nav navbar-nav navbar-right"> 
          <li><a ng-click="init1()"><span class="glyphicon glyphicon-refresh"></span></a></li> 
          <li><a ui-sref="login"><span class="glyphicon glyphicon-user"></span></a></li> 

          </ul> 
        </div><!-- /.navbar-collapse --> 
       </div>   
      </div> 
      <div class="navbar navbar-default navbar-static-top"> 
       <div class='container'> 
        <ul class="nav nav-justified"> 
         <li><a ui-sref="home"><span class="glyphicon glyphicon-home"></span></a></li> 
         <li><a ui-sref="tournois"><span class="glyphicon glyphicon-calendar"></span></a></li> 
         <li><a ui-sref="defi"><span class="glyphicon glyphicon-sort"></span></a></li> 
         <li><a ui-sref="pointage"><span class="glyphicon glyphicon-pencil"></span></a></li> 

        </ul> 
       </div> 
      </div> 
     <div class='container-fluid' id="maincontainer"> 
      <div class"col-xs-12 col-sd-12 col-md-12 col-ld-12 container" ui-view="main"> 
      </div> 
     </div> 
     <div growl></div> 
     <div id="deviceready" class="blink"> 
      <p class="event listening">Connecting to Device</p> 
      <p class="event received">Device is Ready</p> 
     </div>   
     <script src="js/angular.js"></script> 
     <script src="js/underscore.js"></script> 
     <script src="js/angular-ui-bootstrap-test.js"></script> 
     <script src="js/angular-ui-router.js"></script> 
     <script src="js/angular-cookies.js"></script> 
     <script src="js/angular-growl.min.js"></script> 
     <script src="js/filters.js"></script> 
     <script src="js/xml2json.js"></script> 
     <script src="js/utf8_encode.js"></script> 
     <script src="js/moment.js"></script> 
     <script src="js/cordova.js"></script> 
     <script src="js/baclym.js"></script> 


    </body> 
</html> 

3/в моем основном сценарии наверху, я реализую прослушиватель событий для устройства.

Код (начало baclym.js):

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


    var pushNotification = window.plugins.pushNotification; 
     console.log(pushNotification); 
     pushNotification.register(successHandler, errorHandler,{"senderID":"59581338115","ecb":"app.onNotificationGCM"}); 

    function successHandler (result) { 
      alert('Callback Success! Result = '+result)} 

    function errorHandler (error) { 
      alert(error); 
     } 
    function onNotificationGCM (e) { 
        switch(e.event) 
        { 
         case 'registered': 
          if (e.regid.length > 0) 
          { 
           console.log("Regid " + e.regid); 
           alert('registration id = '+e.regid); 
          } 
         break; 

         case 'message': 
         // this is the actual push notification. its format depends on the data model from the push server 
         alert('message = '+e.message+' msgcnt = '+e.msgcnt); 
         break; 

         case 'error': 
         alert('GCM error = '+e.msg); 
         break; 

         default: 
         alert('An unknown GCM event has occurred'); 
         break; 
        } 
       } 


}, false); 

4/я запустить его на устройстве (s4 мини, андроид 4.4.2)

использование хром инспектировать устройства для его отладки:

я не получаю никаких сообщений Уведомления ни консольных сообщений

в конце концов, я получил сообщение об ошибке в cordova.js, но я предполагаю, что это не связано

Uncaught ReferenceError: требуют не определен cordova.js: 29

я должен получить, по крайней мере, console.log о получении в document.addEventListener, но ничего.

Thx для вашего совета.

+0

Почему вы не используете плагин pushbot? мы используем этот плагин, и он отлично работает. –

+1

Спасибо, я попробую. Не видел его в моем поиске в Google, и много тем рассказывают о плагине, я пытаюсь использовать – Nightf

+0

Исправлено: http://stackoverflow.com/questions/25967691/reference-error-onnotification-is-not-defined-in- пуш-уведомление-Cordova-Andro/26008442 # 26008442 –

ответ

0

До тех пор, пока вы указали обратный вызов app.onNotificationGCM, вы должны иметь глобальную переменную app с функцией onNotificationGCM.

0

Вы можете использовать плагин pushbot. мы используем этот плагин, и он отлично работает. Этот плагин работает только на устройстве android и ios.

Смежные вопросы