PushNotification未定义(ng-cordova)

时间:2016-07-13 07:58:57

标签: ionic-framework cordova-plugins ngcordova

在我的离子应用程序中,在浏览器中运行应用程序时出现以下错误

ng-cordova.js:6378 Uncaught ReferenceError: PushNotification is not defined 

在我的控制台中,以及当我为Android构建应用程序并在我的手机中运行它也不能在那里工作,即没有弹出窗口 注册ID:alert(data.registrationId);

app.run(function($ionicPlatform, $cordovaPushV5) {
  $ionicPlatform.ready(function() {

      // For Push Notification

     var options = {
        android: {
          senderID: "121XXXXXXX49"
        },
        ios: {
          alert: "true",
          badge: "true",
          sound: "true"
        }
      };

      // initialize
      $cordovaPushV5.initialize(options).then(function() {
        // start listening for new notifications
        $cordovaPushV5.onNotification();
        // start listening for errors
        $cordovaPushV5.onError();

        // register to get registrationId
        $cordovaPushV5.register().then(function(data) {
          // `data.registrationId` save it somewhere;
          alert(data.registrationId);
        })
      });

      // triggered every time notification received
      $rootScope.$on('$cordovaPushV5:notificationReceived', function(event, data){
        alert(data.title + ' - '+ data.message);
        // data.message,
        // data.title,
        // data.count,
        // data.sound,
        // data.image,
        // data.additionalData
      });

      // triggered every time error occurs
      $rootScope.$on('$cordovaPushV5:errorOcurred', function(event, e){
        alert(e.message);
        // e.message
      });  

  });

})

1 个答案:

答案 0 :(得分:2)

如果您查看ngCordova页面,则说“在您的浏览器中进行开发时,Cordova插件无法正常工作”。这就是它无法在浏览器中运行的原因。

请参阅此处的链接:http://ngcordova.com/docs/common-issues/

在初始化插件之前,您应该检查应用程序是否在设备上运行(而不是在浏览器中)并且离子平台已准备就绪。然后,如果你正确地按照链接,你就可以去了。

链接:https://github.com/phonegap/phonegap-plugin-push

我个人的建议是你不必使用ng-cordova,因为那里有新的phonegap-push插件。您不需要使用任何其他东西。您基本上可以在不使用ng-cordova的情况下执行以下操作。

确保检查离子平台是否准备就绪且平台不是浏览器。

var pushConfig = {
    android: {
        senderID: "blabla"
    },
    ios: {
        alert: true,
        badge: true,
        sound: true
    }
};

var push = window.PushNotification.init(pushConfig);

push.on('registration', function(data) {
    var token = data.registrationId
    console.log('OK: register notfy ', token);
});

详细信息请访问:https://github.com/phonegap/phonegap-plugin-push