Anda di halaman 1dari 14

Push Notification

Delphi XE 10.1.2

Nesse tutorial, ter uma explicao simples de como criar um Push Notification no delphi para
o dispositivo com o sistema Android.

Vamos l, sem muita enrola... vou criar um projeto do zero! Mas se voc j tem um projeto, no
precisa apagar e criar um novo, basta implementar as funcionalidades nele!
Etapa 1 Criao do Projeto

Vamos criar um novo projeto, como ilustra a imagem 1.0.0 e 1.0.1

Imagem 1.0.0

Imagem 1.0.1
Etapa 2 Configurao Para o Push Notification
Depois do projeto criado, vai nas opes do projeto, abra no menu esquerdo o Entitlement
List, selecione o Target All Configurations Android Platform e marque o Receive push
notification e clica no boto Ok

Imagem 2.0.0

Imagem 2.0.1
Etapa 3 Obtendo o Device Token e Exibindo a Notification
Agora, vamos colocar a mo na massa, no h muito segredo para obter o device token... vou
fazer tudo em um nico formulrio para ficar fcil de entender como funciona...

Nessa etapa, vamos fazer o aplicativo exibir a notificao quando o aplicativo estiver aberto.

No seu formulrio, insere um memo e defina o nome dele como memoOutput e um button
com a propriedade text como Ativar Push Notification

Imagem 3.0.0

vamos precisar adicionar na uses: System.Notification, System.PushNotification,


FMX.PushNotification.Android

Ainda no seu formulrio, vamos adicionar na sua classe as variveis:


PushService: TPushService;
ServiceConnection: TPushServiceConnection;
DeviceId: string;
DeviceToken: string;
No OnCreate do seu formulrio, vamos criar esses dois objetos declarados... e onde encontra-
se a palavra APP ID, voc vai precisar inserir o ID do seu projeto do Firebase... se voc j tiver
um, j pode inserir! Seno, pode deixar assim... na frente vou ensinar como criar o projeto no
Firebase!

PushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM);
PushService.AppProps[TPushService.TAppPropNames.GCMAppID] := 'APP ID';
ServiceConnection := TPushServiceConnection.Create(PushService);
ServiceConnection.OnChange := DoServiceConnectionChange;
ServiceConnection.OnReceiveNotification := DoReceiveNotificationEvent;

Imagem 3.0.1

Vamos tambm adicionar dois procedimentos:


procedure DoServiceConnectionChange(Sender: TObject; PushChanges: TPushService.TChanges);
procedure DoReceiveNotificationEvent(Sender: TObject; const ServiceNotification:
TPushServiceNotification);

Imagem 3.0.2

Apertando Ctrl + Shift + C em cima dos procedimentos, a IDE do Delphi vai criar a estrutura dos
procedimentos no implementation

Imagem 3.0.3
No procedimento DoServiceConnectionChange, vamos salvar na varavel DeviceToken o token
obtido.
if TPushService.TChange.DeviceToken in PushChanges then
begin
DeviceId := PushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceId];
DeviceToken := PushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken];
MemoOutput.Lines.Add('DEVICE_ID = ' + DeviceId);
MemoOutput.Lines.Add('DEVICE_TOKEN = ' + DeviceToken);
end;
Imagem 3.0.4

No procedimento DoReceiveNotificationEvent, vamos exibir a nossa mensagem no push


notification...
var
MessageText: string;
NotificationCenter: TNotificationCenter;
Notification: TNotification;
begin
MessageText := ServiceNotification.DataObject.GetValue('message').Value;
NotificationCenter := TNotificationCenter.Create(nil);
try
Notification := NotificationCenter.CreateNotification;
try
Notification.Name := MessageText;
Notification.AlertBody := MessageText;
Notification.Title := MessageText;
Notification.EnableSound := False;
NotificationCenter.PresentNotification(Notification);
finally
Notification.DisposeOf;
end;
finally
NotificationCenter.DisposeOf;
end;
end;

Imagem 3.0.5
No boto, vamos adicionar no evento OnClick.
ServiceConnection.Active := True;

Imagem 3.0.6

Agora no arquivo AndroidManifest.template.xml do seu projeto, necessrio incluir na sesso


<%services%> a seguinte linha:

<service android:name="com.embarcadero.gcm.notifications.GCMIntentService" />


Etapa 4 Criando o projeto no Firebase
Acesse o site https://console.firebase.google.com e faa o login, caso no seja registrado, s
basta criar uma conta.

Depois de acessar o console do firebase, vamos criar um novo projeto. Para criar, aperte o
boto Adicionar projeto.

Imagem 4.0.0

Defina um nome e a regio do seu projeto e aperte o boto CRIAR PROJETO.

Imagem 4.0.1
Etapa 5 Adicionando o aplicativo ao Firebase
No Firebase, na tela principal, clique em Adicionar o Firebase ao seu aplicativo Android.

Imagem 5.0.0

Coloca o nome do pacote do seu aplicativo no campo Nome do pacote do Android e defina
um apelido para o seu aplicativo no campo seguinte. Aperte em REGISTRAR APP e em seguida
j pode fechar essa janela.

Imagem 5.0.1
Para localizar o nome do seu pacote, basta ir nas opes do projeto (indicado na imagem
2.0.0), abra no menu esquerdo o Version Info e veja o value da key package.

No exemplo construdo, o valor da package com.testefcm.$(ModuleName). Onde


$(ModuleName) o nome do seu projeto.

Ento o nome do package desse projeto de exemplo com.testefcm.FirebaseCloudMessaging


porque o nome do projeto FirebaseCloudMessaging

Imagem 5.0.2

Clique no boto menu do aplicativo que voc acabou de criar e clique na opo
configuraes

Imagem 5.0.3
Imagem 5.0.4

Depois de clicar na opo configuraes, vai abrir essa janela. Clique na opo CLOUD
MESSAGING para buscar o APP ID da Etapa 3

Imagem 5.0.5

Seu APP ID o valor que apresenta no Cdigo do remetente, basta agora inserir esse valor no
cdigo fonte onde.
Imagem 5.0.6

Imagem 6.0.7
Etapa 6 Enviando a notificao para o celular
Para testar se sua aplicao recebe a mensagem corretamente, vamos enviar uma nova
mensagem. Para isso, no menu lateral, clica em Notificaes e em seguida clique em ENVIAR
SUA PRIMEIRA MENSAGEM

Imagem 6.0.0

Para enviar sua primeira mensagem, preciso preencher o campo Texto da mensagem (
obrigatrio, apesar do nosso aplicativo no precisar deste campo), selecione a opo
Dispositivo nico e no campo Token de registro FCM voc insere o token do dispositivo
daquele aplicativo. Aperte em Opes avanadas para abrir outras opes, e no Personalizar
dados voc vai precisar inserir uma Chave com o valor message e no campo Valor voc vai
inserir a mensagem que deseja exibir! O Delphi exibe como notificao o campo message, por
isso que necessrio criar esse dado personalizado.

Imagem 6.0.1
Para saber qual o token do seu dispositivo, basta abrir o aplicativo e apertar o boto Ativar
Push Notification que o aplicativo vai obter um token e exibir no memo

Imagem 6.0.2

Anda mungkin juga menyukai