#angularjs #cordova #ionic-framework
#angularjs #кордова #ионный фреймворк
Вопрос:
Я работаю с плагином cordovaPushV5, чтобы иметь возможность реализовывать push-уведомления в моем приложении.
Я делаю точно так же, как в этом руководстве: https://github.com/yafraorg/yafra/wiki/Blog-Ionic-PushV5
Когда я запускаю приложение в своем браузере, я получаю указанную выше ошибку в консоли.
Я правильно установил плагин и включил необходимые строки кода в свой App.js файл, как показано ниже.
Может кто-нибудь помочь мне узнать, где я ошибаюсь?
/****ENABLE RECEIVING OF PUSH NOTIFICATIONS****/
/*
* start within Platform ready
*/
$ionicPlatform.ready(function() {
// register push notification and get local push token
localStorage.myPush = ''; // I use a localStorage variable to persist the token
$cordovaPushV5.initialize( // important to initialize with the multidevice structure !!
{
android: {
senderID: "704649974960"
},
ios: {
alert: 'true',
badge: true,
sound: 'false',
clearBadge: true
},
windows: {}
}
).then(function (result) {
$cordovaPushV5.onNotification();
$cordovaPushV5.onError();
$cordovaPushV5.register().then(function (resultreg) {
localStorage.myPush = resultreg;
// SEND THE TOKEN TO THE SERVER, best associated with your device id and user
}, function (err) {
// handle error
});
});
});
/*
* Push notification events
*/
$rootScope.$on('$cordovaPushV5:notificationReceived', function(event, data) { // use two variables here, event and data !!!
if (data.additionalData.foreground === false) {
// do something if the app is in foreground while receiving to push - handle in app push handling
} else {
// handle push messages while app is in background or not started
}
if (Device.isOniOS()) {
if (data.additionalData.badge) {
$cordovaPushV5.setBadgeNumber(NewNumber).then(function (result) {
// OK
}, function (err) {
// handle error
});
}
}
$cordovaPushV5.finish().then(function (result) {
// OK finished - works only with the dev-next version of pushV5.js in ngCordova as of February 8, 2016
}, function (err) {
// handle error
});
});
$rootScope.$on('$cordovaPushV5:errorOccurred', function(event, error) {
// handle error
});
/****END ENABLE RECEIVING OF PUSH NOTIFICATIONS****/
Комментарии:
1. Вы внедрили
$cordovaPushV5
свой контроллер? Вы добавилиngCordova.plugins.push_v5
модуль в качестве зависимости в свое приложение?2. @RaviTeja Я ввел его, и код находится внутри:
.run(function ($rootScope,$cordovaPushV5,$ionicPlatform, $state, AuthService, AUTH_EVENTS) { //Code here }
я не добавил зависимость, но я установил ngCordova. Как мне его добавить, пожалуйста?
Ответ №1:
Плывем в одной лодке. Увидел, что в моем файле отсутствует пара вещей index.html
. Я использую ionic
project.
<!-- ionic/angularjs js -->
<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="lib/ionic-service-core/ionic-core.js"></script>
<script src="lib/ionic-service-push/ionic-push.js"></script>
<!-- ngCordova -->
<script src="lib/cordova/ng-cordova.min.js"></script>
<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>
<script src="lib/ngCordova/dist/ng-cordova.min.js">
Если вы видите, что для файла есть две папки ng-cordova.min.js
. У lib/ngCordova/dist/ng-cordova.min.js
него есть $cordovaPushV5
определение.
Надеюсь, это поможет.
Комментарии:
1. Спасибо. Я также решил ошибку, следуя тому, что сказал Рави выше.