1 00:00:02,280 --> 00:00:10,380 Donc, afin d'obtenir également des notifications locales sur Aiwass, nous devons demander la permission à l'utilisateur et pour cela, nous pouvons utiliser 2 00:00:10,380 --> 00:00:14,610 un autre package que nous installons tous avec l'installation de XPO. 3 00:00:14,940 --> 00:00:17,690 Et c'est le package d'autorisations Expo. 4 00:00:17,960 --> 00:00:23,430 Le package d'autorisations Expo, comme son nom l'indique, nous aide à gérer les autorisations. 5 00:00:23,550 --> 00:00:26,790 Il nous aide à demander des autorisations et à travailler avec des autorisations. 6 00:00:27,660 --> 00:00:35,460 Donc, une fois que cela est installé dans l'application G. S. ou dans tout autre fichier où vous souhaitez obtenir ces autorisations. 7 00:00:35,490 --> 00:00:37,740 Mais ici, nous n'avons qu'un seul composant. 8 00:00:38,400 --> 00:00:43,920 Nous importons simplement tout sous forme d'autorisations à partir des autorisations expl. 9 00:00:44,040 --> 00:00:44,760 Juste comme ça. 10 00:00:45,600 --> 00:00:52,350 Et avec cette importation, nous devons demander à l'utilisateur la permission d'afficher des notifications avant d'essayer de le 11 00:00:52,350 --> 00:00:52,920 faire. 12 00:00:53,430 --> 00:00:55,890 Maintenant, cela dépend de votre application. 13 00:00:56,010 --> 00:01:00,540 Lorsque vous voulez demander à l'utilisateur, vous pouvez peut-être demander quand l'application démarre. 14 00:01:00,760 --> 00:01:03,210 Peut-être qu'un meilleur moment est meilleur. 15 00:01:03,480 --> 00:01:08,760 Après tout, vous souhaitez demander des autorisations lorsqu'il est très probable que l'utilisateur vous donne l'autorisation. 16 00:01:08,880 --> 00:01:11,970 À l'heure actuelle, Yeater le fera dès le démarrage de l'application. 17 00:01:12,150 --> 00:01:14,300 Je vais donc importer D. 18 00:01:14,980 --> 00:01:17,730 En fait, vous avez pris ici de réagir. 19 00:01:19,580 --> 00:01:28,040 Afin que nous puissions exécuter la logique lorsque ce composant monte simplement en passant un tableau de dépendances vide ici 20 00:01:28,510 --> 00:01:29,360 et là. 21 00:01:29,450 --> 00:01:35,990 Je veux maintenant utiliser cet objet d'autorisation, que nous importons cette année pour, tout d'abord, vérifier l'état 22 00:01:35,990 --> 00:01:41,300 des autorisations et ensuite si nous n'avons pas l'autorisation de le demander. 23 00:01:41,990 --> 00:01:47,840 Donc, ici, nous pouvons appeler get async pour, tout d'abord, vérifier l'état actuel des autorisations. 24 00:01:48,380 --> 00:01:50,840 Nous devons maintenant spécifier pour quelle autorisation. 25 00:01:50,840 --> 00:01:52,430 Nous voulons obtenir cette information. 26 00:01:52,850 --> 00:01:59,330 Et nous pouvons donc accéder aux autorisations, démarrer les notifications, les fouets, toutes les majuscules, cependant, pour 27 00:01:59,330 --> 00:02:05,030 vérifier comment l'état actuel des autorisations est pour les autorisations de notification sur Android. 28 00:02:05,060 --> 00:02:06,560 Cela ne fera rien sur Aiwass. 29 00:02:06,560 --> 00:02:10,310 Il découvrira si nous sommes déjà autorisés à envoyer des autorisations. 30 00:02:11,280 --> 00:02:14,400 Maintenant, c'est une tâche asynchrone et donc cela nous donne une promesse. 31 00:02:14,730 --> 00:02:18,030 Par conséquent, nous pouvons utiliser ensuite ici pour continuer. 32 00:02:18,840 --> 00:02:23,150 Maintenant ici, nous obtiendrons le statut de cette autorisation. 33 00:02:23,160 --> 00:02:28,410 Nous obtiendrons donc des informations, que nous ayons ou non la permission d'envoyer des notifications. 34 00:02:30,410 --> 00:02:32,600 Nous pouvons maintenant vérifier quel statut nous avons obtenu. 35 00:02:33,500 --> 00:02:40,430 Il y a quelques valeurs possibles ici, mais à la fin nous nous intéressons au statut accordé si nous 36 00:02:40,430 --> 00:02:42,740 obtenons le statut accordé à papa. 37 00:02:43,130 --> 00:02:44,960 Nous n'avons pas besoin de continuer. 38 00:02:45,920 --> 00:02:52,910 Mais si nous ne devons pas encore accorder ce statut, nous voulons demander la permission parce que nous n'avons jamais 39 00:02:52,910 --> 00:02:54,530 reçu ces autorisations auparavant. 40 00:02:55,100 --> 00:02:58,010 Alors maintenant, nous pouvons utiliser à nouveau l'objet autorisations. 41 00:02:58,400 --> 00:03:04,040 Mais cette fois, nous appelons ask async avant de vérifier l'état. 42 00:03:04,190 --> 00:03:09,890 Maintenant, nous demandons une nouvelle autorisation, car maintenant nous savons que nous n'avons pas encore l'autorisation dont nous avons 43 00:03:09,890 --> 00:03:10,250 besoin. 44 00:03:11,120 --> 00:03:14,830 Alors maintenant, nous avons à nouveau accès aux autorisations, aux notifications de pensée. 45 00:03:15,170 --> 00:03:17,840 Et maintenant, cela demandera d'obtenir cette autorisation. 46 00:03:18,590 --> 00:03:19,820 Cela retournera une promesse. 47 00:03:19,910 --> 00:03:24,740 Nous pouvons donc globalement le retourner ici pour rester dans cette chaîne de promesses, que nous avons commencée ici. 48 00:03:26,140 --> 00:03:30,460 Et par conséquent, maintenant ici, nous pouvons à nouveau utiliser alors vous pouvez également utiliser l'attente asynchrone. 49 00:03:30,610 --> 00:03:33,950 Mais en fait, vous ne devriez pas faire de dysfonctionnement asynchrone. 50 00:03:34,270 --> 00:03:38,890 Au lieu de cela, vous devrez envelopper cela dans une nouvelle fonction, que vous exécutez immédiatement comme une 51 00:03:38,890 --> 00:03:39,430 note annexe. 52 00:03:39,820 --> 00:03:41,080 Mais ici, il utilisera du bon vieux. 53 00:03:41,170 --> 00:03:43,930 Ensuite, attrapez et atteindrez la fonction dans ce domaine. 54 00:03:43,990 --> 00:03:47,680 Puis bloquez une fois Aske Async terminé. 55 00:03:48,520 --> 00:03:50,580 Maintenant, ici encore, obtiendra le statut. 56 00:03:50,800 --> 00:03:55,840 Parce que bien sûr, ce n'est pas parce que nous demandons que nous obtenons la permission. 57 00:03:56,170 --> 00:04:00,370 L'utilisateur peut donc toujours refuser une autorisation et dans ce cas, nous ne pouvons rien faire. 58 00:04:00,910 --> 00:04:05,590 Alors maintenant, nous voulons vérifier ce statut et savoir s'il n'est toujours pas accordé. 59 00:04:05,950 --> 00:04:10,120 Et si tel est le cas, alors, comme je l'ai dit, nous ne pouvons rien faire. 60 00:04:10,420 --> 00:04:11,890 Ici, nous pouvons simplement revenir. 61 00:04:12,070 --> 00:04:13,750 Nous pouvons afficher un message à l'utilisateur. 62 00:04:13,770 --> 00:04:19,570 Nous pouvons afficher une alerte indiquant que nous ne pouvons plus envoyer de notifications. 63 00:04:19,720 --> 00:04:21,910 Mais au final, nous ne pouvons rien faire ici. 64 00:04:22,420 --> 00:04:25,570 Si le statut est accordé, alors nous sommes bons. 65 00:04:26,530 --> 00:04:33,040 Maintenant, de toute façon, nous pouvons définitivement planifier une notification, car le pire des cas est que nous n'avons pas d'autorisations 66 00:04:33,040 --> 00:04:35,530 et que rien ne se passe donc. 67 00:04:36,010 --> 00:04:40,720 Mais maintenant que nous le demandons, le meilleur scénario est que nous ayons obtenu l'autorisation. 68 00:04:40,900 --> 00:04:43,360 Et Dale pour cette année réussira. 69 00:04:45,100 --> 00:04:46,690 Non, je dois en fait intervenir ici. 70 00:04:46,840 --> 00:04:48,940 Ce code contient une erreur. 71 00:04:49,390 --> 00:04:52,000 Nous n'obtenons pas la chaîne d'état comme celle-ci ici. 72 00:04:52,060 --> 00:04:59,170 Au lieu de cela, nous obtenons l'objet status, qui a ensuite une propriété status et identique à celle du cas ici. 73 00:05:00,730 --> 00:05:06,550 Nous n'avons simplement pas eu d'erreur avant car même si notre code ne fonctionnait pas techniquement, nous avons quand même 74 00:05:06,640 --> 00:05:07,570 demandé la permission. 75 00:05:07,930 --> 00:05:11,080 Mais maintenant, cela vérifie correctement si nous avons l'autorisation. 76 00:05:11,500 --> 00:05:16,930 Et en plus, nous devons aussi l'ajuster à un autre endroit ici. 77 00:05:17,140 --> 00:05:23,290 Si nous avons déjà eu la permission, nous obtiendrons, bien sûr, une réponse ici, espérons-le, et nous 78 00:05:23,410 --> 00:05:24,850 ne demanderons plus. 79 00:05:25,120 --> 00:05:31,690 Cela signifie que dans le bloc suivant, nous avons un problème, car nous nous attendons maintenant à obtenir notre état 80 00:05:31,720 --> 00:05:32,950 en tant qu'objet. 81 00:05:33,100 --> 00:05:38,800 Mais puisque nous n'avons pas demandé à nouveau parce que nous n'avions pas besoin de ne pas obtenir cet objet ici. 82 00:05:39,100 --> 00:05:41,560 L'accès au statut échouera donc. 83 00:05:41,650 --> 00:05:45,280 Et nous penserons que nous n'avons pas obtenu l'autorisation même si nous l'avons. 84 00:05:45,850 --> 00:05:51,850 Donc, ici, nous devons retourner l'objet d'état dans ce premier, puis bloquer. 85 00:05:52,000 --> 00:05:57,430 De sorte que dans le bloc suivant, c'est une manière responsable des cas où nous avions déjà une autorisation. 86 00:05:57,970 --> 00:06:04,780 Il s'agit d'un changement que vous devez implémenter pour vous assurer que votre application détecte correctement ses notifications et son 87 00:06:04,780 --> 00:06:10,510 statut d'autorisations et ne pense pas qu'elle ne dispose pas d'autorisations lorsqu'elle les a réellement. 88 00:06:10,930 --> 00:06:12,190 Voyons maintenant la sécurité. 89 00:06:16,810 --> 00:06:20,890 Et assurez-vous de redémarrer cela sur votre simulateur iPhone. 90 00:06:21,190 --> 00:06:26,050 Et maintenant, dès le début, on me demande si je veux accorder cette autorisation à cause du code que 91 00:06:26,080 --> 00:06:26,850 nous venons d'ajouter. 92 00:06:27,520 --> 00:06:34,240 Et si nous cliquons maintenant sur autoriser ici et avons déclenché une notification et fermé l'application, voyons si cela 93 00:06:34,240 --> 00:06:36,460 fonctionne maintenant ici sur Aiwass. 94 00:06:36,850 --> 00:06:39,760 Attendons que les 10 secondes passent. 95 00:06:40,570 --> 00:06:45,190 Et voici notre première notification locale envoyée par notre application. 96 00:06:45,760 --> 00:06:48,920 Et maintenant, nous travaillons sur ISIS et Android. 97 00:06:49,420 --> 00:06:52,870 Et tout comme sur Android, si nous cliquons sur une notification ici. 98 00:06:54,340 --> 00:06:57,460 Nous pouvons ouvrir notre application, donc ça marche. 99 00:06:57,760 --> 00:07:05,110 Maintenant, une chose qui n'a pas fonctionné ou où rien ne s'est passé, c'est lorsque l'application est au premier plan. 100 00:07:05,620 --> 00:07:08,200 Maintenant, dans certains cas, c'est le comportement que vous souhaitez. 101 00:07:08,440 --> 00:07:13,950 Dans certains cas, si l'application est ouverte, ne pas afficher la notification peut être tout à fait correct. 102 00:07:14,530 --> 00:07:20,920 Mais si je reviens à l'exemple de l'application de rappel, ce n'est pas parce qu'il est au premier 103 00:07:20,920 --> 00:07:25,650 plan que vous ne voulez pas que l'utilisateur sache qu'une tâche est due. 104 00:07:26,110 --> 00:07:32,620 Par conséquent, laissez-moi maintenant vous montrer comment vous pouvez gérer les notifications si l'application est au premier plan.