Вызвать Javascript функцию от Angular - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь настроить уведомления pu sh для моего проекта Angular. Я пытался с модулем AngularFire, но я сталкиваюсь с проблемами - https://github.com/angular/angularfire/issues/2299. Поэтому я подумал об использовании ванильного Javascript кода. Поэтому я создал функцию Javascript, которая будет отображать диалоговое окно запроса на разрешение уведомлений и записывать токен на консоль. И я могу вызвать функцию с Angular. Но вместо того, чтобы записать токен на консоль, мне нужно сохранить токен в моей базе данных, чтобы я мог связать токен с пользователями моего приложения и отправить уведомление указанным c пользователям. Я не мог найти способы сделать это. Вот моя Javascript функция, которая показывает приглашение браузера и записывает токен на консоль.

var requestForPermission = function () {
  messaging.requestPermission().then(m => {
    messaging.getToken().then(t => {
      console.log(t);
    });
  });
}

И в машинописном тексте я создал такую ​​функцию.

declare function requestForPermission(): any;

И наконец, вызывая эту функцию из функции машинописи.

toggleBrowserNotification() {
  requestForPermission();
}

Я пытался вернуть токен, объект обмена сообщениями и т. д. c, но я не знаю, как использовать эти объекты в Typescript.

1 Ответ

1 голос
/ 16 апреля 2020

Если я правильно понял вашу проблему, вы можете попробовать это.

JS

var requestForPermission = async function () {
    let m = await messaging.requestPermission();
    return await messaging.getToken();
}

TS

toggleBrowserNotification() {
   requestForPermission()
       .then(t => this.myTokenSaverService.savetoken(t)) //All succesful
       .catch(e=> console.log(e)); //Error getting permission or token
}

С уважением,

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