Um auch lokale Benachrichtigungen über Aiwass zu erhalten, müssen wir den Benutzer um Erlaubnis bitten. Dazu können wir ein
anderes Paket verwenden, das wir alle mit XPO installieren.
Und das ist das Expo-Berechtigungspaket.
Das Expo-Berechtigungspaket hilft uns, wie der Name schon sagt, bei der Verwaltung von Berechtigungen.
Es hilft uns, Berechtigungen anzufordern und mit Berechtigungen zu arbeiten.
Sobald dies in App G installiert ist. S. oder in einer anderen Datei, in der Sie diese Berechtigungen erhalten möchten.
Aber hier haben wir nur eine Komponente.
Wir importieren einfach alles als Berechtigungen aus expl-Berechtigungen.
Genau so.
Und wenn dies importiert wird, müssen wir den Benutzer um Erlaubnis bitten, Benachrichtigungen anzuzeigen, bevor wir dies
versuchen.
Jetzt hängt es von Ihrer Anwendung ab.
Wenn Sie den Benutzer fragen möchten, möchten Sie möglicherweise fragen, wann die App gestartet wird.
Vielleicht ist ein besserer Zeitpunkt besser.
Schließlich möchten Sie nach Berechtigungen fragen, wenn es sehr wahrscheinlich ist, dass der Benutzer Ihnen die Berechtigung erteilt.
Im Moment macht Yeater es richtig, wenn die App gestartet wird.
Also werde ich tatsächlich D importieren.
Sie haben hier tatsächlich von der Reaktion genommen.
Damit wir Logik ausführen können, wenn diese Komponente bereitgestellt wird, indem wir hier und da ein leeres Abhängigkeitsarray
übergeben.
Ich möchte jetzt dieses Berechtigungsobjekt verwenden, das wir dieses Jahr importieren, um zunächst den Berechtigungsstatus
zu überprüfen und danach, wenn wir keine Berechtigung haben, danach zu fragen.
Daher können wir hier get async aufrufen, um zunächst den aktuellen Berechtigungsstatus zu überprüfen.
Wir müssen jetzt angeben, für welche Berechtigung.
Wir wollen diese Informationen bekommen.
Daher können wir auf Berechtigungen zugreifen, Benachrichtigungen starten, Peitschen und alle Obergrenzen festlegen, um
zu überprüfen, wie der aktuelle Berechtigungsstatus für Benachrichtigungsberechtigungen unter Android lautet.
Dies wird nichts auf Aiwass tun.
Es wird herausgefunden, ob wir bereits Berechtigungen senden dürfen.
Dies ist eine asynchrone Aufgabe und gibt uns daher ein Versprechen.
Daher können wir dann hier verwenden, um fortzufahren.
Jetzt hier bekommen wir den Status dieser Erlaubnis.
Wir erhalten also Informationen darüber, ob wir die Berechtigung zum Senden von Benachrichtigungen haben oder nicht.
Jetzt können wir überprüfen, welchen Status wir haben.
Hier gibt es ein paar mögliche Werte, aber am Ende interessieren wir uns für den gewährten Status, wenn wir
den Status eines Vaters erhalten haben.
Wir müssen nicht weitermachen.
Wenn wir diesen Status jedoch noch nicht gewähren müssen, möchten wir um Erlaubnis bitten, da uns diese Berechtigungen zuvor
noch nicht erteilt wurden.
Jetzt können wir das Berechtigungsobjekt wieder verwenden.
Diesmal rufen wir ask async auf, bevor wir den Status überprüfen.
Jetzt bitten wir um eine neue Erlaubnis, weil wir jetzt wissen, dass wir noch nicht die Erlaubnis haben, die wir
brauchen.
Jetzt greifen wir hier wieder auf Berechtigungen zu, Gedankenbenachrichtigungen.
Und jetzt wird dies darum bitten, diese Erlaubnis zu erhalten.
Dies wird ein Versprechen zurückgeben.
Wir können es also insgesamt hierher zurückgeben, um in dieser Versprechen-Kette zu bleiben, die wir hier begonnen haben.
Und deshalb können wir jetzt hier wieder verwenden, dann können Sie auch async await verwenden.
Aber in der Tat sollten Sie Funktionsstörungen nicht asynchron machen.
Stattdessen müssten Sie dies in eine neue Funktion einbinden, die Sie sofort nur als Randnotiz
ausführen.
Aber hier wird es gut alt verwenden.
Dann fangen und erreichen die Funktion in diesem.
Blockieren Sie dann, nachdem Aske Async beendet wurde.
Jetzt wird hier wieder der Status angezeigt.
Nur weil wir fragen, heißt das natürlich nicht, dass wir die Erlaubnis bekommen.
Der Benutzer hat möglicherweise weiterhin eine Berechtigung verweigert, und in diesem Fall können wir nichts tun.
Jetzt wollen wir diesen Status überprüfen und herausfinden, ob er noch nicht gewährt wird.
Und wenn das der Fall ist, dann können wir, wie gesagt, nichts tun.
Hier können wir also einfach zurückkehren.
Möglicherweise wird dem Benutzer eine Nachricht angezeigt.
Möglicherweise wird eine Warnung angezeigt, dass wir jetzt keine Benachrichtigungen senden können.
Aber am Ende können wir hier nichts tun.
Wenn der Status jedoch gewährt wird, sind wir gut.
In beiden Fällen können wir definitiv eine Benachrichtigung planen, da im schlimmsten Fall keine Berechtigungen vorhanden
sind und daher nichts passiert.
Aber jetzt, wo wir fragen, ist das beste Szenario, dass wir die Erlaubnis erhalten haben.
Und Dale für dieses Jahr wird erfolgreich sein.
Nein, eigentlich muss ich hier einspringen.
Dieser Code hat einen Fehler.
Wir bekommen hier keine solche Statuszeichenfolge.
Stattdessen erhalten wir das Statusobjekt, das dann eine Statuseigenschaft hat und das gleiche wie hier.
Wir haben vorher einfach keinen Fehler erhalten, weil wir, obwohl unser Code technisch nicht funktioniert hat, immer noch um
Erlaubnis gebeten haben.
Aber jetzt wird richtig geprüft, ob wir die Erlaubnis haben.
Außerdem müssen wir es hier an einer anderen Stelle anpassen.
Wenn wir bereits die Erlaubnis hatten, werden wir hier natürlich hoffentlich als Antwort gewährt und werden
nicht erneut fragen.
Das bedeutet jedoch, dass wir im nächsten Block ein Problem haben, da wir dort jetzt erwarten, unseren Zustand als
Objekt zu erhalten.
Aber da wir nicht noch einmal gefragt haben, weil wir nicht mussten, werden wir dieses Objekt hier nicht bekommen.
Der Zugriff auf den Status schlägt also fehl.
Und wir werden denken, dass wir die Erlaubnis nicht bekommen haben, obwohl wir sie haben.
Hier sollten wir also zuerst das Statusobjekt zurückgeben und dann blockieren.
Damit im nächsten Block dann ein Weg für die Fälle haftet, in denen wir bereits die Erlaubnis hatten.
Dies ist eine Änderung, die Sie implementieren sollten, um sicherzustellen, dass Ihre Anwendung ihren Benachrichtigungs- und Berechtigungsstatus ordnungsgemäß
erkennt und nicht glaubt, dass sie keine Berechtigungen hat, wenn sie tatsächlich über diese verfügt.
Also lasst uns jetzt Sicherheit haben.
Und stellen Sie sicher, dass Sie dies auf Ihrem iPhone-Simulator neu starten.
Und gleich zu Beginn werde ich gefragt, ob ich diese Berechtigung aufgrund des gerade hinzugefügten Codes
erteilen möchte.
Und wenn wir jetzt hier auf Zulassen klicken und eine Benachrichtigung auslösen und die Anwendung schließen, wollen wir sehen, ob
das jetzt hier auf Aiwass funktioniert.
Warten wir, bis die 10 Sekunden vergangen sind.
Und hier ist unsere erste lokale Benachrichtigung, die von unserer App gesendet wird.
Und jetzt funktioniert das sowohl auf ISIS als auch auf Android.
Und genau wie bei Android, wenn wir hier auf eine Benachrichtigung klicken.
Wir können unsere App öffnen, das funktioniert also.
Eine Sache, die nicht funktioniert hat oder bei der nichts passiert ist, war, wenn die App im Vordergrund steht.
In einigen Fällen ist dies das gewünschte Verhalten.
In einigen Fällen, wenn die App geöffnet ist, kann es absolut in Ordnung sein, die Benachrichtigung nicht anzuzeigen.
Wenn ich jedoch zum Beispiel der Erinnerungs-App zurückkehre, bedeutet dies möglicherweise nicht, dass Sie den Benutzer nicht wissen
lassen möchten, dass eine Aufgabe fällig ist, nur weil sie im Vordergrund steht.
Lassen Sie mich Ihnen daher als Nächstes zeigen, wie Sie mit Benachrichtigungen umgehen können, wenn die App im Vordergrund steht.