¿Cómo detectar la notificación de nivel de dispositivo activada o desactivada utilizando JavaScript para la aplicación PWA?

12

Mi requisito es cómo detectar la activación / desactivación de la notificación de nivel de dispositivo en un dispositivo Android usando javascript (no use ningún tipo de complemento, solo puede usarlo si este complemento es compatible con la aplicación PWA).

Según la notificación desactivada, necesito mostrar la ventana emergente al usuario, habilite la función de notificación para recibir notificaciones.

La siguiente respuesta es solo para notificaciones de nivel de navegador detectivesco. Si alguien sabe, por favor, dame una respuesta exacta sobre cómo hacerlo. Porque me detuve allí.

Compruebe la imagen aquí, habilite el usuario una vez si el usuario deshabilita, no puedo enviar notificaciones.

ingrese la descripción de la imagen aquí

Prabhat
fuente
1
El navegador va a devolver eso, no lo creo, así que debes encargarte de eso. Un navegador solo puede pedir permiso si se permiten notificaciones generales. Podríamos conectarnos si es necesario.
anshulix
1
@anshulix tienes razón. Ya manejé el nivel del navegador. Pero si el usuario está fuera del nivel del dispositivo, no puedo enviar la notificación. por lo tanto, no puedo habilitarlo directamente en el dispositivo del usuario, por eso es que debo mostrar al menos una ventana emergente.
Prabhat
1
El navegador solo proporciona el estado de notificación a nivel del navegador ... Supongo que quieres decir como (Notification.permission).
Prabhat
¿Alguien puede dar una respuesta ... por favor ...!
Prabhat
Si ha habilitado la interfaz de Android con la aplicación web, puede crear un gancho que pueda manejarlo por usted. O podrías intentarlo Notification.requestPermission. No estoy seguro de qué tan bien funcionará en una aplicación web móvil personalizada.
varun agarwal

Respuestas:

4

La característica parece estar bien documentada , ¿ha intentado:

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.
}
Mosè Raguzzini
fuente
Hola ... Mose ... su respuesta es para la notificación a nivel del navegador ... Estoy preguntando sobre el nivel del dispositivo ... ¿cómo detectarlo?
Prabhat
Sí, lo intenté e implementé para el nivel del navegador. Pero tengo existencias en el nivel del dispositivo ... detección de notificaciones.
Prabhat
@Prabhat según MDN "La API de notificaciones permite que una página web o aplicación envíe notificaciones que se muestran fuera de la página a nivel del sistema; esto permite que las aplicaciones web envíen información a un usuario incluso si la aplicación está inactiva o en segundo plano ..."
Mosè Raguzzini
sí, pero si el usuario no recibe la notificación en el nivel del dispositivo, no puedo enviar la notificación ... compruebe mi captura de pantalla.
Prabhat
1
@Esta es la seguridad del navegador, para acceder a información de nivel superior, debe envolver su aplicación web en una aplicación y preguntar directamente al sistema operativo, luego propagar la información a la vista web.
Mosè Raguzzini