Wie man das nativescript-ssi-local-notifications Plugin installiert und verwendet (2023)

Das nativescript-ssi-local-notifications Plugin ermöglicht es Ihrer App, Benachrichtigungen anzuzeigen, wenn die App nicht ausgeführt wird. Es ist ähnlich wie bei Remote-Push-Benachrichtigungen, aber viel einfacher einzurichten. Hier ist eine Schritt-für-Schritt-Anleitung, wie Sie das Plugin installieren und verwenden können:

Installation

  1. Öffnen Sie die Befehlszeile und navigieren Sie zum Stammordner Ihrer App.
  2. Führen Sie den folgenden Befehl aus, um das Plugin hinzuzufügen: tns plugin add nativescript-ssi-local-notifications.

TypeScript-Unterstützung

Um TypeScript-Unterstützung für Ihre NativeScript-App hinzuzufügen, führen Sie den folgenden Befehl aus: tns install typescript.

Verwendung des Plugins

Nachdem Sie das Plugin installiert haben, können Sie es in Ihrer .ts-Datei wie folgt importieren:

import * as LocalNotifications from "nativescript-ssi-local-notifications";

Sie können das Plugin dann wie folgt verwenden:

LocalNotifications.hasPermission()
  .then(function(hasPermission) {
    // Überprüfen Sie, ob die Berechtigung für Benachrichtigungen vorhanden ist
    if (!hasPermission) {
      // Fordern Sie die Berechtigung an
      LocalNotifications.requestPermission().then(function(granted) {
        if (granted) {
          // Berechtigung erteilt, Benachrichtigungen können gesendet werden
        } else {
          // Berechtigung verweigert
        }
      });
    } else {
      // Berechtigung bereits erteilt, Benachrichtigungen können gesendet werden
    }
  })
  .catch(function(error) {
    // Fehler beim Überprüfen der Berechtigung
  });

Beispielanwendung (XML)

Wenn Sie einen schnellen Einstieg wünschen, können Sie unsere Demo-App klonen.

Beispielanwendung (Angular)

Dieses Plugin ist Teil der Plugin-Showcase-App, die ich mit Angular erstellt habe.

Planen von Benachrichtigungen

Um eine Benachrichtigung zu planen, müssen Sie die schedule-Funktion des Plugins aufrufen. Hier ist ein Beispiel:

LocalNotifications.schedule([
  {
    id: 1,
    title: 'Der Titel',
    body: 'Wiederholt sich alle Minute, bis abgebrochen',
    ticker: 'Der Ticker',
    badge: 1,
    groupedMessages: [
      'Die erste',
      'Zweite',
      'Mach weiter',
      'Noch eine..',
      'OK, stopp'
    ],
    groupSummary: 'Zusammenfassung der gruppierten Nachrichten oben',
    ongoing: true,
    smallIcon: 'res://heart',
    interval: 'minute',
    sound: require('application').ios
      ? 'customsound-ios.wav'
      : 'customsound-android',
    at: new Date(new Date().getTime() + 10 * 1000) // 10 Sekunden ab jetzt
  }
])
  .then(function() {
    console.log('Benachrichtigung geplant');
  })
  .catch(function(error) {
    console.log('Fehler bei der Planung: ' + error);
  });

Benachrichtigungssymbole

Hintergrundinformationen: Lokale Benachrichtigungen können still scheitern, wenn Sie die Benachrichtigungssymbole nicht in den richtigen Abmessungen bereitstellen. Sie können auf einem Gerät einwandfrei funktionieren, auf einem anderen jedoch fehlschlagen. Das liegt daran, dass Android möglicherweise auf Ihr xxxhdpi-Launcher-Symbol zurückgreift, das zu groß ist. Dieser Fehler ist im Logcat erkennbar: !!! FAILED BINDER TRANSACTION !!! (Paketgröße = 1435376).

Spezifikation für ic_stat_notify.png (smallIcon):

  • mdpi: 48 x 48 px
  • hdpi: 72 x 72 px
  • xhdpi: 96 x 96 px
  • xxhdpi: 144 x 144 px
  • xxxhdpi: 192 x 192 px

Spezifikation für ic_notify.png (largeIcon):

  • mdpi: 64 x 64 px
  • hdpi: 96 x 96 px
  • xhdpi: 128 x 128 px
  • xxhdpi: 192 x 192 px
  • xxxhdpi: 256 x 256 px

Hinzufügen eines Callbacks für empfangene Benachrichtigungen

Wenn Sie wissen möchten, auf welche Benachrichtigung der Benutzer geklickt hat, können Sie die addOnMessageReceivedCallback-Funktion verwenden. Hier ist ein Beispiel:

LocalNotifications.addOnMessageReceivedCallback(function(notification) {
  console.log('ID: ' + notification.id);
  console.log('Titel: ' + notification.title);
  console.log('Text: ' + notification.body);
})
  .then(function() {
    console.log('Listener hinzugefügt');
  })
  .catch(function(error) {
    console.log('Fehler beim Hinzufügen des Listeners: ' + error);
  });

Abrufen der geplanten IDs

Wenn Sie die IDs aller geplanten Benachrichtigungen abrufen möchten, können Sie die getScheduledIds-Funktion verwenden. Hier ist ein Beispiel:

LocalNotifications.getScheduledIds()
  .then(function(ids) {
    console.log('IDs: ' + ids);
  })
  .catch(function(error) {
    console.log('Fehler beim Abrufen der IDs: ' + error);
  });

Abbrechen einer Benachrichtigung

Wenn Sie eine zuvor geplante Benachrichtigung abbrechen möchten (und die ID kennen), können Sie sie mit der cancel-Funktion abbrechen. Hier ist ein Beispiel:

LocalNotifications.cancel(5 /* die ID */)
  .then(function(foundAndCanceled) {
    if (foundAndCanceled) {
      console.log('OK, sie ist weg!');
    } else {
      console.log('Keine ID 5 wurde geplant');
    }
  })
  .catch(function(error) {
    console.log('Fehler beim Abbrechen: ' + error);
  });

Alle Benachrichtigungen abbrechen

Wenn Sie alle zuvor geplanten Benachrichtigungen abbrechen möchten, können Sie die cancelAll-Funktion verwenden. Hier ist ein Beispiel:

LocalNotifications.cancelAll();

Berechtigung anfordern

Auf Android benötigen Sie keine Berechtigung, aber auf iOS schon. Android gibt einfach true zurück. Wenn die requestPermission- oder schedule-Funktion zuvor ausgeführt wurde, wurde der Benutzer bereits aufgefordert, die Berechtigung zu erteilen. Wenn der Benutzer die Berechtigung erteilt hat, gibt diese Funktion true zurück. Wenn der Benutzer die Berechtigung verweigert hat, gibt diese Funktion false zurück. In diesem Fall muss der Benutzer zur iOS-Einstellungs-App gehen und die Berechtigungen für Ihre App manuell aktivieren. Hier ist ein Beispiel:

LocalNotifications.requestPermission()
  .then(function(granted) {
    console.log('Berechtigung erteilt? ' + granted);
  })
  .catch(function(error) {
    console.log('Fehler beim Anfordern der Berechtigung: ' + error);
  });

Berechtigung überprüfen

Auf Android benötigen Sie keine Berechtigung, aber auf iOS schon. Android gibt einfach true zurück. Wenn die requestPermission- oder schedule-Funktion zuvor ausgeführt wurde, können Sie überprüfen, ob der Benutzer die Berechtigung erteilt hat. Hier ist ein Beispiel:

LocalNotifications.hasPermission()
  .then(function(granted) {
    console.log('Berechtigung erteilt? ' + granted);
  })
  .catch(function(error) {
    console.log('Fehler beim Überprüfen der Berechtigung: ' + error);
  });

Zukünftige Arbeiten

Lassen Sie uns wissen, was Sie benötigen, indem Sie ein Github-Issue öffnen. Wir denken darüber nach, Unterstützung für Dinge wie interaktive Benachrichtigungen auf iOS hinzuzufügen.

References

Top Articles
Latest Posts
Article information

Author: Pres. Carey Rath

Last Updated: 28/10/2023

Views: 5492

Rating: 4 / 5 (61 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Pres. Carey Rath

Birthday: 1997-03-06

Address: 14955 Ledner Trail, East Rodrickfort, NE 85127-8369

Phone: +18682428114917

Job: National Technology Representative

Hobby: Sand art, Drama, Web surfing, Cycling, Brazilian jiu-jitsu, Leather crafting, Creative writing

Introduction: My name is Pres. Carey Rath, I am a faithful, funny, vast, joyous, lively, brave, glamorous person who loves writing and wants to share my knowledge and understanding with you.