Можно ли расширить уведомление на рабочем столе с помощью JavaScript? - PullRequest
0 голосов
/ 05 июля 2019

Я делал приложение для веб-чата с firebase.Все хорошо, включая уведомление, но уведомление отображается только в течение 5 секунд.Я хочу увеличить продолжительность показа уведомлений.

В этом примерах есть функция requireInteraction , но эта функция не увеличивает продолжительность показа, нозапретить скрытие уведомления.

Вот мой код

    Notification.requestPermission().then(function(permission) {
      if (permission === 'granted') {
        var config = {
          apiKey: "apikey",
          messagingSenderId: "senderid",
        }
        firebase.initializeApp(config)
        const messaging = firebase.messaging();

        messaging.usePublicVapidKey('PublicVapidKey');
        messaging.getToken().then(function(currentToken) {
          if (currentToken) {
            doFCMReg(currentToken)
          } else {
            console.log('No Instance ID token available. Request permission to generate one.')
          }
        }).catch(function(err) {
          console.log('An error occurred while retrieving token. ', err)
        })

        messaging.onTokenRefresh(function() {
          messaging.getToken().then(function(refreshedToken) {
            doFCMReg(token)
          }).catch(function(err) {
            console.log('Unable to retrieve refreshed token ', err)
          })
        })

        messaging.onMessage(function(payload) {
          var n = payload['notification']
          var d = payload['data']
          var not = new Notification("??? \n"+xad(n['body']), { icon: "assets/icon/png/SST-icon-512.png", tag: "" })

          switch(d['type']) {
            case "newchat":
            getInvitation()
            refreshChat(xad(d['phoneSender']), xad(d['invitationId']))

            var target = xad(localStorage.phone)==xad(d['phoneSender']) ? xad(d['phoneReceiver']) : xad(d['phoneSender'])
            not.onclick = function() {
              if(localStorage.currentPage!='page-chat') {
                switchFragment('#page-chat', 'Chats')
              }
              $('#invitation-'+target).trigger('click') 
            }
            break

            case "newcontact":
            getContacts()
            not.onclick = function() {
              if(localStorage.currentPage!='page-contact') {
                switchFragment('#page-contact', 'Contacts')
              }
              $( '#btn-request').trigger('click')
              $(".contact[data-phone='"+d['senderPhone']+"']").trigger('click')
            }
            break
          }
        })
      } else {
        alert("SST needs Notifications to be allowed to enable push notification.")
      }
    })

Есть ли способ продлить продолжительность шоу?

...