Integrationsleitfaden: Web Push Integration mit EngageLab

Support-Beschreibung für Nutzer:innen aus dem Ausland je Kanal

Kanaltyp Nutzer:innen in anderen Regionen Nutzer:innen aus Festlandchina Hinweis
EngageLab Support Support Standardmäßig durch SDK unterstützt
W3C Support Support /

Schnelltest

EngageLab WebPush Integrations-Demo und Beispiele

Vorbereitung vor der Integration

  1. Stellen Sie eine Domain für einen erreichbaren HTTPS-Webservice bereit, auf dem getestet und debuggt werden kann. Web Push unterstützt kein lokales Debugging und funktioniert nicht ohne HTTPS.
  2. Besuchen Sie Engagelab WebPush, legen Sie die Website-Domain unter Integrationseinstellungen → Web fest und tragen Sie die vorbereitete HTTPS-Domain ein.
    截屏2022-11-29 11.06.12.png

Hinweise

Dieser Artikel ist ein Standard-Integrationsleitfaden für die Web Push Integration mit dem MTpush Web SDK.

Beschreibung

Das Web SDK bietet ein Push-Entwicklungs-Framework für Webanwendungen, das auf Browser-Benachrichtigungen und Websockets der jeweiligen Browser basiert. Es stellt eine klare API-Schnittstelle bereit, damit Drittanbieter-Anwendungen Push-Funktionen schnell integrieren können. Die Browser-Benachrichtigungen unterstützen gängige Browser wie Edge, Chrome, Safari, Firefox und Opera; Websockets werden von den meisten dieser Browser unterstützt.

Der EngageLab WebPush-Dienst unterstützt PWA Push-Benachrichtigungen. Verwenden Sie das von EngageLab WebPush bereitgestellte Web SDK, um die Web Push-Funktionalität in Ihre PWA-Anwendung zu integrieren. Folgen Sie dem Beispielcode im Leitfaden, um den Service Worker zu registrieren und die Web Push-Funktion zu initialisieren. Nach erfolgreicher Integration können Sie die EngageLab WebPush API nutzen, um Push-Benachrichtigungen an die Nutzer:innen Ihrer PWA-Anwendung zu senden.
Weitere Details finden Sie in der Dokumentation

Hauptanwendungsfälle

Benachrichtigungen und personalisierte Nachrichten.

Inhalt des Download-Pakets

  • example
    • Dies ist eine Webseite, die die grundlegende Nutzung des MTpush SDK demonstriert. Sie kann als Referenz dienen.

App-Informationen erhalten

Erstellen Sie eine Anwendung in der Konsole. Nach der Erstellung wird automatisch ein AppKey generiert, der die Anwendung eindeutig identifiziert. Weitere Informationen finden Sie unter Anwendungseinstellungen.

SDK integrieren

Besuchen Sie Engagelab WebPush und laden Sie das SDK herunter. Binden Sie die SDK-JS-Datei wie folgt in Ihre Webseite ein:

<script type="text/javascript" src="./webPushSdk.min.2.1.2.js"></script>
              
              <script type="text/javascript" src="./webPushSdk.min.2.1.2.js"></script>

            
Diesen Codeblock im schwebenden Fenster anzeigen

Nach der Integration der JS-Datei steht das globale Objekt MTpushInterface im Window zur Verfügung.

Hinweise

Das Paket enthält sw.xxx.js. Diese Datei ist eine Service Worker-Datei und dient zum Empfang von Nachrichten. Das SDK lädt diese Datei standardmäßig aus dem Root-Verzeichnis. Der maximale Geltungsbereich eines Service Workers entspricht dessen Speicherort (liegt das Skript z. B. unter /js/sw.js, kann es standardmäßig nur URLs unter /js/ steuern). Verwenden Sie daher möglichst die Standardkonfiguration und platzieren Sie die Datei im Root-Verzeichnis der Website. Falls sie ausnahmsweise auf einem Drittanbieter-CDN liegt, muss auf Serverseite der Header Service-Worker-Allowed gesetzt werden, um den maximalen Geltungsbereich festzulegen.
              
              Das Paket enthält sw.xxx.js. Diese Datei ist eine Service Worker-Datei und dient zum Empfang von Nachrichten.
Das SDK lädt diese Datei standardmäßig aus dem Root-Verzeichnis.
Der maximale Geltungsbereich eines Service Workers entspricht dessen Speicherort (liegt das Skript z. B. unter /js/sw.js, kann es standardmäßig nur URLs unter /js/ steuern).
Verwenden Sie daher möglichst die Standardkonfiguration und platzieren Sie die Datei im Root-Verzeichnis der Website.
Falls sie ausnahmsweise auf einem Drittanbieter-CDN liegt, muss auf Serverseite der Header Service-Worker-Allowed gesetzt werden, um den maximalen Geltungsbereich festzulegen.

            
Diesen Codeblock im schwebenden Fenster anzeigen

SDK-Initialisierung für Web Push

Eindeutige Nutzerkennung (user_str) generieren

Es wird empfohlen, zur Generierung eines eindeutigen user_str Browser-Fingerprinting zu verwenden, um ungültige Nutzerregistrierungen zu verhindern:

// Ausgelassen: Code zur Erfassung von Canvas-, WebGL- und Plugin-Fingerprints (unverändert) const visitorId = getFingerprint(); console.log('user_str', visitorId);
              
              // Ausgelassen: Code zur Erfassung von Canvas-, WebGL- und Plugin-Fingerprints (unverändert)
const visitorId = getFingerprint();
console.log('user_str', visitorId);

            
Diesen Codeblock im schwebenden Fenster anzeigen

Beispielcode

// Register event listeners before initialization. // Callback when the Aurora channel disconnects. MTpushInterface.mtPush.onDisconnect(function () { console.log("onDisconnect"); }); // Receive push messages (Web Push and browser vendor channels). MTpushInterface.onMsgReceive((msgData) => { // msgData structure: { data: { xxx }, type: 0 }; type 0 is the Aurora channel, and type 1 is the system channel. console.log("Received push message:", msgData); }); function initWebPush() { const appkey = "your_appkey"; const userStr = visitorId; if (!(appkey && userStr)) { console.log("appkey and user_str cannot be empty"); return; } // Push initialization. MTpushInterface.init({ appkey: appkey, user_str: userStr, fail(data) { console.log("Online push setup failed", data); }, success(data) { console.log("Online push setup successful", data); }, webPushcallback(code, tip) { console.log("Status code and message", code, tip); }, canGetInfo(data) { // RegId is available here, and initialization config data can also be read from data. console.log("Initialization config", data); console.log("Obtained RegId", MTpushInterface.getRegistrationID()); }, custom: (requestPermission) => { // For custom prompt settings, call requestPermission during an appropriate user action to request notification permission. document.getElementById("subscribe")?.addEventListener("click", () => { if (Notification.permission === "default") { requestPermission(); } else if (Notification.permission === "denied") { console.log("Notification permission is denied and cannot be requested"); } else { console.log("Notification permission has already been granted"); } }); }, }); } initWebPush();
              
                // Register event listeners before initialization.
  // Callback when the Aurora channel disconnects.
  MTpushInterface.mtPush.onDisconnect(function () {
    console.log("onDisconnect");
  });

  // Receive push messages (Web Push and browser vendor channels).
  MTpushInterface.onMsgReceive((msgData) => {
    // msgData structure: { data: { xxx }, type: 0 }; type 0 is the Aurora channel, and type 1 is the system channel.
    console.log("Received push message:", msgData);
  });

  function initWebPush() {
    const appkey = "your_appkey";
    const userStr = visitorId;

    if (!(appkey && userStr)) {
      console.log("appkey and user_str cannot be empty");
      return;
    }

    // Push initialization.
    MTpushInterface.init({
      appkey: appkey,
      user_str: userStr,
      fail(data) {
        console.log("Online push setup failed", data);
      },
      success(data) {
        console.log("Online push setup successful", data);
      },
      webPushcallback(code, tip) {
        console.log("Status code and message", code, tip);
      },
      canGetInfo(data) {
        // RegId is available here, and initialization config data can also be read from data.
        console.log("Initialization config", data);
        console.log("Obtained RegId", MTpushInterface.getRegistrationID());
      },
      custom: (requestPermission) => {
        // For custom prompt settings, call requestPermission during an appropriate user action to request notification permission.
        document.getElementById("subscribe")?.addEventListener("click", () => {
          if (Notification.permission === "default") {
            requestPermission();
          } else if (Notification.permission === "denied") {
            console.log("Notification permission is denied and cannot be requested");
          } else {
            console.log("Notification permission has already been granted");
          }
        });
      },
    });
  }

  initWebPush();

            
Diesen Codeblock im schwebenden Fenster anzeigen

Weitere Web Push APIs

Informationen zur Nutzung weiterer APIs finden Sie in der Schnittstellen-Dokumentation: Web SDK API.

Test-Demo ausführen

Das Beispiel im Paket ist eine API-Demo. Sie können es direkt im Browser zum Testen ausführen.

Icon Solid Transparent White Qiyu
Vertrieb kontaktieren