Wie erkennt man die Benachrichtigung auf Geräteebene mit Javascript für PWA-Anwendungen?

12

Meine Anforderung ist, wie die Benachrichtigung auf Geräteebene auf einem Android-Gerät mithilfe von Javascript erkannt wird (verwenden Sie kein Plug-In, nur Sie können das Plug-In verwenden, wenn dieses Plug-In die PWA-Anwendung unterstützt).

Wenn die Benachrichtigung deaktiviert ist, muss ich dem Benutzer das Popup anzeigen. Bitte aktivieren Sie die Benachrichtigungsfunktion, für die Sie Benachrichtigungen erhalten.

Die folgende Antwort gilt nur für Benachrichtigungen auf Detektivbrowserebene. Wenn jemand weiß Bitte geben Sie mir eine genaue Antwort, wie es geht. Weil ich dort angehalten habe.

Bitte überprüfen Sie das Bild hier einmal Benutzer aktivieren, wenn Benutzer deaktivieren, dann kann ich keine Benachrichtigung senden.

Geben Sie hier die Bildbeschreibung ein

Prabhat
quelle
1
Der Browser wird das zurückgeben, ich glaube nicht, dass Sie sich darum kümmern müssen. Ein Browser kann nur dann um Erlaubnis bitten, wenn allgemeine Benachrichtigungen zulässig sind. Wir könnten uns bei Bedarf verbinden.
Anhulix
1
@anshulix dein Recht. Ich habe bereits die Browserebene behandelt. Aber wenn Benutzer nicht auf Geräteebene sind, kann ich die Benachrichtigung nicht weiterleiten. Daher kann ich nicht direkt auf dem Benutzergerät aktiviert werden. Deshalb muss ich zumindest ein Popup anzeigen.
Prabhat
1
Der Browser gibt nur den Benachrichtigungsstatus auf Browserebene an. Ich denke, Sie möchten sagen (Notification.permission).
Prabhat
Kann jemand eine Antwort geben .. bitte .. !!
Prabhat
Wenn Sie die Android-Schnittstelle mit der Webanwendung aktiviert haben, können Sie einen Hook erstellen, der dies für Sie erledigt. Oder Sie könnten es versuchen Notification.requestPermission. Ich bin mir nicht sicher, wie gut es auf einer benutzerdefinierten mobilen Webanwendung funktioniert.
Varun Agarwal

Antworten:

4

Die Funktion scheint gut dokumentiert zu sein . Haben Sie versucht:

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
quelle
Hey..Mose .. Ihre Antwort ist für die Benachrichtigung auf Browserebene .. Ich frage nach Geräteebene..Wie zu erkennen?
Prabhat
Ja, ich habe versucht und für die Browserebene implementiert. Aber ich lagere über die Geräteebene .. Benachrichtigung erkennen.
Prabhat
@Prabhat laut MDN "Mit der Benachrichtigungs-API kann eine Webseite oder App Benachrichtigungen senden, die auf Systemebene außerhalb der Seite angezeigt werden. Dadurch können Web-Apps Informationen an einen Benutzer senden, selbst wenn die Anwendung inaktiv oder im Hintergrund ist."
Mosè Raguzzini
Ja, aber wenn der Benutzer die Benachrichtigung auf Geräteebene deaktiviert, kann ich die Benachrichtigung nicht senden. Bitte überprüfen Sie meinen Screenshot.
Prabhat
1
@Dies ist Browsersicherheit. Um auf Informationen auf höherer Ebene zuzugreifen, sollten Sie Ihre Webanwendung in eine App einbinden und direkt beim Betriebssystem nachfragen und die Informationen dann an die Webansicht weitergeben.
Mosè Raguzzini