Nightf
Nightf

Reputation: 61

Cordova PushNotification issue

I'm trying to implement some notification on y cordova based project using AngularJS as FO.

What i did :

0/ register an id on GCM

1/ installed the plugin https://github.com/phonegap-build/PushPlugin.git

2/ included last version of cordova.js in my index.html

code :

<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/ in my main script at the top, i implement an event listener for device ready.

Code (beginning of 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/ I run it on my device (s4 mini, android 4.4.2)

use chrome inspect devices to debug it :

i dont get any alert message nor console messages

I eventually got an error message in cordova.js but i guess this is not linked

Uncaught ReferenceError: require is not defined cordova.js:29

I should get at least a console.log about getting into document.addEventListener, but nothing.

Thx for your advice.

Upvotes: 0

Views: 224

Answers (2)

mina morsali
mina morsali

Reputation: 778

You can use pushbot plugin. we use this plugin and it work perfectly. This plugin work only on android and ios device.

Upvotes: 0

Lanayx
Lanayx

Reputation: 2876

As long as you have specified app.onNotificationGCM callback, you should have a global variable app with the function onNotificationGCM to be called.

Upvotes: 0

Related Questions