1 00:00:02,280 --> 00:00:10,380 Entonces, para obtener también notificaciones locales en Aiwass, debemos pedirle permiso al usuario y para esto podemos usar otro 2 00:00:10,380 --> 00:00:14,610 paquete que todos instalamos con la instalación de XPO. 3 00:00:14,940 --> 00:00:17,690 Y ese es el paquete de permisos de la Expo. 4 00:00:17,960 --> 00:00:23,430 El paquete de permisos Expo, como su nombre lo indica, nos ayuda a administrar los permisos. 5 00:00:23,550 --> 00:00:26,790 Nos ayuda a solicitar permisos y trabajar con permisos. 6 00:00:27,660 --> 00:00:35,460 Entonces, una vez que esté instalado en la aplicación G. S. o en cualquier otro archivo donde desee obtener esos permisos. 7 00:00:35,490 --> 00:00:37,740 Pero aquí solo tenemos un componente. 8 00:00:38,400 --> 00:00:43,920 Simplemente importamos todo como permisos de permisos expl. 9 00:00:44,040 --> 00:00:44,760 Así. 10 00:00:45,600 --> 00:00:52,350 Y con esto importado, debemos pedirle al usuario permiso para mostrar notificaciones antes de intentar 11 00:00:52,350 --> 00:00:52,920 hacerlo. 12 00:00:53,430 --> 00:00:55,890 Ahora, depende de su aplicación. 13 00:00:56,010 --> 00:01:00,540 Cuando desee preguntar al usuario, tal vez desee preguntar cuándo se inicia la aplicación. 14 00:01:00,760 --> 00:01:03,210 Quizás un mejor momento sea mejor. 15 00:01:03,480 --> 00:01:08,760 Después de todo, desea solicitar permisos cuando es muy probable que el usuario le otorgue el permiso. 16 00:01:08,880 --> 00:01:11,970 En este momento, Yeater lo hará bien cuando se inicie la aplicación. 17 00:01:12,150 --> 00:01:14,300 Entonces realmente importaré D. 18 00:01:14,980 --> 00:01:17,730 Usted como un hecho tomó aquí de reaccionar. 19 00:01:19,580 --> 00:01:28,040 Para que podamos ejecutar la lógica cuando este componente se monta simplemente pasando una matriz de dependencias vacía aquí y 20 00:01:28,510 --> 00:01:29,360 allí. 21 00:01:29,450 --> 00:01:35,990 Ahora quiero usar este objeto de permisos, que importamos este año para, en primer lugar, verificar el 22 00:01:35,990 --> 00:01:41,300 estado de los permisos y, posteriormente, si no tenemos permiso para solicitarlo. 23 00:01:41,990 --> 00:01:47,840 Por lo tanto, aquí podemos llamar a get async para, en primer lugar, verificar el estado actual de los permisos. 24 00:01:48,380 --> 00:01:50,840 Ahora necesitamos especificar para qué permiso. 25 00:01:50,840 --> 00:01:52,430 Queremos obtener esa información. 26 00:01:52,850 --> 00:01:59,330 Y, por lo tanto, podemos acceder a los permisos, iniciar notificaciones, látigos, mayúsculas, sin embargo, para verificar cómo 27 00:01:59,330 --> 00:02:05,030 es el estado de los permisos actuales para los permisos de notificación en Android. 28 00:02:05,060 --> 00:02:06,560 Esto no hará nada en Aiwass. 29 00:02:06,560 --> 00:02:10,310 Descubrirá si ya estamos autorizados a enviar permisos. 30 00:02:11,280 --> 00:02:14,400 Ahora, esta es una tarea asincrónica y, por lo tanto, nos da una promesa. 31 00:02:14,730 --> 00:02:18,030 Por lo tanto, podemos usar aquí para continuar. 32 00:02:18,840 --> 00:02:23,150 Ahora aquí, obtendremos el estado de ese permiso. 33 00:02:23,160 --> 00:02:28,410 Entonces obtendremos información si tenemos permiso para enviar notificaciones o no. 34 00:02:30,410 --> 00:02:32,600 Ahora podemos verificar qué estado tenemos. 35 00:02:33,500 --> 00:02:40,430 Aquí hay un par de valores posibles, pero al final estamos interesados en el estado otorgado si obtuvimos 36 00:02:40,430 --> 00:02:42,740 el estado otorgado por papá. 37 00:02:43,130 --> 00:02:44,960 No necesitamos continuar. 38 00:02:45,920 --> 00:02:52,910 Pero si aún no tenemos que otorgar ese estado, queremos pedir permiso porque no nos han otorgado 39 00:02:52,910 --> 00:02:54,530 esos permisos antes. 40 00:02:55,100 --> 00:02:58,010 Así que ahora podemos usar el objeto de permisos nuevamente. 41 00:02:58,400 --> 00:03:04,040 Pero esta vez llamamos a ask async antes de verificar el estado. 42 00:03:04,190 --> 00:03:09,890 Ahora estamos pidiendo un nuevo permiso, porque ahora sabemos que aún no tenemos el permiso que 43 00:03:09,890 --> 00:03:10,250 necesitamos. 44 00:03:11,120 --> 00:03:14,830 Así que ahora aquí nuevamente tenemos acceso a permisos, notificaciones de pensamiento. 45 00:03:15,170 --> 00:03:17,840 Y ahora esto pedirá obtener ese permiso. 46 00:03:18,590 --> 00:03:19,820 Esto devolverá una promesa. 47 00:03:19,910 --> 00:03:24,740 Entonces, en general, podemos devolverlo aquí para permanecer en esta cadena de promesa, que comenzamos aquí. 48 00:03:26,140 --> 00:03:30,460 Y por lo tanto, ahora aquí podemos volver a usar, entonces también podría usar async wait. 49 00:03:30,610 --> 00:03:33,950 Pero, de hecho, no debes hacer que la disfunción sea asíncrona. 50 00:03:34,270 --> 00:03:38,890 En cambio, tendría que incluir esto en una nueva función, que ejecute inmediatamente solo como una nota al 51 00:03:38,890 --> 00:03:39,430 margen. 52 00:03:39,820 --> 00:03:41,080 Pero aquí usará buenos viejos. 53 00:03:41,170 --> 00:03:43,930 Luego captura y alcanzará la función en esto. 54 00:03:43,990 --> 00:03:47,680 Luego bloquee después de que Aske Async haya terminado. 55 00:03:48,520 --> 00:03:50,580 Ahora nuevamente aquí obtendrá el estado. 56 00:03:50,800 --> 00:03:55,840 Porque, por supuesto, solo porque estamos preguntando no significa que estamos obteniendo el permiso. 57 00:03:56,170 --> 00:04:00,370 Por lo tanto, el usuario aún podría denegar un permiso y, en este caso, no hay nada que podamos hacer. 58 00:04:00,910 --> 00:04:05,590 Así que ahora queremos verificar este estado y averiguar si aún no se ha otorgado. 59 00:04:05,950 --> 00:04:10,120 Y si ese es el caso, entonces, bueno, como dije, no hay nada que podamos hacer. 60 00:04:10,420 --> 00:04:11,890 Así que aquí podemos regresar. 61 00:04:12,070 --> 00:04:13,750 Podríamos mostrar un mensaje al usuario. 62 00:04:13,770 --> 00:04:19,570 Podríamos mostrar una alerta de que ahora no podemos enviar ninguna notificación. 63 00:04:19,720 --> 00:04:21,910 Pero al final, no hay nada que podamos hacer aquí. 64 00:04:22,420 --> 00:04:25,570 Sin embargo, si se otorga el estado, entonces estamos bien. 65 00:04:26,530 --> 00:04:33,040 Ahora, de cualquier manera, definitivamente podemos programar una notificación, porque el peor de los casos es que no tenemos permisos 66 00:04:33,040 --> 00:04:35,530 y, por lo tanto, no sucede nada. 67 00:04:36,010 --> 00:04:40,720 Pero ahora que estamos preguntando, el mejor de los casos es que obtuvimos el permiso. 68 00:04:40,900 --> 00:04:43,360 Y Dale para este año tendrá éxito. 69 00:04:45,100 --> 00:04:46,690 No, en realidad tengo que intervenir aquí. 70 00:04:46,840 --> 00:04:48,940 Este código tiene un error. 71 00:04:49,390 --> 00:04:52,000 No obtenemos la cadena de estado como esta aquí. 72 00:04:52,060 --> 00:04:59,170 En cambio, obtenemos el objeto de estado, que luego tiene una propiedad de estado y el mismo que el caso aquí. 73 00:05:00,730 --> 00:05:06,550 Simplemente no recibimos un error antes porque, aunque nuestro código técnicamente no funcionó, solicitamos 74 00:05:06,640 --> 00:05:07,570 permiso aún. 75 00:05:07,930 --> 00:05:11,080 Pero ahora esto verifica adecuadamente si tenemos el permiso. 76 00:05:11,500 --> 00:05:16,930 Y además, también tenemos que ajustarlo en otro lugar aquí. 77 00:05:17,140 --> 00:05:23,290 Si ya teníamos el permiso, por supuesto, se nos otorgará como respuesta aquí, con suerte, y no 78 00:05:23,410 --> 00:05:24,850 volveremos a preguntar. 79 00:05:25,120 --> 00:05:31,690 Sin embargo, eso significa que en el siguiente bloque tenemos un problema, porque ahora esperamos obtener nuestro 80 00:05:31,720 --> 00:05:32,950 estado como objeto. 81 00:05:33,100 --> 00:05:38,800 Pero como no volvimos a preguntar porque no era necesario, no obtendremos ese objeto aquí. 82 00:05:39,100 --> 00:05:41,560 Entonces el estado de acceso fallará. 83 00:05:41,650 --> 00:05:45,280 Y pensaremos que no obtuvimos el permiso a pesar de que lo tenemos. 84 00:05:45,850 --> 00:05:51,850 Entonces, aquí deberíamos devolver el objeto de estado en ese primero, luego bloquear. 85 00:05:52,000 --> 00:05:57,430 Para que en el siguiente bloque sea una forma responsable de los casos en que ya teníamos permiso. 86 00:05:57,970 --> 00:06:04,780 Este es un cambio que debe implementar para garantizar que su aplicación detecte correctamente sus notificaciones y el 87 00:06:04,780 --> 00:06:10,510 estado de los permisos y no piense que no tiene permisos cuando realmente los tiene. 88 00:06:10,930 --> 00:06:12,190 Así que ahora vamos a la seguridad. 89 00:06:16,810 --> 00:06:20,890 Y asegúrese de reiniciar eso en su simulador de iPhone. 90 00:06:21,190 --> 00:06:26,050 Y ahora, al principio, me preguntan si quiero otorgar este permiso debido al código que acabamos 91 00:06:26,080 --> 00:06:26,850 de agregar. 92 00:06:27,520 --> 00:06:34,240 Y si ahora hacemos clic en Permitir aquí y activamos una notificación y cerramos la aplicación, veamos si eso 93 00:06:34,240 --> 00:06:36,460 ahora funciona aquí en Aiwass. 94 00:06:36,850 --> 00:06:39,760 Esperemos a que pasen los 10 segundos. 95 00:06:40,570 --> 00:06:45,190 Y aquí está nuestra primera notificación local enviada por nuestra aplicación. 96 00:06:45,760 --> 00:06:48,920 Y ahora lo tenemos funcionando tanto en ISIS como en Android. 97 00:06:49,420 --> 00:06:52,870 Y al igual que en Android, si hacemos clic en una notificación aquí. 98 00:06:54,340 --> 00:06:57,460 Podemos abrir nuestra aplicación, así que está funcionando. 99 00:06:57,760 --> 00:07:05,110 Ahora, una cosa que no funcionó o donde no sucedió nada fue cuando la aplicación está en primer plano. 100 00:07:05,620 --> 00:07:08,200 Ahora, en algunos casos, ese es el comportamiento que desea. 101 00:07:08,440 --> 00:07:13,950 En algunos casos, si la aplicación está abierta, no mostrar la notificación podría estar absolutamente bien. 102 00:07:14,530 --> 00:07:20,920 Pero si vuelvo al ejemplo de la aplicación de recordatorio, el hecho de que esté en primer plano podría no 103 00:07:20,920 --> 00:07:25,650 significar que no desea que el usuario sepa que se debe realizar alguna tarea. 104 00:07:26,110 --> 00:07:32,620 Por lo tanto, déjame mostrarte a continuación cómo puedes manejar las notificaciones si la aplicación está en primer plano.