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


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.
}

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.