Portanto, para obter também notificações locais no Aiwass, precisamos pedir permissão ao usuário e, para isso, podemos usar outro pacote
que todos nós instalamos com a instalação do XPO.
E esse é o pacote de permissões da Expo.
O pacote de permissões da Expo, como o nome indica, nos ajuda a gerenciar permissões.
Isso nos ajuda a solicitar permissões e trabalhar com permissões.
Então, uma vez que isso é instalado no aplicativo G. S. ou em qualquer outro arquivo em que você deseja obter essas permissões.
Mas aqui só temos um componente.
Simplesmente importamos tudo como permissões das permissões expl.
Bem desse jeito.
E com isso importado, precisamos pedir permissão ao usuário para mostrar notificações antes de tentar fazer
isso.
Agora, isso depende da sua aplicação.
Quando você quiser perguntar ao usuário, talvez queira perguntar quando o aplicativo é iniciado.
Talvez um ponto de tempo melhor seja melhor.
Afinal, você deseja solicitar permissões quando é muito provável que o usuário conceda a permissão.
No momento, o Yeater fará isso exatamente quando o aplicativo iniciar.
Então eu vou importar D.
Você, de fato, tirou aqui de reagir.
Para que possamos executar a lógica quando esse componente é montado simplesmente passando uma matriz de dependências vazia aqui e
ali.
Agora, quero usar esse objeto de permissões, que importamos este ano para, em primeiro lugar, verificar
o status das permissões e, posteriormente, se não tivermos permissão para solicitá-lo.
Portanto, aqui podemos chamar get async para, em primeiro lugar, verificar o status atual das permissões.
Agora precisamos especificar para qual permissão.
Queremos obter essa informação.
Portanto, podemos acessar permissões, iniciar notificações, chicotes, todas as letras maiúsculas, para verificar como
o status atual das permissões é para permissões de notificação no Android.
Isso não fará nada no Aiwass.
Ele descobrirá se já temos permissão para enviar permissões.
Agora, essa é uma tarefa assíncrona e, portanto, nos dá uma promessa.
Portanto, podemos usar aqui para prosseguir.
Agora aqui, obteremos o status dessa permissão.
Portanto, obteremos informações se temos permissão para enviar notificações ou não.
Agora podemos verificar qual status temos.
Existem alguns valores possíveis aqui, mas, no final, estamos interessados no status concedido se obtivermos
o status de pai.
Não precisamos continuar.
Mas se ainda não precisamos conceder esse status, queremos pedir permissão, porque não recebemos
essas permissões antes.
Então agora podemos usar o objeto de permissões novamente.
Mas desta vez chamamos ask async antes de verificar o status.
Agora estamos solicitando uma nova permissão, porque agora sabemos que ainda não temos a permissão necessária.
Então agora aqui acessamos novamente as permissões, pensou as notificações.
E agora isso pedirá para obter essa permissão.
Isso retornará uma promessa.
Assim, podemos devolvê-lo aqui para permanecer nessa cadeia de promessas, que começamos aqui.
E, portanto, agora aqui podemos usar novamente, você também pode usar async wait.
Mas, na verdade, você não deve fazer disfunção assíncrona.
Em vez disso, você teria que agrupar isso em uma nova função, que você executa imediatamente apenas como uma
nota lateral.
Mas aqui vai usar bom e velho.
Então pegue e alcançará a função nisto.
Em seguida, bloqueie depois que o Aske Async terminar.
Agora, novamente, aqui receberá o status.
Porque é claro, só porque estamos perguntando, não significa que estamos recebendo a permissão.
Portanto, o usuário ainda pode ter sua permissão negada e, nesse caso, não há nada que possamos fazer.
Então agora queremos verificar esse status e descobrir se ele ainda não foi concedido.
E se for esse o caso, então, como eu disse, não há nada que possamos fazer.
Então aqui podemos apenas retornar.
Podemos mostrar uma mensagem para o usuário.
Podemos mostrar um alerta de que agora não podemos enviar notificações.
Mas no final, não há nada que possamos fazer aqui.
Se o status for concedido, no entanto, estamos bem.
Agora, de qualquer forma, podemos definitivamente agendar uma notificação, porque o pior cenário é que não
temos permissões e, portanto, nada acontece.
Mas agora que estamos perguntando, o melhor cenário é obter a permissão.
E Dale para este ano terá sucesso.
Não, na verdade eu tenho que entrar aqui.
Este código tem um erro.
Nós não temos a cadeia de status como esta aqui.
Em vez disso, obtemos o objeto status, que possui uma propriedade status e o mesmo que o caso aqui.
Nós simplesmente não recebemos um erro antes porque, embora nosso código tecnicamente não funcionasse, solicitamos
permissão ainda.
Mas agora isso verifica corretamente se temos a permissão.
Além disso, também precisamos ajustá-lo em outro local aqui.
Se já tivemos a permissão, é claro que seremos concedidos como resposta aqui, espero, e
não pediremos novamente.
Isso significa que no próximo bloco, porém, temos um problema, porque agora esperamos obter nosso estado
como objeto.
Mas como não perguntamos novamente, porque não precisávamos, não conseguiremos esse objeto aqui.
Portanto, o acesso ao status falhará.
E pensaremos que não recebemos a permissão, mesmo que a tenhamos.
Então, aqui devemos retornar o objeto status primeiro e depois bloquear.
Portanto, no próximo bloco, é uma maneira responsável pelos casos em que já tínhamos permissão.
Essa é uma alteração que você deve implementar para garantir que seu aplicativo detecte corretamente o status de
notificações e permissões e não pense que não possui permissões quando realmente as possui.
Então agora vamos à segurança.
E certifique-se de reiniciar isso no seu simulador de iPhone.
E agora, no início, perguntam-me se quero conceder essa permissão por causa do código que acabamos
de adicionar.
E se agora clicarmos em Permitir aqui e acionarmos uma notificação e fecharmos o aplicativo, vamos ver se isso
agora funciona aqui no Aiwass.
Vamos aguardar os 10 segundos.
E aqui está a nossa primeira notificação local enviada pelo nosso aplicativo.
E agora conseguimos trabalhar tanto no ISIS quanto no Android.
E, assim como no Android, se clicarmos em uma notificação aqui.
Podemos abrir nosso aplicativo, para que funcione.
Agora, uma coisa que não funcionou ou onde nada aconteceu foi quando o aplicativo está em primeiro plano.
Agora, em alguns casos, esse é o comportamento que você deseja.
Em alguns casos, se o aplicativo estiver aberto, não mostrar a notificação pode ser absolutamente adequado.
Mas se eu voltar ao exemplo de aplicativo de lembrete, apenas porque está em primeiro plano, pode não significar
que você não deseja que o usuário saiba que alguma tarefa está prevista.
Portanto, deixe-me mostrar a seguir como você pode lidar com as notificações se o aplicativo estiver em primeiro plano.