Aby więc również otrzymywać lokalne powiadomienia o Aiwass, musimy poprosić użytkownika o zgodę, a do tego możemy użyć
innego pakietu, który wszyscy instalujemy z instalacją XPO.
I to jest pakiet uprawnień Expo.
Pakiet uprawnień Expo, jak sama nazwa wskazuje, pomaga nam zarządzać uprawnieniami.
Pomaga nam żądać uprawnień i pracować z uprawnieniami.
Po zainstalowaniu w aplikacji G. S. lub w dowolnym innym pliku, w którym chcesz uzyskać te uprawnienia.
Ale tutaj mamy tylko jeden element.
Po prostu importujemy wszystko jako uprawnienia z uprawnień expl.
Właśnie tak.
Po zaimportowaniu musimy poprosić użytkownika o zgodę na wyświetlanie powiadomień, zanim spróbujemy to
zrobić.
Teraz zależy to od twojej aplikacji.
Gdy chcesz zapytać użytkownika, być może chcesz zapytać, kiedy aplikacja się uruchomi.
Może lepszy moment jest lepszy.
W końcu chcesz poprosić o uprawnienia, gdy jest bardzo prawdopodobne, że użytkownik udzieli Ci pozwolenia.
W tej chwili Yeater zrobi to zaraz po uruchomieniu aplikacji.
Więc faktycznie zaimportuję D.
Faktycznie zabrałeś tutaj reakcję.
Abyśmy mogli uruchomić logikę podczas montowania tego komponentu, po prostu przekazując pustą tablicę zależności tu i
tam.
Chcę teraz użyć tego obiektu uprawnień, który importujemy w tym roku, aby przede wszystkim sprawdzić
status uprawnień, a następnie, jeśli nie mamy pozwolenia, aby o nie poprosić.
Dlatego tutaj możemy wywołać get async, aby przede wszystkim sprawdzić bieżący status uprawnień.
Teraz musimy określić, dla którego pozwolenia.
Chcemy uzyskać te informacje.
Możemy więc uzyskiwać dostęp do uprawnień, uruchamiać powiadomienia, bicze, wszystkie wielkie litery, aby
sprawdzić, jaki jest obecny stan uprawnień do powiadomień w systemie Android.
To nie zrobi nic na Aiwass.
Dowie się, czy możemy już wysyłać uprawnienia.
To zadanie asynchroniczne, dlatego daje nam obietnicę.
Dlatego możemy użyć tutaj, aby kontynuować.
Teraz tutaj otrzymamy status tego pozwolenia.
Otrzymamy więc informację, czy mamy pozwolenie na wysyłanie powiadomień, czy nie.
Teraz możemy sprawdzić, jaki mamy status.
Istnieje kilka możliwych wartości, ale ostatecznie jesteśmy zainteresowani statusem przyznania, jeśli
otrzymamy status ojca.
Nie musimy kontynuować.
Ale jeśli nie musimy jeszcze przyznawać tego statusu, chcemy poprosić o pozwolenie, ponieważ wcześniej nie
otrzymaliśmy tych uprawnień.
Teraz możemy ponownie użyć obiektu uprawnień.
Ale tym razem nazywamy ask async, zanim sprawdzimy status.
Teraz prosimy o nowe pozwolenie, ponieważ teraz wiemy, że nie mamy jeszcze pozwolenia, którego potrzebujemy.
Więc teraz tutaj ponownie uzyskujemy dostęp do uprawnień, przemyślane powiadomienia.
A teraz poprosi o uzyskanie tego pozwolenia.
To zwróci obietnicę.
Możemy więc ogólnie zwrócić go tutaj, aby pozostać w tym łańcuchu obietnic, który tutaj zaczęliśmy.
A zatem, teraz tutaj możemy ponownie użyć, możesz również użyć asynchronicznego czekania.
Ale w rzeczywistości nie powinieneś asynchronizować dysfunkcji.
Zamiast tego musisz zawinąć to w nową funkcję, którą natychmiast wykonasz jako notatkę
dodatkową.
Ale tutaj wykorzysta stare dobre.
Następnie złap i dojdzie do funkcji w tym.
Następnie zablokuj po zakończeniu Aske Async.
Teraz znowu otrzyma status.
Ponieważ oczywiście to, że pytamy, nie oznacza, że otrzymujemy pozwolenie.
Tak więc użytkownik może nadal odmówić zgody, aw tym przypadku nic nie możemy zrobić.
Więc teraz chcemy sprawdzić ten status i dowiedzieć się, czy nadal nie jest przyznany.
A jeśli tak jest, to, jak już powiedziałem, nic nie możemy zrobić.
Więc tutaj możemy po prostu wrócić.
Możemy wyświetlić wiadomość użytkownikowi.
Możemy wyświetlić ostrzeżenie, że nie możemy teraz wysyłać żadnych powiadomień.
Ale w końcu nic nie możemy tutaj zrobić.
Jeśli jednak status zostanie przyznany, jesteśmy w porządku.
Tak czy inaczej, możemy zdecydowanie zaplanować powiadomienie, ponieważ najgorszym scenariuszem jest brak uprawnień i
dlatego nic się nie dzieje.
Ale teraz, gdy pytamy, najlepszym scenariuszem jest uzyskanie pozwolenia.
I Dale na ten rok odniesie sukces.
Nie, właściwie muszę tu wkroczyć.
Ten kod zawiera błąd.
Nie otrzymujemy tutaj takiego statusu.
Zamiast tego otrzymujemy obiekt status, który następnie ma właściwość status i jest taki sam jak tutaj.
Po prostu nie otrzymaliśmy wcześniej błędu, ponieważ mimo że nasz kod technicznie nie działał, nadal prosiliśmy
o pozwolenie.
Ale teraz to właściwie sprawdza, czy mamy pozwolenie.
Ponadto musimy również dostosować go w innym miejscu tutaj.
Jeśli mamy już pozwolenie, oczywiście otrzymamy odpowiedź, mam nadzieję, i nie będziemy
pytać ponownie.
Oznacza to, że w następnym bloku mamy problem, ponieważ oczekujemy teraz, że uzyskamy nasz stan
jako obiekt.
Ale ponieważ nie pytaliśmy ponownie, ponieważ nie musieliśmy dostawać tego obiektu tutaj.
Dostęp do statusu zakończy się niepowodzeniem.
I pomyślimy, że nie dostaliśmy pozwolenia, mimo że je mamy.
Więc tutaj powinniśmy najpierw zwrócić obiekt statusu, a następnie zablokować.
Tak więc w następnym bloku jest to sposób odpowiedzialny za przypadki, w których mieliśmy już pozwolenie.
Jest to zmiana, którą powinieneś wdrożyć, aby upewnić się, że aplikacja poprawnie wykrywa jej powiadomienia i
status uprawnień i nie sądzi, że nie ma uprawnień, kiedy je faktycznie ma.
A teraz bezpieczeństwo.
I pamiętaj, aby ponownie uruchomić to na symulatorze iPhone'a.
A teraz na samym początku jestem pytany, czy chcę udzielić tego pozwolenia z powodu właśnie
dodanego kodu.
A jeśli teraz klikniemy tutaj zezwolenie i uruchomimy powiadomienie i zamkniemy aplikację, zobaczmy, czy teraz działa
to tutaj na Aiwass.
Poczekajmy 10 sekund.
A oto nasze pierwsze lokalne powiadomienie wysłane przez naszą aplikację.
A teraz mamy to działa zarówno na ISIS i Android.
I tak jak w Androidzie, jeśli klikniemy tutaj powiadomienie.
Możemy otworzyć naszą aplikację, więc to działa.
Teraz jedna rzecz, która nie działała lub w której nic się nie wydarzyło, była na pierwszym planie aplikacji.
W niektórych przypadkach takie zachowanie jest pożądane.
W niektórych przypadkach, jeśli aplikacja jest otwarta, brak wyświetlania powiadomienia może być absolutnie w porządku.
Ale jeśli wrócę do przykładu aplikacji przypominającej, to, że jest na pierwszym planie, może nie oznaczać,
że nie chcesz, aby użytkownik wiedział, że jakieś zadanie jest należne.
Dlatego pozwól, że pokażę Ci, jak możesz obsługiwać powiadomienia, jeśli aplikacja jest na pierwszym planie.