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.

Другие вопросы по тегам