Cordova Push Plugin: onNotificationGMC is not fired and cannot obtain regID

前端 未结 3 1075
情书的邮戳
情书的邮戳 2021-01-13 06:01

Hello everyone I\'m developing a cordova Hybrid app that requires the Push Notification Service of Android and iOS to work and so I\'ve installed the cordova plugin \"PushPl

相关标签:
3条回答
  • 2021-01-13 06:46

    I had the same problem. If you are using AngularJS + IonicFramework you do not have to do this:

    After you create your factory with your onDeviceReady function, creates onNotificationGCM function. Something like this:

    app.factory('PushProcessingService', function () { ..

    });

    function onNotificationGCM(e) { }

    I was creating onNotificationGCM inside my factory. This solve my problem. I hope it can helps you.

    0 讨论(0)
  • 2021-01-13 06:58

    In the ionic-framework you have a ready plugin: http://ngcordova.com/docs/plugins/pushNotifications/

    here is an example for a working code for android devices:

    module.run(function($cordovaPush) {
    
    var androidConfig = {
        "senderID": "replace_with_sender_id",
        "ecb": "replace_with_the_name_of_function that will return you the regid"
    };
    
    document.addEventListener("deviceready", function(){
    $cordovaPush.register(config).then(function(result) {
      // Success
    }, function(err) {
      // Error
    })
    
    window.function replace_with_ecb(notification) { //notification.regid
      switch(notification.event) {
        case 'registered':
          if (notification.regid.length > 0 ) {
            alert('registration ID = ' + notification.regid);
          }
          break;
    
        case 'message':
          // this is the actual push notification. its format depends on the data model from the push server
          alert('message = ' + notification.message + ' msgCount = ' + notification.msgcnt);
          break;
    
        case 'error':
          alert('GCM error = ' + notification.msg);
          break;
    
        default:
          alert('An unknown GCM event has occurred');
          break;
      }
    };
    
    }, false);
    });
    

    this code only works a real device(not an emulator)

    0 讨论(0)
  • 2021-01-13 07:02

    FIXED

    I moved the onNotificationGCM in an empty script tag like this:

    <script>
    function onNotificationGCM(result) {
        alert(result.regid);
    }
    </script>
    

    And now it give you the regID :)

    0 讨论(0)
提交回复
热议问题