在我的离子应用程序中,在浏览器中运行应用程序时出现以下错误
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
});
});
})
答案 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);
});