A tecnologia Push é uma das formas mais rápidas de entregar notificações aos utilizadores da sua aplicação. Para as receber, o utilizador não necessita de executar quaisquer acções, e estas são iniciadas no lado do servidor e aparecem directamente na barra de notificação no ecrã do dispositivo móvel. Nesta lição, iremos compreender como implementar notificações push em aplicações construídas na plataforma AppMaster.
Send Push bloco
Para enviar notificações push, Send Push são utilizados blocos que correspondem ao sistema operativo do dispositivo alvo (iOS ou Android).
Obtendo Push Token e Bundle ID
Para efectuar um envio, deve especificar pelo menos dois parâmetros: Push Token e IOS (Android) Bundle ID. Portanto, vale a pena começar com a parte preparatória e descobrir como obter estes parâmetros.
Por defeito, a base de dados de cada projecto contém um Mobile Instance modelo que está ligado ao User modelo e contém os campos obrigatórios: push_token e bundle_id.
Vamos criar um processo comercial separado para a aplicação móvel, que irá formar a Mobile Instance modelo. Para obter uma ficha de empurrão, utilize o Get Push Token bloco.
O passo seguinte é obter informações sobre o dispositivo. E aqui, dependendo do sistema operativo, serão necessários diferentes blocos. Por conseguinte, para determinar o sistema operativo, é necessário utilizar o Platform Switch bloco.
Em função do resultado, o bloco correspondente IOS Device Info ou Android Device Info é utilizado um bloco. A partir daí, pode obter uma variedade de informações sobre o dispositivo, mas no nosso exemplo, é suficiente descobrir apenas o Bundle ID.
Tendo recolhido todos os dados, pode formar um Mobile Instance indicar a que sistema operativo pertence e passá-lo como parâmetro de saída do processo empresarial.
Gravação de informação sobre o dispositivo móvel do utilizador
O passo seguinte é criar um processo comercial back end para ligar o gerado Mobile Instance com um utilizador específico e gravação na base de dados. Este processo empresarial requer o seguinte:
- Descobrir o utilizador actual utilizando a Auth: Get current user bloco.
- Expandir o conteúdo do bloco resultante Mobile Instance modelo.
- Remontar o modelo e adicionar uma ligação do utilizador ao mesmo utilizando o Make Mobile Instance bloco.
- Utilizar o bloco DB: Create Mobile Instance bloquear e guardar os dados na base de dados.
Na POST /Mobile Instance/ pode substituir o processo comercial padrão por aquele que acabou de ser criado.
A fase final de preparação é decidir quando vale exactamente a pena escrever informações sobre o dispositivo do utilizador na base de dados. A solução lógica seria fazê-lo ao executar a autorização na aplicação. Para o fazer, imediatamente após a Set Auth Token bloco, dois novos blocos com processos empresariais previamente criados devem ser adicionados ao processo de autorização do utilizador na aplicação móvel. O primeiro recebe e gera a informação necessária, e o segundo cria uma ligação com o utilizador e escreve para a base de dados.
Envio de notificações push
A parte preparatória está concluída, e pode começar a enviar notificações push. Para o fazer, criaremos um processo comercial back end. Imagine que a nossa tarefa será a de enviar uma notificação a todos os utilizadores da nossa aplicação. Enviá-las-emos apenas para dispositivos com o sistema operativo Android e não para todos os dispositivos do utilizador, mas apenas para aquele que foi utilizado em último lugar.
Vamos começar com os parâmetros de entrada. É necessário transferir o texto da própria notificação. É composto por três partes: o corpo da mensagem (body), o seu título (title), e subtítulo (subtitle).
A seguir, é necessário encontrar todos os utilizadores da aplicação. Para o fazer, utilize o Search User bloquear e definir os parâmetros necessários:
- _With = Mobile Instances (é necessário obter não só informações sobre o utilizador, mas também sobre o dispositivo móvel a ele associado)
- Limit = -1 (por defeito, a consulta devolve 25 registos, "-1" é especificado para remover este limite e obter todos os utilizadores)
- _mobile_instances_os = Android (de acordo com as condições da tarefa, só estamos interessados em Android dispositivos)
Para o conjunto gerado de utilizadores, é necessário executar um ciclo de operações (For each loop bloco)
Para cada utilizador do Expand User bloco, é necessário obter informações sobre dispositivos móveis (Mobile Instances). Precisamos de enviar uma notificação apenas para um dispositivo, por isso definimos index = 0 no Array Element bloquear e também verificar se a matriz contém pelo menos um elemento (afinal de contas, um utilizador só pode ter um dispositivo iOS ). Para tal, verificamos a validade do elemento, passamos o valor do índice válido para o If-Else bloco, e continuar o laço apenas se o valor for true.
Se tudo estiver correcto e se for encontrada informação sobre o dispositivo do utilizador, então é necessário utilizar o Expand Mobile Instance bloquear e passar os valores necessários para o Send Push (Android) bloco.
É favor notar que ao desenvolver e testar uma aplicação no bloco Developer Appdeve definir o Developer Mode = True.
Também pode utilizar o TTL (Time to live) opção. Define o tempo em segundos para a notificação ser enviada. Se a notificação não puder ser entregue imediatamente, por exemplo, se o utilizador estiver temporariamente fora de alcance, então serão feitas repetidas tentativas de entrega no tempo previsto.
No final do ciclo e enviando notificações a todos os possíveis utilizadores, o trabalho do processo comercial também é concluído.
Parâmetros adicionais
Em separado, vale a pena discutir parâmetros adicionais do bloco de envio:
- Push ID
- Push Class
- Data
Eles não afectam o facto de enviar uma notificação ou o seu conteúdo, mas podem ser utilizados no processamento de uma notificação do lado do utilizador. A aplicação móvel tem gatilhos especiais que são disparados quando uma notificação push recebida é recebida ou clicada.
Os gatilhos de notificação push contêm dados provenientes dos parâmetros de texto adicionais acima referidos. Como exemplo, podemos dar o processo mais simples, que, quando o gatilho é clicado, exibirá uma outra notificação no ecrã com a informação passada no Data parâmetro.
Outro caso de utilização popular para desencadeadores é a recolha de informação sobre a entrega de notificações. Por exemplo, podem enviar uma mensagem ao servidor declarando que uma notificação Push foi efectivamente entregue, assim como recolher estatísticas e contar o número de cliques nas notificações.