Concrete Logo
Hamburger button

Tutorial: mensagens de push no Windows Azure

  • Blog
  • 12 de Fevereiro de 2015
Share

O Mobile Services do Windows Azure pode ser um importante aliado para sua aplicação Android. Neste post, vamos fazer um passo a passo de como criar um push para seu app usando a ferramenta. Vamos começar?

No seu Management Portal, clique no botão “novo”, indicado pela seta verde:

Passo 1

Depois, selecione computação, serviço móvel e clique na opção criar:

Passo 2

Nesta próxima tela você vai precisar especificar uma url para seu serviço móvel. Pode criar qualquer uma! No nosso exemplo, vamos criar: PushTestInAndroid.

A url vai ser validada e, caso o nome não esteja disponível, pode definir qualquer outro nome de sua escolha.

A próxima opção é o banco de dados que o serviço móvel vai utilizar para persistir os dados. Como não possuo nenhum banco de dados neste exemplo, vou selecionar a opção “Criar um banco de dados SQL 20 MB gratuito”. Caso você não possua a opção do gratuito selecione a opção “Criar uma nova instância do banco de dados SQL”.

Depois disso, selecionamos a região em que vai estar nosso serviço móvel e qual linguagem usaremos para gerenciar nosso back-end. Vamos escolher Javascript, e aí é só avançar:

Passo 3

No próximo passo, vamos escolher o nome do nosso banco de dados para nosso serviço móvel e o servidor que no qual ele vai se encontrar.

Como ainda não possuímos nenhum servidor, vamos selecionar a opção “novo servidor do banco de dados SQL” e vamos popular os campos de Nome de Logon do servidor, senha e região onde o servidor vai se encontrar. Caso seja selecionada uma região diferente de seu serviço móvel o Azure vai lhe dar um “warning” de que os mesmos estão em regiões diferentes. Selecionamos a mesma região de nosso serviço móvel:

Passo 4

E em apenas alguns minutos levantamos nosso serviço móvel e banco de dados! Se quiser saber se seu serviço móvel está de pé, é só visualizar a coluna “STATUS”.

O próximo passo é implementar o back-end do nosso serviço para realizar o push.

Neste exemplo, vamos realizar um push quando acontecer um POST em uma tabela no nosso serviço móvel.

Para fazer isso, clique no nome do seu serviço móvel. No nosso exemplo, “PushTestInAndroid”:

Passo 5

No home do nosso serviço móvel possuímos várias áreas para gerenciamento. Vamos selecionar no menu superior a opção “DADOS”:

Passo 6

Agora, é só clicar em “ADICIONAR UMA TABELA”. No campo “NOME DA TABELA”, vamos usar o nome “message”. Para as outras opções podemos manter o padrão, e depois disso clicamos em “check” no canto inferior direito:

Passo 7

Excelente! Vemos agora que foi criada uma tabela chamada “message”. Se clicarmos nesta tabela veremos quatro opções no menu superior. Clicamos em “SCRIPT”:

Passo 8

Após o clique, veremos abaixo uma combobox de “Operação”, que vai estar na opção “Inserir”, e logo abaixo o nosso código de back-end, que é executado antes de inserir. Atualmente o código é apenas este:

InsertInitCod

Vamos modificar o código para que, quando um novo item for inserido em nossa tabela “message”, enviemos um push para o Google Cloud Message, que vamos configurar no próximo passo:

InsertNewCod

Neste código, criamos um object chamado Payload com os dados que recebemos do nosso POST. Antes de inserirmos o dado na tabela nós enviamos este dado por Push, o que garante que só inserimos na tabela se o dado for enviado via Push para o Google Cloud Message.

Após implementarmos nosso back-end precisaremos configurar nosso Google Cloud Message para receber nossa mensagem, o que é muito simples. Basta resgatar sua API Key do GCM, voltar ao portal do Azure, e na home do nosso Serviço Móvel escolher a opção “ENVIAR POR PUSH”:

Passo 9

Após clicarmos no menu no fim da página, inserimos nossa API Key do GCM na área com o nome “Confirgurações do Google Cloud Messaging”:

Passo 10

E pronto! Nosso serviço móvel no Azure já está pronto para enviar Pushs para nosso app Android!

E agora o que falta? O nosso app!

Vamos utilizar o Android Studio 1.0 para criarmos um app que receba as mensagens. Se você não possui o Android Studio, pode baixá-lo neste link.

Seguindo, inicializamos nosso Android Studio e clicamos em “Start a new Android Studio project”:

Passo 11

Agora, damos um nome para a nossa aplicação e criamos sua Company Domain. Como é somente um exemplo, vou criar o Aplication name como: “MyReceivePush” e a Company Domain como: “rafaelmiceli.MyReceivePush.com”:

Passo 12

Selecione a API 15 do Android e siga:

Passo 13

Como é uma aplicação para fim de testes, criaremos apenas uma Blank Activity.

Passo 14

Por fim, vamos manter os valores default da criação da nossa activity e clicamos em Finish:

Passo 15

Antes de implementar o recebimento do Push precisaremos referenciar os .jar:

notifications-1.0.1

notification-hubs-0.4

Que podem ser encontrados neste link e devem ser adicionados à pasta lib do nosso projeto Android.

Depois disso, vamos precisar inserir o seguinte código em nosso AndroidManifest.xml:

Passo 17

E este código em nosso build.gradle (Moduel: app):

Passo 18

Agora vamos à nossa MainActivity:

Passo 16

E colocamos o seguinte código:

Passo 19

Perceba que precisaremos do nosso número do projeto no Google Cloud Message em nosso código, além da string de conexão do nosso ServiceBus no Azure. Vou mostrar como pegar a string de conexão.

Primeiro, vamos novamente ao nosso portal no Azure. Lá, acessamos no nosso serviço móvel o menu “ENVIAR POR PUSH”:

Vamos selecionar o Service Bus do nosso teste de push:

Service Buss Paso 1

Nesta página clicamos em “Exibir Cadeia de Conexão”:

Service Buss Paso 2

E vamos copiar nossa cadeia de conexão de nome “DefaultListenSharedAccessSignature”:

Service Buss Paso 3

Com isso, voltamos à nossa aplicação Android, e em nosso MainActivity atribuímos à variável conncetionString o valor que acabamos de copiar. Por parâmetro, o nome do nosso ServiceBus Hub é “pushtestinandroidhub”.

Após isso, vamos criar uma classe chamada MyHandler, clicando com o botão direito em cima do nosso namespace com.myreceivepush:

Passo 20 Passo 21

E vamos implementá-la da seguinte forma:

Passo 22

Agora, precisamos testar o recebimento do nosso Push enviando um POST ao nosso endereço do Serviço Móvel que criamos no Azure. Para isso, podemos criar o POST com o Postman ou o Fiddler.

Postman:

postman post

Fiddler:

fiddler post

Após o envio do POST, veremos que uma nova linha foi adicionada na tabela do nosso serviço móvel e que recebemos um push em nosso app.

Ufa! É isso galera, se tiver qualquer dúvida, sugestão ou se deu alguma coisa errado no meio do caminho, é só deixar abaixo o seu comentário. Até a próxima!