Push-уведомления на Angular 6 и Phonegap - PullRequest
0 голосов
/ 02 июля 2018

Я должен реализовать обработку 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 :(
  });
}

Я получаю уведомления, система отображает их, но теперь мне нужно перейти, например, к. страница новостей с идентификатором из уведомления. Я не могу сделать это с помощью window.location, и когда я пытаюсь объявить var PushNotification: any; в конструкторе app.component TS сообщает, что PushNotification не объявлено. Любые советы?

1 Ответ

0 голосов
/ 13 декабря 2018

Вам нужно обернуть 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...