Push-уведомления на Angular 6 и Phonegap
Я должен реализовать обработку push-уведомлений в приложении, написанном на Angular 6 и Phonegap. Я установил phonegap-push-plugin и обычно он работает, когда я использую его в index.html:
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
if (device.platform === 'Android') {
setPushNotifications();
} else {
pushID = null;
}
}
function setPushNotifications() {
push = PushNotification.init({
"android": {
"senderID": "xxx",
"icon": "notify_icon",
"iconColor": "#1f5382"
},
"ios": {
"sound": true,
"vibration": true,
"badge": true
},
});
push.on('registration', (data) => {
pushID = data.registrationId;
});
push.on('notification', data => {
alert('PUSH arrived!');
// go to another view in Angular... HOW :(
});
}
Я получаю уведомления, система отображает их, но теперь мне нужно перейти на eg. страница новостей с идентификатором из уведомления. Я не могу сделать это с помощью window.location, и когда я пытаюсь объявить var PushNotification: any; в конструкторе app.component TS сообщает, что PushNotification не объявлено. Какие-нибудь советы?
0 ответов
Вам нужно обернуть platformBrowserDynamic(). BootstrapModule(AppModule) в onDeviceReady в main.ts:
const onDeviceReady = () => {
platformBrowserDynamic().bootstrapModule(AppModule)
.catch(err => console.log(err));
}
document.addEventListener('deviceready', onDeviceReady, false);
В противном случае AppModule срабатывает до загрузки плагина cordova, поэтому PushNotification не определено.
Второе:
Я пытаюсь объявить var PushNotification: любой; в конструкторе app.component
declare let PushNotification: any;
должен быть вне класса AppComponent.