Você está na página 1de 11

Tecnologia na ponta da lngua

HOME (HTTP://WWW.TDEVROCKS.COM.BR) CONTATO (HTTP://WWW.TDEVROCKS.COM.BR/CONTATO-2/)


LOJA (HTTP://LOJA.TDEVROCKS.COM.BR) NEWSLETTER (HTTP://WWW.TDEVROCKS.COM.BR/CADASTRE-SE-EM-NOSSA-NEWSLETTER/)
PERFIL (HTTP://WWW.TDEVROCKS.COM.BR/PERFIL/) SEJA UM AUTOR (HTTP://WWW.TDEVROCKS.COM.BR/DICAS-ENVIADAS/)
MAPA DO SITE (HTTP://WWW.TDEVROCKS.COM.BR/MAPA-DO-SITE/) TUTORIAIS (HTTP://WWW.TDEVROCKS.COM.BR/TUTORIAIS/)
(http://www.tdevrocks.com.br)
IMPRENSA (HTTP://WWW.TDEVROCKS.COM.BR/SALA-DE-IMPRENSA/)

TUTORIAL: NOTIFICAES NO IOS E ANDROID SEARCH

jan 28 / 2015 0 (http://www.tdevrocks.com.br/2015/01/28/tutorial-notificacoes-no-ios-e-android/#respond)

NOTCIAS (HTTP://WWW.TDEVROCKS.COM.BR/CATEGORY/NOTICIAS/), [TUTORIAL]


(HTTP://WWW.TDEVROCKS.COM.BR/CATEGORY/TUTORIAL-2/)

Tutorial: Notificaes no iOS e Android


(http://www.tdevrocks.com.br/2015/01/28/tutorial-
notificacoes-no-ios-e-android/)

(http://rating-widget.com/my-rating-report/star/flat-yellow/rating-143848739-5/)
Avalie (2 Votos)

22 5 6 4
Curtir Share Tweetar

Dificuldade

O uso de smartphones no dia-a-dia nos deixa as vezes preguioso por conta dos milhares de recursos disponveis para nos ajudar nas
tarefas dirias. So milhares de aplicativos disponveis nas lojas Google Play e AppStore e muitos deles, principalmente aplicativos de
mensagens e jogos, se utilizam de um recurso bastante interessante que apelidamos de Notificaes. Essas notificaes podem
aparecer de diversas formas no aparelho, a forma mais comum o uso das Centrais de Notificaes presentes no iPhone e celulares
com Android.

Nesse breve tutorial, veremos como se utilizar desses recursos para enviar informaes ao usurio de nossos apps. Aprenderemos
ento a criar notificaes instantneas, cones com o nmero de alertasdo app e tambm o uso da Central de Notificaes do Sistema
Operacional.

Notificaes no iOS e Android


Notificaes no iOS e Android
Inicie criando uma nova aplicao no RAD Studio XE7 utilizando o menu File > New > Multi-Device Application Delphi. Selecione um
template em branco (Blank Application) e salve o aplicativo em um diretrio de sua escolha.

Tanto no iOS quanto no Android, as notificaes no iOS e Androidso enviadas e controladas pelo componente NotificationCenter da
classe de mesmo nome. Vale lembrar que esses alertas somente funcionam em plataformas mveis, por isso mude o Target de seu
Delphi para Android ou iOS (Device ou Simulator) para que possamos incluir um componente dessa classe em nosso formulrio.
Tambm ser necessrio incluir os namespaces FMX.PlatformeFMX.Notification no Uses do formulrio caso no seja incluso
automaticamente.

Basicamente, como mencionado anteriormente, existem diversas formas de se mostrar notificaes. No cone da aplicao, em forma
de banner e ainda na Central de Notificaes. Iniciaremos nossos estudos modificando o cone da aplicao.

Insira um TLabel modificando sua propriedade Text para Nmero de Notificaes (sem aspas) e em seguida coloque um TEdit na
tela. Modifique seu Text inserindo o valor 15 ou algo de sua preferncia e modifique seu Name para edtNumber. Agora insira um
SpeedButton e modifique a propriedade Text para Aplicar. Ns faremos com que ao tocar no SpeedButton, seja acrescentado um
cone com o valor 15 (ou o que for digitado por ns) acima do cone do aplicativo como comum em Android e iOS.

Codifique o boto no evento OnClick de acordo com a Listagem 1.

1 procedureTForm1.SpeedButton1Click(Sender:TObject); ?
2 var
3 MyNotification:TNotification;
4 begin
5 MyNotification:=NotificationCenter1.CreateNotification;
6 try
7 MyNotification.Number:=edtNumber.Text.ToInteger;
8
9 NotificationCenter1.PresentNotification(MyNotification);
10 finally
11 MyNotification.DisposeOf;
12 end;
13 end;

Listagem 1.Modificando o cone da aplicao

A explicao para o algortimo anterior simples. Ns criamos uma varivel do tipo TNotification para configurar o tipo de notificao
que desejamos. Instanciamos essa varivel logo na primeira linha de nosso procedimento usando o mtodo CreateNotification do
componente NotificationCenter1. Aps isso ns configuramos o valor numrico (referente ao nmero de alertas) que aparecer no
cone do aplicativo. Usamos a propriedade Number da nossa varivel, nossa instncia. Por fim, chamamos o mtodo
PresentNotification do componente NotificationCenter1 passando para ele qual a instncia da notificao, ou seja, nossa varivel.

Se executarmos nossa app agora e clicarmos no boto Aplicar, veremos o valor esperado. Voc dever sair da aplicao apertando o
boto Home no iPhone/iPadou Voltar no Android para ir at a rea de trabalho do sistema operacional. Voc deve visualizar algo
parecido com as imagensa seguir:

(http://www.tdevrocks.com.br/wp-
content/uploads/2015/01/IOSNotification1.png)

iPad Simulator

(http://www.tdevrocks.com.br/wp-
content/uploads/2015/01/Android_Notification_with_number.png)

Android Simulator

Agendamento de Notificaes
Outro recurso bastante comum vermos, tanto no iOS quanto no Android, um banner com um alerta especfico da aplicao. Isso
bastante comum em aplicativos de chat, tais como Facebook Chat e Whatsapp. Esses banners normalmente aparecem na parte
superior do aparelho e desaparecem segundos depois. Depois ficam visveis apenas na Central de Notificaes que pode ser acessada
arrastando o dedo de cima para baixo. Essas notificaes podem ser agendadas ou instantneas. Vejamos um exemplo de
agendamento:

Insira outro TLabel na tela e modifique seu Text para Mensagem de Agendamento. Coloque tambm um novo TEdit e mude seu Name
para edtMensagem. Por fim um novo SpeedButton e mude o Text para Agendar. No cdigo-fonte do evento OnClick desse boto,
digite o algortimo daListagem 2.

1 procedureTForm1.SpeedButton2Click(Sender:TObject); ?
2 var
3 MyNotification:TNotification;
4 begin
5 MyNotification:=NotificationCenter1.CreateNotification;
6 try
7 MyNotification.Name:='MinhaNotificacao';
8 MyNotification.AlertBody:=edtMensagem.Text;
9 MyNotification.FireDate:=Now+EncodeTime(0,0,10,0);
10
11 NotificationCenter1.ScheduleNotification(MyNotification);
12 finally
13 MyNotification.DisposeOf;
14 end;
15 end;

Listagem 2. Agendamento

Voc perceber que a codificao inicial bem semelhante a anterior. O que modificamos aqui foi usar outras trs propriedades da
instncia da notificao que no usamos no exemplo anterior:

Name: Nome da notificao;


AlertBody: Texto da notificao;
FireDate: Data da notificao.

Essa ltima propriedade bem interessante. Ns podemos inserir qualquer data nessa propriedade e isso torna o recurso mais
dinmico. Vamos dar um exemplo: digamos que nossa aplicao exija a sincronizao de dados com o servidor da empresa de 24 em
24 horas e desejamos que o usurio seja avisado sobre isso. Podemos criar uma frmula capaz de agendar uma notificao para X
horas, ou que aparea de tempo em tempo. Em nosso exemplo, ns codificamos esse tempo para mostrar a notificao 10 segundos
aps o clique no boto Aplicar. Perceba a instruo Now + EncondeTime(0, 0, 10, 0).

Por fim, depois de confirmarmos nossa varivel, ento chamamos o mtodo ScheduleNotification do componente para agendar nossa
notificao. Para testar, execute o aplicativo e pressione o boto Home de seu iPhone/iPad ou o boto Voltar do seu Android.
Aguarde 10 segundos e veja a notificao aparecer e desaparecer.

(http://www.tdevrocks.com.br/wp-
content/uploads/2015/01/500px-
IOSNotificationCenter.png)

Central de notificaes no iOS

(http://www.tdevrocks.com.br/wp-
content/uploads/2015/01/Android_Notification_Center.png)

Central de Notificaes no Android

Caso seja necessrio, ainda possvel fazer o cancelamento delano sistema operacional chamando o mtodo CancelNotification como
pode ser visto abaixo.

1 NotificationCenter1.CancelNotification('MyNotification'); ?

Notificao Imediata
Caso seu aplicativo necessite notificar o usurio imediatamente sobre uma determinada informao ou simplesmente seja necessrio
j incluir o alerta direto na Central de Notificaes, voc pode utilizar o mtodo PresentNotification (j utilizado anteriormente)como
apresentamos a seguir.

Insira um novo SpeedButton em tela e codifique-o como mostrado naListagem 3.

1 procedureTForm1.SpeedButton3Click(Sender:TObject); ?
2 var
3 MyNotification:TNotification;
4 begin
5 MyNotification:=NotificationCenter1.CreateNotification;
6 try
7 MyNotification.Name:='MyNotification';
8 MyNotification.AlertBody:=edtMensagem.Text;
9 MyNotification.Number:=edtNumber.Text.ToInteger;
10 MyNotification.EnableSound:=True;
11
12 NotificationCenter1.PresentNotification(MyNotification);
13 finally
14 MyNotification.DisposeOf;
15 end;
16 end;

Listagem3.NotificaoImediata

Perceba a semelhana com aListagem 2. Na verdade apenas retiramos o valor da propriedade FireDate e chamamos o mtodo
PresentNotification ao invs de ScheduleNotification. Isso j basta para mandarmos a notificao para a Central de Notificaes e
ainda alteramos o nmero de notificaes no cone. Em outras palavras, poderamos mesclar tudo que aprendemos at aqui e fazer um
nico mtodo atualizando o usurio com o mximo de informaes.

Banner deNotificao ou Alerta de Notificao?


Por padro, seu aplicativo ir mostrar um banner de notificao. Mas, somente no iOS, possvel utilizarmos um Alerta de Notificao
que pode ser clicado pelo usurio executando uma ao pr-determinada (Figura 1). Para isso, o usurio final dever configurar como
deseja receber as notificaes em seu aplicativo (Figura 2).

(http://www.tdevrocks.com.br/wp-content/uploads/2015/01/376px-

IOSNotificationAlert.png)

Figura 1. Notificao em forma de janela no iOS

(http://www.tdevrocks.com.br/wp-content/uploads/2015/01/460px-

IOSNotificationCenterOption.png)

Figura 2. Janela de configurao do tipo de alerta no iOS

Para que possamos executar uma determinada ao caso o usurio clique na caixa de dilogo, precisamos configurar o campo
AlertAction da notificao e informar qual o boto que executar a ao. Insira mais um ltimo boto em tela e codifique-o como
naListagem 4. Modifique o Text do boto para Executar.

1 procedureTForm1.LaunchClick(Sender:TObject); ?
2 var
3 MyNotification:TNotification;
4 begin
5 MyNotification:=NotificationCenter1.CreateNotification;
6 try
7 MyNotification.Name:='MinhaNotificacao';
8 MyNotification.AlertBody:=edtMensagem.Text;
9 MyNotification.Number:=edtNumber.Text.ToInteger;
10 MyNotification.AlertAction:='Launch';
11 MyNotification.HasAction:=True;
12 MyNotification.FireDate:=Now+EncodeTime(0,0,5,0);
13
14 NotificationCenter1.ScheduleNotification(MyNotification);
15 finally
16 MyNotification.DisposeOf;
17 end;
18 end;

Listagem 4. Execuo de ao pre-configurada

A grande diferena nesse mtodo que configuramos as propriedades AlertAction e HasAction da instncia de nossa notificao. Com
isso estaremos preparados para receber uma ao do usurio. E por falar em receber uma ao, precisaremos agora codificar o que
elaexecutar. Para isso acesse o evento OnReceiveLocalNotification do objeto NotificationCenter1. Codifique-o apenas incluindo um
ShowMessage nele como abaixo:

1 procedureTForm1.NotificationCenter1ReceiveLocalNotification(Sender:TObject; ?
2 ANotification:TNotification);
3 begin
4 ShowMessage('NotificaoClicada');
5 end;
5 end;
Execute a aplicao e teste-a. Nosso formulrio final dever se parecer com as Figuras 3 e 4.

(http://www.tdevrocks.com.br/wp-
content/uploads/2015/01/Figura4.png)

(http://www.tdevrocks.com.br/wp-content/uploads/2015/01/Figura5.png)

Concluso
Nesse tutorial aprendemos a usar o componente NotificationCenter que prov servios de notificaes para aplicativos iOS e Android.
Vimos que a curva de aprendizado para fazer uso de notificaes em aplicativos mveis bem baixa e de rpido aprendizado. Nos
vemos no prximo tutorial.

Fonte desse tutorial: DocWiki da Embarcadero


(http://docwiki.embarcadero.com/RADStudio/XE6/en/Mobile_Tutorial:_Using_Notifications_(iOS_and_Android))

#GoToDelphi

Compartilhe em suas redes sociais e ajude o blog a crescer.

22 5 6 4
Curtir Share Tweetar


AdrianoSantos

especialistaem
linguagensde

desenvolvimento,

EmbarcaderoMVP,possui+100artigose
(http://www.twitter.com/asrsantos)
vdeoaulaspublicadasemrevistase
(https://www.facebook.com/asrsantos)
websitesespecializados,exeditorchefedas
(http://br.linkedin.com/pub/adriano
revistasClubeDelphieWebMobile.
santos/9/342/54a)
AtualmenteDiretordeOperaesna
(https://plus.google.com/105531520799313928633)

(mailto:asrsantos@gmail.com)
startupGETIT!Technology.

7comentrios Classificarpor Principais

Adicionarumcomentrio...

LucasMarianoUniuv
comofaoparadispararumanotificaoapartirdeumadataehoraqueousuario
possacadastrar?
CurtirResponder25deoutubrode201518:48

WilliamBritoProgramadoratITECSoftware
Comopossoenviarasnotificaoesdeumservidorparaosdispositivosclientes?
CurtirResponder6desetembrode201516:25

WesleyBlancoTrabalhanaempresaComandaEletrnicaAgilizae
Noandroid,temcomofazeraquelasnotificaescomopesdebotes?
Obrigado
CurtirResponder29dejunhode201518:25

PauloHenriqueAndradeCoordenadordeSuporteatMastermaqSoftwares
SeriapossvelesseagendamentoverificarviaJSONsetemmensagem,caso
positivo,mostraroalerta?
CurtirResponder9demaiode201510:23

ThiagoDiasdaRochaProfessoratETECPrefeitoAlbertoFeres
Ecasoodispositivomvelforreiniciado?elepermanececomosdadosagendados
oulimpatudodamemria?
CurtirResponder24demarode201511:49

AdrianoSantosConsultorSnioratEmbarcaderoTechnologies
Mantmporqueficanosserviosdocelular
CurtirResponder 124demarode201512:54

ThiagoDiasdaRochaProfessoratETECPrefeitoAlbertoFeres
AdrianoSantosEstranho,fiztestesnoandroidesegravoumregistroele
dumalertanormalmente,segravooutroregistro,desligoocelulareligo
novamenteelenodaoalerta.EstouusandooXE7.
CurtirResponder24demarode201514:40

FlavioRosaAnalistaeDesenvolvedordeSistemasatSaikooSistemas
Adrianoessanotificaoservecomolembreteaserdisparadonoprprio
aparelho?Pelaaplicaomobileemrede,casoeuqueiraenviarumanotificao
paraoutronumerojnoserve,correto?
CurtirResponder 128dejaneirode201517:18

AdrianoSantosConsultorSnioratEmbarcaderoTechnologies
Exato.OquevocpodefazerutilizarnotificaesPush,masissoj
outroassunto.
CurtirResponder29dejaneirode201511:08

RodrigodeCarvalhoDesenvolvedoratPrioriTecnologiadaInformao
AdrianoSantosVocpossuialgumexemplocomPushNotification?
CurtirResponder 13defevereirode201510:10

TDevRocks
OiRodrigodeCarvalho,no,masumbomassunto.Voucolocarissona
listadetutoriais.
CurtirResponder4defevereirode201523:21

AdrianoSantosConsultorSnioratEmbarcaderoTechnologies
Noarmaisumtutorial
CurtirResponder28dejaneirode201516:12

FacebookCommentsPlugin

Comments are closed.

NEWSLETTER

Email*

Nome*

Cidade*

TPICOS RECENTES

Bate-papo sobre desenvolvimento de software (http://www.tdevrocks.com.br/2015/11/14/bate-papo-sobre-desenvolvimento-de-


software/)

Lojinha TDevRocks Agora sua chance de ajudar o blog (http://www.tdevrocks.com.br/2015/11/05/lojinha-tdevrocks-agora-e-sua-


chance-de-ajudar-o-blog/)
Tutorial: Salvar foto no banco SQLite com Android e iOS 1/2 (http://www.tdevrocks.com.br/2015/10/05/tutorial-salvar-foto-no-banco-
sqlite-com-android-e-ios-12/)
Delphi: Conhea a histria da ferramenta mais atual que existe, h 20 anos! (http://www.tdevrocks.com.br/2015/10/02/delphi-conheca-
a-historia-da-ferramenta-mais-atual-que-existe-ha-20-anos/)

Tutorial: Mostrando o progresso de uma tarefa usando os componentes FGX (http://www.tdevrocks.com.br/2015/10/01/progresso-com-


fgx/)

DELPHI PARA ANDROID E IOS: DESENVOLVENDO APLICATIVOS MVEIS

(http://www.brasport.com.br/informatica-e-tecnologia/mobile/delphi-para-android-e-ios-

desenvolvendo-aplicativos-moveis/)

ARQUIVO

janeiro 2015
D S T Q Q S S

1 2 3

8
4 5 6 7 9 10
(http://www.tdevrocks.com.br/2015/01/08/)

11 12 13 14 15 16 17

18 19 20 21 22 23 24

28
25 26 27 29 30 31
(http://www.tdevrocks.com.br/2015/01/28/)

DEZ
FEV (HTTP://WWW.TDEVROCKS.COM.BR/2015/02/)
(HTTP://WWW.TDEVROCKS.COM.BR/2014/12/)

VDEO-AULAS

9/31 TDevRo...

[Fale Conosco] Contato (/contato-2/)

Related posts:

Tutorial: Criando Dez dicas para criar Vdeo: Delphi for Tutorial: Criando
menu pop-up no aplicaes Android meu app step-by-
Android e iOS 1/1 profissionais step Botes de
(http://www.tdevrocks.com.br/2013/08/15/video-
(http://www.tdevrocks.com.br/2014/12/23/tutorial-
(http://www.tdevrocks.com.br/2014/02/18/dez- (http://www.tdevrocks.com.br/2014/12/15/tutorial-
criando-menu-pop- dicas-para-criar- delphi-for-android/) criando-meu-app-
2005-2015 TDevRocks. Todos
up-no-android-e-ios- os direitos reservados. TDevRocks marca registrada
aplicacoes- no Brasil e/ou outros pases.
step-step-botoes-de-
Created
11/) by Site5 WordPress Themes (http://www.s5themes.com/). Experts in WordPress
profissionais- Hosting (http://gk.site5.com/t/611)
hardware-p-1x/)
android-com-delphi-
xe5-e-firemonkey/)