1 00:00:02,280 --> 00:00:10,380 Um auch lokale Benachrichtigungen über Aiwass zu erhalten, müssen wir den Benutzer um Erlaubnis bitten. Dazu können wir ein 2 00:00:10,380 --> 00:00:14,610 anderes Paket verwenden, das wir alle mit XPO installieren. 3 00:00:14,940 --> 00:00:17,690 Und das ist das Expo-Berechtigungspaket. 4 00:00:17,960 --> 00:00:23,430 Das Expo-Berechtigungspaket hilft uns, wie der Name schon sagt, bei der Verwaltung von Berechtigungen. 5 00:00:23,550 --> 00:00:26,790 Es hilft uns, Berechtigungen anzufordern und mit Berechtigungen zu arbeiten. 6 00:00:27,660 --> 00:00:35,460 Sobald dies in App G installiert ist. S. oder in einer anderen Datei, in der Sie diese Berechtigungen erhalten möchten. 7 00:00:35,490 --> 00:00:37,740 Aber hier haben wir nur eine Komponente. 8 00:00:38,400 --> 00:00:43,920 Wir importieren einfach alles als Berechtigungen aus expl-Berechtigungen. 9 00:00:44,040 --> 00:00:44,760 Genau so. 10 00:00:45,600 --> 00:00:52,350 Und wenn dies importiert wird, müssen wir den Benutzer um Erlaubnis bitten, Benachrichtigungen anzuzeigen, bevor wir dies 11 00:00:52,350 --> 00:00:52,920 versuchen. 12 00:00:53,430 --> 00:00:55,890 Jetzt hängt es von Ihrer Anwendung ab. 13 00:00:56,010 --> 00:01:00,540 Wenn Sie den Benutzer fragen möchten, möchten Sie möglicherweise fragen, wann die App gestartet wird. 14 00:01:00,760 --> 00:01:03,210 Vielleicht ist ein besserer Zeitpunkt besser. 15 00:01:03,480 --> 00:01:08,760 Schließlich möchten Sie nach Berechtigungen fragen, wenn es sehr wahrscheinlich ist, dass der Benutzer Ihnen die Berechtigung erteilt. 16 00:01:08,880 --> 00:01:11,970 Im Moment macht Yeater es richtig, wenn die App gestartet wird. 17 00:01:12,150 --> 00:01:14,300 Also werde ich tatsächlich D importieren. 18 00:01:14,980 --> 00:01:17,730 Sie haben hier tatsächlich von der Reaktion genommen. 19 00:01:19,580 --> 00:01:28,040 Damit wir Logik ausführen können, wenn diese Komponente bereitgestellt wird, indem wir hier und da ein leeres Abhängigkeitsarray 20 00:01:28,510 --> 00:01:29,360 übergeben. 21 00:01:29,450 --> 00:01:35,990 Ich möchte jetzt dieses Berechtigungsobjekt verwenden, das wir dieses Jahr importieren, um zunächst den Berechtigungsstatus 22 00:01:35,990 --> 00:01:41,300 zu überprüfen und danach, wenn wir keine Berechtigung haben, danach zu fragen. 23 00:01:41,990 --> 00:01:47,840 Daher können wir hier get async aufrufen, um zunächst den aktuellen Berechtigungsstatus zu überprüfen. 24 00:01:48,380 --> 00:01:50,840 Wir müssen jetzt angeben, für welche Berechtigung. 25 00:01:50,840 --> 00:01:52,430 Wir wollen diese Informationen bekommen. 26 00:01:52,850 --> 00:01:59,330 Daher können wir auf Berechtigungen zugreifen, Benachrichtigungen starten, Peitschen und alle Obergrenzen festlegen, um 27 00:01:59,330 --> 00:02:05,030 zu überprüfen, wie der aktuelle Berechtigungsstatus für Benachrichtigungsberechtigungen unter Android lautet. 28 00:02:05,060 --> 00:02:06,560 Dies wird nichts auf Aiwass tun. 29 00:02:06,560 --> 00:02:10,310 Es wird herausgefunden, ob wir bereits Berechtigungen senden dürfen. 30 00:02:11,280 --> 00:02:14,400 Dies ist eine asynchrone Aufgabe und gibt uns daher ein Versprechen. 31 00:02:14,730 --> 00:02:18,030 Daher können wir dann hier verwenden, um fortzufahren. 32 00:02:18,840 --> 00:02:23,150 Jetzt hier bekommen wir den Status dieser Erlaubnis. 33 00:02:23,160 --> 00:02:28,410 Wir erhalten also Informationen darüber, ob wir die Berechtigung zum Senden von Benachrichtigungen haben oder nicht. 34 00:02:30,410 --> 00:02:32,600 Jetzt können wir überprüfen, welchen Status wir haben. 35 00:02:33,500 --> 00:02:40,430 Hier gibt es ein paar mögliche Werte, aber am Ende interessieren wir uns für den gewährten Status, wenn wir 36 00:02:40,430 --> 00:02:42,740 den Status eines Vaters erhalten haben. 37 00:02:43,130 --> 00:02:44,960 Wir müssen nicht weitermachen. 38 00:02:45,920 --> 00:02:52,910 Wenn wir diesen Status jedoch noch nicht gewähren müssen, möchten wir um Erlaubnis bitten, da uns diese Berechtigungen zuvor 39 00:02:52,910 --> 00:02:54,530 noch nicht erteilt wurden. 40 00:02:55,100 --> 00:02:58,010 Jetzt können wir das Berechtigungsobjekt wieder verwenden. 41 00:02:58,400 --> 00:03:04,040 Diesmal rufen wir ask async auf, bevor wir den Status überprüfen. 42 00:03:04,190 --> 00:03:09,890 Jetzt bitten wir um eine neue Erlaubnis, weil wir jetzt wissen, dass wir noch nicht die Erlaubnis haben, die wir 43 00:03:09,890 --> 00:03:10,250 brauchen. 44 00:03:11,120 --> 00:03:14,830 Jetzt greifen wir hier wieder auf Berechtigungen zu, Gedankenbenachrichtigungen. 45 00:03:15,170 --> 00:03:17,840 Und jetzt wird dies darum bitten, diese Erlaubnis zu erhalten. 46 00:03:18,590 --> 00:03:19,820 Dies wird ein Versprechen zurückgeben. 47 00:03:19,910 --> 00:03:24,740 Wir können es also insgesamt hierher zurückgeben, um in dieser Versprechen-Kette zu bleiben, die wir hier begonnen haben. 48 00:03:26,140 --> 00:03:30,460 Und deshalb können wir jetzt hier wieder verwenden, dann können Sie auch async await verwenden. 49 00:03:30,610 --> 00:03:33,950 Aber in der Tat sollten Sie Funktionsstörungen nicht asynchron machen. 50 00:03:34,270 --> 00:03:38,890 Stattdessen müssten Sie dies in eine neue Funktion einbinden, die Sie sofort nur als Randnotiz 51 00:03:38,890 --> 00:03:39,430 ausführen. 52 00:03:39,820 --> 00:03:41,080 Aber hier wird es gut alt verwenden. 53 00:03:41,170 --> 00:03:43,930 Dann fangen und erreichen die Funktion in diesem. 54 00:03:43,990 --> 00:03:47,680 Blockieren Sie dann, nachdem Aske Async beendet wurde. 55 00:03:48,520 --> 00:03:50,580 Jetzt wird hier wieder der Status angezeigt. 56 00:03:50,800 --> 00:03:55,840 Nur weil wir fragen, heißt das natürlich nicht, dass wir die Erlaubnis bekommen. 57 00:03:56,170 --> 00:04:00,370 Der Benutzer hat möglicherweise weiterhin eine Berechtigung verweigert, und in diesem Fall können wir nichts tun. 58 00:04:00,910 --> 00:04:05,590 Jetzt wollen wir diesen Status überprüfen und herausfinden, ob er noch nicht gewährt wird. 59 00:04:05,950 --> 00:04:10,120 Und wenn das der Fall ist, dann können wir, wie gesagt, nichts tun. 60 00:04:10,420 --> 00:04:11,890 Hier können wir also einfach zurückkehren. 61 00:04:12,070 --> 00:04:13,750 Möglicherweise wird dem Benutzer eine Nachricht angezeigt. 62 00:04:13,770 --> 00:04:19,570 Möglicherweise wird eine Warnung angezeigt, dass wir jetzt keine Benachrichtigungen senden können. 63 00:04:19,720 --> 00:04:21,910 Aber am Ende können wir hier nichts tun. 64 00:04:22,420 --> 00:04:25,570 Wenn der Status jedoch gewährt wird, sind wir gut. 65 00:04:26,530 --> 00:04:33,040 In beiden Fällen können wir definitiv eine Benachrichtigung planen, da im schlimmsten Fall keine Berechtigungen vorhanden 66 00:04:33,040 --> 00:04:35,530 sind und daher nichts passiert. 67 00:04:36,010 --> 00:04:40,720 Aber jetzt, wo wir fragen, ist das beste Szenario, dass wir die Erlaubnis erhalten haben. 68 00:04:40,900 --> 00:04:43,360 Und Dale für dieses Jahr wird erfolgreich sein. 69 00:04:45,100 --> 00:04:46,690 Nein, eigentlich muss ich hier einspringen. 70 00:04:46,840 --> 00:04:48,940 Dieser Code hat einen Fehler. 71 00:04:49,390 --> 00:04:52,000 Wir bekommen hier keine solche Statuszeichenfolge. 72 00:04:52,060 --> 00:04:59,170 Stattdessen erhalten wir das Statusobjekt, das dann eine Statuseigenschaft hat und das gleiche wie hier. 73 00:05:00,730 --> 00:05:06,550 Wir haben vorher einfach keinen Fehler erhalten, weil wir, obwohl unser Code technisch nicht funktioniert hat, immer noch um 74 00:05:06,640 --> 00:05:07,570 Erlaubnis gebeten haben. 75 00:05:07,930 --> 00:05:11,080 Aber jetzt wird richtig geprüft, ob wir die Erlaubnis haben. 76 00:05:11,500 --> 00:05:16,930 Außerdem müssen wir es hier an einer anderen Stelle anpassen. 77 00:05:17,140 --> 00:05:23,290 Wenn wir bereits die Erlaubnis hatten, werden wir hier natürlich hoffentlich als Antwort gewährt und werden 78 00:05:23,410 --> 00:05:24,850 nicht erneut fragen. 79 00:05:25,120 --> 00:05:31,690 Das bedeutet jedoch, dass wir im nächsten Block ein Problem haben, da wir dort jetzt erwarten, unseren Zustand als 80 00:05:31,720 --> 00:05:32,950 Objekt zu erhalten. 81 00:05:33,100 --> 00:05:38,800 Aber da wir nicht noch einmal gefragt haben, weil wir nicht mussten, werden wir dieses Objekt hier nicht bekommen. 82 00:05:39,100 --> 00:05:41,560 Der Zugriff auf den Status schlägt also fehl. 83 00:05:41,650 --> 00:05:45,280 Und wir werden denken, dass wir die Erlaubnis nicht bekommen haben, obwohl wir sie haben. 84 00:05:45,850 --> 00:05:51,850 Hier sollten wir also zuerst das Statusobjekt zurückgeben und dann blockieren. 85 00:05:52,000 --> 00:05:57,430 Damit im nächsten Block dann ein Weg für die Fälle haftet, in denen wir bereits die Erlaubnis hatten. 86 00:05:57,970 --> 00:06:04,780 Dies ist eine Änderung, die Sie implementieren sollten, um sicherzustellen, dass Ihre Anwendung ihren Benachrichtigungs- und Berechtigungsstatus ordnungsgemäß 87 00:06:04,780 --> 00:06:10,510 erkennt und nicht glaubt, dass sie keine Berechtigungen hat, wenn sie tatsächlich über diese verfügt. 88 00:06:10,930 --> 00:06:12,190 Also lasst uns jetzt Sicherheit haben. 89 00:06:16,810 --> 00:06:20,890 Und stellen Sie sicher, dass Sie dies auf Ihrem iPhone-Simulator neu starten. 90 00:06:21,190 --> 00:06:26,050 Und gleich zu Beginn werde ich gefragt, ob ich diese Berechtigung aufgrund des gerade hinzugefügten Codes 91 00:06:26,080 --> 00:06:26,850 erteilen möchte. 92 00:06:27,520 --> 00:06:34,240 Und wenn wir jetzt hier auf Zulassen klicken und eine Benachrichtigung auslösen und die Anwendung schließen, wollen wir sehen, ob 93 00:06:34,240 --> 00:06:36,460 das jetzt hier auf Aiwass funktioniert. 94 00:06:36,850 --> 00:06:39,760 Warten wir, bis die 10 Sekunden vergangen sind. 95 00:06:40,570 --> 00:06:45,190 Und hier ist unsere erste lokale Benachrichtigung, die von unserer App gesendet wird. 96 00:06:45,760 --> 00:06:48,920 Und jetzt funktioniert das sowohl auf ISIS als auch auf Android. 97 00:06:49,420 --> 00:06:52,870 Und genau wie bei Android, wenn wir hier auf eine Benachrichtigung klicken. 98 00:06:54,340 --> 00:06:57,460 Wir können unsere App öffnen, das funktioniert also. 99 00:06:57,760 --> 00:07:05,110 Eine Sache, die nicht funktioniert hat oder bei der nichts passiert ist, war, wenn die App im Vordergrund steht. 100 00:07:05,620 --> 00:07:08,200 In einigen Fällen ist dies das gewünschte Verhalten. 101 00:07:08,440 --> 00:07:13,950 In einigen Fällen, wenn die App geöffnet ist, kann es absolut in Ordnung sein, die Benachrichtigung nicht anzuzeigen. 102 00:07:14,530 --> 00:07:20,920 Wenn ich jedoch zum Beispiel der Erinnerungs-App zurückkehre, bedeutet dies möglicherweise nicht, dass Sie den Benutzer nicht wissen 103 00:07:20,920 --> 00:07:25,650 lassen möchten, dass eine Aufgabe fällig ist, nur weil sie im Vordergrund steht. 104 00:07:26,110 --> 00:07:32,620 Lassen Sie mich Ihnen daher als Nächstes zeigen, wie Sie mit Benachrichtigungen umgehen können, wenn die App im Vordergrund steht.