Як визначити Увімкнення або Вимкнення повідомлення про рівень пристрою за допомогою javascript для програми PWA?


12

Моя вимога полягає в тому, як визначити сповіщення про рівень пристрою на пристрої Android з допомогою javascript (не використовуйте будь-якого модуля, тільки ви можете використовувати плагін, якщо цей плагін підтримує програму PWA).

Відповідно, якщо сповіщення вимкнено, мені потрібно показати спливаюче вікно користувачеві, будь ласка, увімкніть функцію сповіщення.

Нижче відповідь лише для сповіщення про рівень детективної браузера. Якщо хтось знає, будь ласка, дайте мені точну відповідь, як це зробити. Бо я там зупинився.

Будь ласка, перевірте зображення, яке тут вмикає користувач, якщо користувач відключив, то я не можу надсилати сповіщення.

введіть тут опис зображення


1
Браузер поверне це, я не думаю, що вам потрібно про це подбати. Веб-переглядач може просити дозволу, лише якщо дозволено загальне сповіщення. Ми можемо підключитися, якщо потрібно.
anshulix

1
@anshulix своє право. Я вже обробляв рівень браузера. Але якщо користувач вимкне рівень пристрою, я не можу натиснути сповіщення. Таким чином, я не можу бути ввімкнено безпосередньо на користувальницькому пристрої, тому я хочу відображати принаймні спливаюче вікно.
Prabhat

1
Веб-переглядач надає лише статус сповіщення на рівні браузера. Я думаю, ви маєте на увазі таке слово (Notification.permission).
Prabhat

Хто-небудь може дати відповідь ... ласка ... !!
Prabhat

Якщо ви ввімкнули андроїд-інтерфейс із веб-сервером, тоді ви можете створити гачок, який може обробити це за вас. Або ви можете спробувати Notification.requestPermission. Не дуже впевнений, наскільки добре це працюватиме на користувацькому мобільному веб-сайті.
varun agarwal

Відповіді:


4

Ця функція, здається, добре задокументована , ви спробували:

function notifyMe() {
  // Let's check if the browser supports notifications
  if (!("Notification" in window)) {
    console.log("This browser does not support desktop notification");
  }

  // Let's check whether notification permissions have alredy been granted
  else if (Notification.permission === "granted") {
    // If it's okay let's create a notification
    var notification = new Notification("Hi there!");
  }

  // Otherwise, we need to ask the user for permission
  else if (Notification.permission !== 'denied' || Notification.permission === "default") {
    Notification.requestPermission(function (permission) {
      // If the user accepts, let's create a notification
      if (permission === "granted") {
        var notification = new Notification("Hi there!");
      }
    });
  }

  // At last, if the user has denied notifications, and you 
  // want to be respectful there is no need to bother them any more.
}

Привіт ... Більше .. ваша відповідь стосується сповіщення про рівень браузера .. Я запитую про рівень пристрою .. як виявити?
Prabhat

Так, я спробував і реалізував для рівня браузера. Але я запас над рівнем пристрою .. виявлення сповіщень.
Prabhat

@ Прабхат відповідно до MDN "API сповіщень дозволяє веб-сторінці чи додатку надсилати сповіщення, які відображаються за межами сторінки на системному рівні; це дозволяє веб-програмам надсилати інформацію користувачеві, навіть якщо програма не працює або у фоновому режимі."
Mosè Raguzzini

так, але якщо користувач відключив сповіщення на рівні пристрою, я не можу натиснути сповіщення .. перевірте знімок екрана.
Prabhat

1
@Це захист браузера, щоб отримати доступ до інформації вищого рівня, вам слід загорнути веб-сайт у додаток і запитати безпосередньо в ОС, а потім поширити інформацію у веб-перегляд.
Mosè Raguzzini
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.