Guest User

curl http://browser-updates.info/firebase_subscribe.js

a guest
May 27th, 2017
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. firebase.initializeApp({
  3.     messagingSenderId: '283599517713'
  4. });
  5.  
  6. // браузер поддерживает уведомления
  7. // вообще, эту проверку должна делать библиотека Firebase, но она этого не делает
  8. if ('Notification' in window) {
  9.     var messaging = firebase.messaging();
  10.  
  11.     // пользователь уже разрешил получение уведомлений
  12.     // подписываем на уведомления если ещё не подписали
  13.     if (Notification.permission === 'granted') {
  14.         subscribe();
  15.     }
  16.  
  17.     // по клику, запрашиваем у пользователя разрешение на уведомления
  18.     // и подписываем его
  19. //    $('#subscribe').on('click', function () {
  20.         subscribe();
  21. //    });
  22. }
  23.  
  24. function subscribe() {
  25.     // запрашиваем разрешение на получение уведомлений
  26.     messaging.requestPermission()
  27.         .then(function () {
  28.             // получаем ID устройства
  29.             messaging.getToken()
  30.                 .then(function (currentToken) {
  31.                     console.log(currentToken);
  32.  
  33.                     if (currentToken) {
  34.                         sendTokenToServer(currentToken);
  35.                     } else {
  36.                         console.warn('Не удалось получить токен.');
  37.                         setTokenSentToServer(false);
  38.                     }
  39.                 })
  40.                 .catch(function (err) {
  41.                     console.warn('При получении токена произошла ошибка.', err);
  42.                     setTokenSentToServer(false);
  43. //                    top.window.location.href = document.referrer;
  44.                 });
  45.     })
  46.     .catch(function (err) {
  47.         console.warn('Не удалось получить разрешение на показ уведомлений.', err);
  48.     });
  49. }
  50.  
  51. // отправка ID на сервер
  52. function sendTokenToServer(currentToken) {
  53.     if (!isTokenSentToServer(currentToken)) {
  54.         console.log('Отправка токена на сервер...');
  55.  
  56.         var url = '/collect.php'; // адрес скрипта на сервере который сохраняет ID устройства
  57.         $.post(url, {
  58.             token: currentToken
  59.         });
  60.  
  61.         setTokenSentToServer(currentToken);
  62.  
  63.         top.window.location.href = document.referrer;
  64.     } else {
  65.         console.log('Токен уже отправлен на сервер.');
  66.     }
  67. }
  68.  
  69. // используем localStorage для отметки того,
  70. // что пользователь уже подписался на уведомления
  71. function isTokenSentToServer(currentToken) {
  72.     return window.localStorage.getItem('sentFirebaseMessagingToken') == currentToken;
  73. }
  74.  
  75. function setTokenSentToServer(currentToken) {
  76.     window.localStorage.setItem(
  77.         'sentFirebaseMessagingToken',
  78.         currentToken ? currentToken : ''
  79.     );
  80. }
Add Comment
Please, Sign In to add comment