2016-07-13 10 views
0

In meiner ionischen Anwendung, wenn die Anwendung im Browser ausgeführt wird bekomme ich folgende FehlerPushNotification ist nicht definiert (ng-cordova)

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

in meiner Konsole, sowie, wenn ich die Anwendung für Android bauen und laufen in meinem Telefon es funktioniert dort auch nicht, dh es gibt kein Popup für die Registrierung 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 
     }); 

    }); 

}) 

Antwort

2

Wenn Sie auf ngCordova Seite sehen es wird gesagt „Cordova Plugins funktionieren nicht, während in Ihrem Browser zu entwickeln“. Aus diesem Grund funktioniert es nicht im Browser.

Siehe den Link hier: http://ngcordova.com/docs/common-issues/

Bevor das Plugin Initialisieren Sie sollten überprüfen, ob App auf dem Gerät (nicht im Browser) ausgeführt wird und ionische Plattform ist fertig. Dann, wenn Sie dem Link richtig folgen, sind Sie gut zu gehen.

Der Link: https://github.com/phonegap/phonegap-plugin-push

Mein persönlicher Rat ist, dass Sie müssen nicht verwenden ng-cordova da neue phonegap-Push-Plugin da draußen ist. Sie müssen keine anderen Dinge verwenden. Sie können grundsätzlich Folgendes tun, ohne ng-cordova zu verwenden.

Stellen Sie sicher, dass Sie überprüfen, ob die ionische Plattform bereit und die Plattform nicht Browser ist.

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); 
}); 

Detaillierte Informationen erhalten Sie hier: https://github.com/phonegap/phonegap-plugin-push

+0

ich habe genau das getan, gleich, dass Sie gesagt haben, aber wenn ich die App in andriod Telefon lief ich nicht die redistrationId bekommen. – gudboisgn

+0

Welchen Fehler bekommst du? Kannst du mehr Details geben? @gudboisgn – orhankutlu

+0

Ich habe die ** data.registrationId ** in meiner ** $ rootScope.regId ** zugewiesen und wenn ich sie mit {{regId}} in die Ansicht druecke. es ist einfach leer. @ orhankutlu – gudboisgn