arleyandrada / PushClient

FREE and Open Source - Titanium PushClient Module
Other
44 stars 17 forks source link

Hi #23

Closed somefakeuser closed 9 years ago

somefakeuser commented 9 years ago

Hi,

I'm seeing the pushclient at market place.

How does it work for push notifications from outside? Does it work? How can i sent from my server?

The app need to run as service or something specific?

Regards

arleyandrada commented 9 years ago

Hi,

My pushclient module works on the mobile device within your Titanium app. You can't use my module on desktop or web apps.

Take a look at following Apple site to understand about Push Notification architecture:

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html

To send push notifications you need to create your own "provider" or use some existing providers as a service (Push.com, ACS, Amazon SNS, etc...).

To create your own push notification provider you can use some open source libraries like:

.Net = https://github.com/arleyandrada/PushSharp PHP = https://github.com/richsage/RMSPushNotificationsBundle Node.js = https://github.com/Smile-SA/node-pushserver

Regards,

Arley

somefakeuser commented 9 years ago

Hi Arley,

Pode falar comigo em português :D.

Definitivamente, vou comprar seu módulo.

Só para finalizar:

Se eu entendi direito, seu módulo registra o ID para receber push messages. O servidor fica por nossa conta, ou seja, teremos que fazer a integração com a Apple e com o GCM. Correto? Você mencionou o Amazon SNS. Ele tem integração com Estes serviços?

Tem algum exemplo.

Grande abraço.

arleyandrada commented 9 years ago

Olá,

Sim, meu módulo é responsável por obter o registro do dispositivo, mas também trata da manipulação dos eventos específicos de cada plataforma para identificar corretamente o momento que a notificação push é recebida, além de disponibilizar uma interface única para usuários do Titanium.

Sim, o servidor fica por conta de vocês.

A título de curiosidade, estou trabalhando em um projeto pessoal que irá fornecer um servidor gratuito e ilimitado, equivalente ao que é oferecido pelos provedores que citei anteriormente, mas ainda não está pronto para uso.

Na documentação do meu módulo você encontrará um exemplo de integração de um app com o serviço Parse.com (para registro do ID do dispositivo), porém não tenho exemplos de outros provedores.

Infelizmente também não tenho exemplos da integração de um servidor próprio com os provedores existentes.

Qualquer dúvida me retorne.

Atenciosamente,

Arley

somefakeuser commented 9 years ago

Muito obrigado pelo esclarecimento.

Grande abraço.

somefakeuser commented 9 years ago

Oi Arley,

Uma dúvida. Montei um serviço de entrega de push message. Teste e já funcionou.

Uma dúvida. O push notification chegou no applicativo , mas não exibiu nenhum notificação no dispositivo. O push sempre chega "oculto" no aplicativo e a gente é responsável por criar a visualização no sistema?

Pergunta de leigo, pois eu usava uma plataforma que já mostrava a notificação no celular. Inclusive configurando a cor do bliking light.

Pode me tirar esta dúvida?

Abs.

arleyandrada commented 9 years ago

Olá,

Por padrão, semelhante ao que ocorre na maior parte dos componentes / módulos que tratam notificações push, nenhuma notificação é exibida se o app estiver em primeiro plano (foreground).

Estando em foreground ao receber uma notificação, se desejar que ela seja exibida na janela de notificações, você deverá criar e comandar a exibição de uma notificação local "manualmente".

Se o app não estiver em foreground, também por padrão, a notificação com todas suas características de som, luzes, etc... (conforme o conteúdo do payload) será exibida automaticamente.

Este é o comportamento que você deve encontrar ao utilizar o meu módulo.

Um abraço,

Arley

somefakeuser commented 9 years ago

Olá ,

Eu já estou com seu módulo, porem, quando mando uma mensagem, mesmo o app estando em background, nenhuma mesagem de notificação no status bar aparece. Quando volto para o app vejo os alerts 'silent mode' lá.

Sabe como posso mostrar estas notificações na barra do IOS e Android?

arleyandrada commented 9 years ago

Não é necessário fazer nada especial para que as notificações sejam exibidas na barra do iOS ou do Android.

Qual o payload JSON que você está enviando para o dispositivo?

No mínimo você precisa ter um atributo "alert" com a mensagem textual a ser exibida.

Veja no código de exemplo que acompanha meu módulo o detalhamento dos atributos que devem ser utilizados no payload que é enviado pelo seu servidor.

somefakeuser commented 9 years ago

Arley,

Desculpe. Tô usando o curl e o payload estava indo string ao invés de json. Funcionou!

Obrigado pelo suporte.

Abs.

somefakeuser commented 9 years ago

Arley,

Uma outra dúvida. Estou tentando fazer a luz piscar no Android. Existe alguma documentação do seu módulo para saber quais constantes das "flags" ele possui?

Abs.

arleyandrada commented 9 years ago

Esta informação consta no código de exemplo que acompanha o módulo:

// Notification properties:
// "alert" (String) to text message - or "text" to Android
// "sound" (String) to sound file to play - "default" to Android default sound
// "badge" (Int) to badge count indicator
// "content-available" (Int) to iOS background notification
// -->> Requires set remote-notification UIBackgroundModes in tiapp.xml
// "notificationId" (Int) to Android notification identification
// "title" (String) to override Android notification title - default app name
// "ticker" (String) to override Android ticker message - default alert message
// "vibrate" (Boolean) to use default Android device vibration
// "lights" (Boolean) to use default Android device lights
// "largeIcon" (String) set large icon to Android notification from local file or url
// "category" (String) to iOS 8 interactive notification
somefakeuser commented 9 years ago

Arley,

Obrigado, porem pelo que entendi é boolean. Como troco a cor do led?

arleyandrada commented 9 years ago

Infelizmente ainda não é possível especificar a cor do led através do meu módulo.

somefakeuser commented 9 years ago

E a luz? Só pisca uma vez? Não fica piscando até desbloquear?

arleyandrada commented 9 years ago

Fica piscando até que o usuário "faça algo" em relação à notificação exibida.

somefakeuser commented 9 years ago

Ok,

Última dúvida. Prometo. Como removo os alertas anteriores? Minha aplicação tem comunicação quase constante. Toda vez que eu enviasse um pushmessage, gostaria de eliminar a notificação anterior e não empilhar.

Qual seria o comando. Procurei na documentação e não achei.

arleyandrada commented 9 years ago

No iOS você não configurar este comportamento (ou não encontrei) pois a exibição da notificação é controlada pelo sistema operacional, independentemente de qual módulo você utilizar.

No Android seria possível ter esta configuração, porém é um recurso que eu não disponibilizei.

Para o Android porém você pode utilizar um "hack" que é enviar a notificação push sempre com o mesmo "notificationId". Isso deve funcionar, mas você terá um comportamento no Android que não conseguirá reproduzir no iOS.

Fique tranquilo para perguntar o que precisar.

somefakeuser commented 9 years ago

Arley,

Seu hack funcionou.

Obrigado pela ajuda e espero que este módulo tenha mais opções de customização em um futuro próximo.

Grande abs.