Monday 3 July 2017

Sender Gcm Forex


O Firebase Cloud Messaging (FCM) é a nova versão do GCM. Ele herda a infra-estrutura GCM confiável e escalável, além de novos recursos. Consulte as Perguntas frequentes para saber mais. Se você estiver integrando mensagens em um novo aplicativo, comece com o FCM. Os usuários do GCM são altamente recomendados para atualizar para o FCM, para se beneficiar dos novos recursos do FCM hoje e no futuro. Configurar uma aplicação de cliente GCM no Android Um cliente Android do Google Cloud Messaging (GCM) é um aplicativo cliente que é executado em um dispositivo Android. Para escrever seu código de cliente, recomendamos que você use a API do GoogleCloudMessaging e o Android Studio com o Gradle. Aqui estão os requisitos para a execução de um cliente GCM Android: o GCM requer dispositivos que executem o Android 2.2 ou superior que também tenham o aplicativo Google Play Store instalado ou um emulador executando o Android 2.2 com as APIs do Google. Observe que você não está limitado à implantação de seus aplicativos Android através do Google Play Store. No entanto, se você deseja continuar usando novos recursos GCM que são distribuídos através dos Serviços do Google Play, o dispositivo deve estar executando o Android 2.3 ou superior, ou você pode usar um emulador executando o Android 2.3 com as APIs do Google. Em dispositivos Android, o GCM usa uma conexão existente para os serviços do Google. Para dispositivos pré-3.0, isso exige que os usuários configurem suas contas do Google em seus dispositivos móveis. Uma conta do Google não é um requisito em dispositivos com Android 4.0.4 ou superior. Uma implementação completa do GCM exige tanto a implementação do cliente como a implementação do servidor. Para obter mais informações sobre como implementar o lado do servidor, consulte Sobre o Servidor de Conexão GCM. As seções a seguir orientam você nas etapas envolvidas na escrita de uma aplicação GCM no lado do cliente no Android. No mínimo, um aplicativo cliente GCM deve incluir o código para se registrar (e assim obter um token de registro) e um receptor para receber mensagens enviadas pelo GCM. Para aplicativos existentes que estendem um WakefulBroadcastReceiver. O Google recomenda a migração para GCMReceiver e GcmListenerService. Para migrar: no manifesto do aplicativo, substitua o GcmBroadcastReceiver com com. google. android. gms. gcm. GcmReceiver e substitua a declaração de serviço atual que estende o IntentService ao novo GcmListenerService Remova a implementação BroadcastReceiver do seu código de cliente Refator o serviço IntentService atual Implementação para usar o GcmListenerService Para obter detalhes, consulte o exemplo de manifesto e exemplos de código nesta página. Crie um projeto de API. Novos projetos do Cloud Messaging devem criar um projeto Firebase no console Firebase. Neste processo, você gerará um arquivo de configuração e credenciais para seu projeto. Crie um projeto Firebase no console Firebase. Se você ainda não possui um. Se você já possui um projeto do Google existente associado ao seu aplicativo para dispositivos móveis, clique em Importar o Google Project. Caso contrário, clique em Criar novo projeto. Clique em Adicionar Firebase ao seu aplicativo Android e siga as etapas de configuração. Se você estiver importando um projeto do Google existente, isso pode acontecer automaticamente e você pode simplesmente baixar o arquivo de configuração. Quando solicitado, digite o nome do pacote de aplicativos. É importante inserir o nome do pacote que seu aplicativo está usando, só pode ser configurado quando você adiciona um aplicativo ao seu projeto Firebase. No final, você baixará um arquivo google-services. json. Você pode baixar este arquivo novamente a qualquer momento. Se você não tiver feito isso, copie isso na pasta do módulo de projetos, normalmente, no aplicativo. Observe a chave do servidor disponível no seu novo projeto nas configurações do Projeto Cloud Messaging. Armazene esta chave com segurança no servidor do seu aplicativo. Você precisará enviar mensagens a jusante para o aplicativo cliente. Adicionar o arquivo de configuração ao seu projeto O plug-in do Google Services para o Gradle analisa as informações de configuração do arquivo google-services. json. Adicione o plugin ao seu projeto, atualizando seu build. gradle de nível superior e seus arquivos build. gradle do nível do aplicativo da seguinte maneira: Adicione a dependência ao build. gradle do seu nível de projeto. Adicione o plugin ao build. gradle do seu nível de aplicativo. Configurar serviços do Google Play Para escrever seu aplicativo cliente, use a API do GoogleCloudMessaging. Para usar esta API, você deve configurar seu projeto para usar o SDK de serviços do Google Play, conforme descrito em Configurar o SDK dos Serviços do Google Play. Quando você adiciona a biblioteca GCM Play Services ao seu projeto, certifique-se de adicioná-lo com recursos. Conforme descrito em Configurar o SDK dos Serviços do Google Play. O ponto-chave é que você deve fazer referência à biblioteca. Em seguida, adicionar um arquivo. jar ao seu projeto não funcionará. Se você estiver usando o Android Studio, esta é a seqüência de caracteres para adicionar à seção de dependência do arquivo build. gradle de seus aplicativos: Este exemplo mostra como fazer referência à biblioteca específica do GCM, que é a única biblioteca que você precisa para suportar o desenvolvimento do aplicativo GCM. Use isso em vez da biblioteca abrangente do Play Services e certifique-se de referenciar a versão mais recente. Edite seu manifesto de aplicativos Adicione o seguinte ao seu manifesto de aplicativos: sua ltapplication-package-namegt quot. permission. C2DMESSAGEquot permissão para impedir que outros aplicativos Android se registrem e recebam mensagens de aplicativos Android. O nome da permissão deve coincidir exatamente com este padrão. No entanto, o aplicativo Android não receberá as mensagens. Uma declaração do GcmReceiver. Que lida com mensagens enviadas do GCM para sua aplicação. Como este serviço precisa de permissão para receber mensagens do GCM, adicione com. google. android. c2dm. permission. SEND ao destinatário. Uma declaração do GcmListenerService. Que permite vários aspectos do tratamento de mensagens, como a detecção de diferentes tipos de mensagens a jusante, a determinação do status de envio a montante e a exibição automática de notificações simples no nome dos aplicativos. Um serviço que expande InstanceIDListenerService. Para lidar com a criação, rotação e atualização de tokens de registro. Opcionalmente, a permissão android. permission. WAKELOCK se o aplicativo precisar manter o processador do sono quando uma mensagem for recebida. Se o recurso GCM for crítico para a função de aplicativos Android, certifique-se de configurar o android: minSdkVersionquot8quot ou superior no manifesto. Isso garante que o aplicativo Android não possa ser instalado em um ambiente no qual ele não pode ser executado corretamente. Aqui está um exemplo de manifesto que suporta o GCM: se você quiser suportar dispositivos KitKat pré-4.4, adicione a seguinte ação à declaração de filtro de intenção para o receptor: ltaction android: namequotcom. google. android. c2dm. intent. REGISTRATIONquot gt Check for Os aplicativos APK do Google Play Services que dependem do SDK do Play Services sempre devem verificar o dispositivo para um APK de serviços do Google Play compatível antes de acessar os recursos de serviços do Google Play. Recomenda-se fazer isso em dois lugares: nas principais atividades no métodoCreate () e no seu método onResume (). O check-in onCreate () garante que o aplicativo não pode ser usado sem uma verificação bem-sucedida. O check-in onResume () garante que, se o usuário retornar ao aplicativo executado por outros meios, como por meio do botão Voltar, a verificação ainda é executada. Se o dispositivo não tiver uma APK de serviços do Google Play compatível, seu aplicativo pode chamar o GooglePlayServicesUtil. getErrorDialog () para permitir que os usuários baixem o APK da Google Play Store ou habilite-o nas configurações do sistema de dispositivos. Para um exemplo de código, consulte Configurar o SDK dos Serviços do Google Play. Obter um token de registro Um aplicativo Android precisa se registrar nos servidores de conexão GCM antes que ele possa receber mensagens. Quando um aplicativo é registrado, ele recebe um token de registro e o envia para o servidor do aplicativo. O aplicativo cliente deve armazenar um valor booleano que indique se o token de registro foi enviado para o servidor. O Google fornece a ID da Instância API para lidar com a criação e atualização de tokens de registro. Para usar esta API, inclua InstanceIDListenerService no manifesto: Para obter um token, chame instanceID. getToken. Fornecendo o ID do remetente dos servidores da aplicação e definindo o escopo para GoogleCloudMessaging. INSTANCEIDSCOPE. Não invoque esse método no segmento principal em vez disso, use um serviço que estenda o Serviço de Intenção, conforme mostrado: Uma vez que você recebeu seu token de registro, certifique-se de enviá-lo ao seu servidor. Os serviços de ouvinte no método TokenRefresh devem ser invocados se o token de registro GCM tiver sido atualizado: uma vez chamado onTokenRefresh, use InstanceID. getToken () para obter um novo token de registro e, em seguida, envie o novo token para o seu servidor de aplicativos. Veja a referência da API ID ID da instância para detalhes completos nesta API. O registro GCM () foi obsoleto. Use InstanceID para executar o gerenciamento geral de registro GCM. Próximas etapas Uma vez que o aplicativo cliente está conectado, você está pronto para começar a receber mensagens a jusante e enviar mensagens a montante. Para obter mais informações sobre suas opções com GCM, consulte também os guias para mensagens de tópicos e mensagens de grupo de dispositivos, bem como as informações de referência para as APIs do cliente e do servidor. Exceto quando mencionado de outra forma, o conteúdo desta página está licenciado sob a licença Creative Commons Attribution 3.0. E as amostras de código são licenciadas sob a Licença Apache 2.0. Para obter detalhes, consulte as Políticas do site. Java é uma marca registrada da Oracle e de suas afiliadas. 23, 2016 Veja vídeos do GCM no YouTube Explore nossos aplicativos de exemplo ou garanta que eles criem suas próprias Perguntas de perguntas com as notificações de tagPush do Google-cloud-messaging na Open Web Matt é um contribuinte para os Fundamentos da Web. Aviso: esta publicação no blog está recebendo um pouco velho. Se você está procurando aprender mais sobre implementar push, confira nossa documentação do Web Push Notifications. Se você perguntar a um quarto de desenvolvedores quais recursos do dispositivo móvel estão faltando na web, as notificações push sempre estão no topo da lista. As notificações de envio permitem que seus usuários optem por atualizações atempadas dos sites que amam e permitem que você reative efetivamente com conteúdo personalizado e envolvente. A partir da versão 42 do Chrome, a API Push e a API de notificação estão disponíveis para desenvolvedores. A API Push no Chrome depende de algumas peças de tecnologia diferentes, incluindo Manifests de aplicativos da Web e Trabalhadores de serviços. Neste post, observe cada uma dessas tecnologias, mas apenas o mínimo necessário para que as mensagens push sejam executadas e funcionando. Para obter uma melhor compreensão de alguns dos outros recursos dos manifestos e das capacidades off-line dos trabalhadores do serviço, verifique os links acima. Também analisaremos o que será adicionado à API em futuras versões do Chrome e, finalmente, teremos uma FAQ. Implementando o Push Messaging para o Chrome Esta seção descreve cada etapa que você precisa para concluir para suportar o envio de mensagens em seu aplicativo da Web. Registrar um trabalhador de serviço Existe uma dependência de ter um trabalhador de serviço para implementar mensagens push para a web. A razão para isso é que quando uma mensagem push é recebida, o navegador pode iniciar um trabalhador de serviço, que é executado em segundo plano, sem abrir uma página, e enviar um evento para que você possa decidir como lidar com essa mensagem push. Abaixo está um exemplo de como você registra um trabalhador de serviço em seu aplicativo da Web. Quando o registro foi concluído com sucesso, chamamos inicialiseState (). Que bem cobrem em breve. O manipulador de clique do botão assina ou cancela o usuário para enviar mensagens. IsPushEnabled é uma variável global que simplesmente rastreia se o envio de mensagens está atualmente inscrito ou não. Estes serão referenciados em todos os trechos de código. Em seguida, verificamos se os trabalhadores do serviço são suportados antes de registrar o arquivo service-worker. js que possui a lógica para lidar com uma mensagem push. Aqui, estamos simplesmente informando o navegador de que este arquivo JavaScript é o serviço técnico para o nosso site. Configurar o estado inicial Uma vez que o trabalhador do serviço está registrado, precisamos configurar nosso estado de IU. Os usuários esperam que uma UI simples habilite ou desative mensagens push para seu site, e eles esperam que ele fique atualizado com as mudanças que ocorrem. Em outras palavras, se eles ativarem mensagens push para seu site, saia e volte uma semana depois, sua UI deve destacar que as mensagens push já estão habilitadas. Você pode encontrar algumas diretrizes UX neste documento. Neste artigo, deve se concentrar nos aspectos técnicos. Neste ponto, você pode estar pensando que existem apenas dois estados para lidar, ativar ou desativar. No entanto, existem alguns outros estados envolvendo notificações que você precisa levar em consideração. Há uma série de APIs que precisamos verificar antes de habilitar nosso botão, e se tudo for suportado, podemos habilitar nossa UI e definir o estado inicial para indicar se o envio de mensagens está inscrito ou não. Como a maioria dessas verificações faz com que nossa UI seja desativada, você deve definir o estado inicial como desativado. Isso também evita qualquer confusão se houver um problema com suas páginas de JavaScript, por exemplo, o arquivo JS não pode ser baixado ou o usuário desativou o JavaScript. Com este estado inicial, podemos realizar as verificações descritas acima no método initialiseState (), ou seja, após o registro do nosso trabalhador de serviço. Uma breve visão geral dessas etapas: verificamos se o showNotification está disponível no protótipo do ServiceWorkerRegistration. Sem ele, não seremos capazes de mostrar uma notificação do nosso trabalhador de serviço quando uma mensagem push for recebida. Verificamos qual é a notificação de Notificação atual para garantir que ela não tenha sido negada. Uma permissão negada significa que você não pode mostrar notificações até que o usuário altere manualmente a permissão no navegador. Para verificar se o envio de mensagens é suportado, verificamos se o PushManager está disponível no objeto da janela. Finalmente, usamos pushManager. getSubscription () para verificar se já temos uma assinatura ou não. Se o fizermos, enviamos os detalhes da assinatura para o nosso servidor para garantir que tenhamos as informações corretas e configuremos a UI para indicar que o envio de mensagens já está ativado ou não. Bem, veja quais detalhes existem no objeto de inscrição mais adiante neste artigo. Esperamos até que navigator. serviceWorker. ready esteja resolvido para verificar uma assinatura e para habilitar o botão porque é somente depois que o trabalhador do serviço está ativo que você pode se inscrever para enviar mensagens. O próximo passo é lidar quando o usuário quiser habilitar mensagens push, mas antes que possamos fazer isso, precisamos configurar um projeto do Google Developer Console e adicionar alguns parâmetros ao nosso manifesto para usar o Firebase Cloud Messaging (FCM). Anteriormente conhecido como Google Cloud Messaging (GCM). Faça um projeto no console do desenvolvedor da Firebase O Chrome usa o FCM para lidar com o envio e a entrega de mensagens push, no entanto, para usar a API FCM, você precisa configurar um projeto no Firebase Developer Console. As seguintes etapas são específicas para o Chrome, Opera para Android e o navegador Samsung, eles usam o FCM. Bem, discuta como isso funcionaria em outros navegadores mais tarde no artigo. Crie um novo projeto de desenvolvedor Firebase Para começar com você precisa criar um novo projeto no console. firebase. google clicando no Criar novo projeto. Adicione um nome de projeto, crie o projeto e você será levado para o painel do projeto: a partir deste painel, clique na engrenagem ao lado do nome do projeto no canto superior esquerdo e clique em Configurações do projeto. Na página de configurações, clique na guia Mensagens em nuvem. Esta página contém a chave da API para mensagens push, que bem utilizam mais tarde, e a identificação do remetente que precisamos colocar no aplicativo da Web se manifesta na próxima seção. Adicionar um manifesto de aplicativo da Web Para enviar, precisamos adicionar um arquivo de manifesto com um campo gcmsenderid, para obter a inscrição de envio para ter sucesso. Este parâmetro só é necessário no Chrome, Opera para Android e no Navegador da Samsung, para que eles possam usar FCM GCM. O gcmsenderid é usado por esses navegadores quando se inscreve em um dispositivo de usuários com o FCM. Isso significa que a FCM pode identificar o dispositivo de usuários e certificar-se de que sua ID do remetente corresponde à chave da API correspondente e que o usuário permitiu que seu servidor enviasse mensagens de envio. Abaixo está um arquivo de manifesto super-simples: Você precisará definir o valor gcmsenderid para o ID do remetente do seu Projeto Firebase. Depois de salvar seu arquivo de manifesto em seu projeto (manifesto. json é um bom nome), faça referência ao seu HTML com a seguinte etiqueta no cabeçalho da sua página. Se você não adicionar um manifesto na web com esses parâmetros, você obterá uma exceção quando tentar subscrever o usuário para enviar mensagens, com o erro Falha no registro - sem identificação do remetente fornecido ou Falha no registro - permissão negada. Inscreva-se para Push Messaging Agora que você obteve um conjunto de manifesto, você pode voltar para seus sites de JavaScript. Para se inscrever, você deve chamar o método subscribe () no objeto PushManager, que você acessa através do ServiceWorkerRegistration. Isso pedirá ao usuário que dê a sua origem permissão para enviar notificações push. Sem essa permissão, você não poderá se inscrever com sucesso. Se a promessa retornada pelo método subscribe () for resolvida, você receberá um objeto PushSubscription que conterá um ponto final. O ponto final deve ser salvo em seu servidor para cada usuário, uma vez que você precisará deles para enviar mensagens push em uma data posterior. O código a seguir subscreve o usuário para enviar mensagens: neste ponto, seu aplicativo da Web está pronto para receber uma mensagem push, embora nada aconteça até que possamos adicionar um ouvinte de evento push ao nosso arquivo do serviço técnico. Trabalhador de serviço Pressione o ouvinte de eventos Quando uma mensagem de envio é recebida (bem, fale sobre como enviar realmente uma mensagem de envio na próxima seção), um evento de envio será enviado no seu trabalhador de serviço, em que ponto você precisará exibir uma notificação. Este código registra um ouvinte de evento push e exibe uma notificação com um título predefinido, texto do corpo, ícone e uma etiqueta de notificação. Uma sutileza para destacar com este exemplo é o método event. waitUntil (). Este método leva uma promessa e prolonga a vida útil de um manipulador de eventos (ou pode ser pensado como manter o trabalhador de serviço vivo), até que a promessa seja resolvida. Neste caso, a promessa passada para event. waitUntil é a promessa retornada do showNotification (). A etiqueta de notificação atua como um identificador para notificações únicas. Se enviarmos duas mensagens push para o mesmo ponto final, com um curto atraso entre elas e exibir notificações com a mesma tag, o navegador exibirá a primeira notificação e a substituirá pela segunda notificação quando a mensagem push for recebida. Se você quer mostrar várias notificações de uma só vez, use uma etiqueta diferente ou nenhuma etiqueta. Bem, veja um exemplo mais completo de mostrar uma notificação mais tarde nesta publicação. Por enquanto, vamos manter as coisas simples e ver se enviar uma mensagem push mostra esta notificação. Enviando uma mensagem de envio, assinamos mensagens push e nosso trabalhador de serviço está pronto para mostrar uma notificação, então é hora de enviar uma mensagem push através do FCM. Isso só é aplicável aos navegadores usando o FCM. Quando você envia a variável PushSubscription. endpoint ao seu servidor, o ponto final para FCM é especial. Tem um parâmetro no final do URL que é um registro. Um exemplo de ponto final seria: O registro seria: Isto é específico para navegadores usando o FCM. Em um navegador normal você simplesmente obteve um ponto final e você chamaria esse ponto final de uma maneira padrão e funcionaria independentemente do URL. O que isso significa é que, no seu servidor, você precisará verificar se o ponto final é para FCM e, se for, extrair o registro. Para fazer isso em Python, você poderia fazer algo como: Uma vez que você obteve o ID de registro, você pode fazer uma chamada para a FCM API. Você pode encontrar documentos de referência na FCM API aqui. Os principais aspectos a serem lembrados ao chamar o FCM são: Um cabeçalho de autorização com um valor de keyltYOURAPIKEYgt deve ser configurado quando você chama a API, onde ltYOURAPIKEYgt é a chave API do projeto Firebase. A chave da API é usada pela FCM para encontrar o ID do remetente apropriado, assegure-se de que o usuário tenha dado permissão para seu projeto e, finalmente, assegurando que o endereço IP dos servidores esteja listado na lista branca para esse projeto. Um cabeçalho Content-Type apropriado de applicationjson ou applicationx-www-form-urlencodedcharsetUTF-8 dependendo se você envia os dados como JSON ou dados do formulário. Uma série de registros - estes são os IDs de registro que você extraiu dos pontos finais de seus usuários. Por favor, confira os documentos sobre como enviar mensagens push do seu servidor, mas para uma verificação de sanidade rápida do seu trabalhador de serviço, você pode usar o CURL para enviar uma mensagem de envio para o seu navegador. Troque o ltYOURAPIKEYgt e ltYOURREGISTRATIONIDgt neste comando cURL com o seu próprio e execute-o de um terminal. Você deve ver uma notificação gloriosa: ao desenvolver sua lógica de backend, lembre-se de que o cabeçalho de autorização e o formato do corpo POST são específicos para o ponto final do FCM, portanto, detectar quando o ponto final é para FCM e adicionar condicionalmente o cabeçalho e formatar o corpo POST. Para outros navegadores (e, espero, o Chrome no futuro), você precisará implementar o Web Push Protocol. Uma desvantagem para a implementação atual da API Push no Chrome é que você não pode enviar dados com uma mensagem push. Não, nada. A razão para isso é que, em uma implementação futura, os dados da carga útil terão de ser criptografados em seu servidor antes de serem enviados para um ponto final de mensagens push. Desta forma, o ponto final, independentemente do fornecedor de empurrão, não poderá visualizar facilmente o conteúdo da mensagem push. Isso também protege contra outras vulnerabilidades, como uma baixa validação de certificados HTTPS e ataques man-in-the-middle entre seu servidor eo provedor push. No entanto, essa criptografia ainda não é suportada, portanto, entretanto, você precisará executar uma busca para obter informações necessárias para preencher uma notificação. Um exemplo de evento de envio mais completo A notificação que vimos até agora é bastante básica e, no que diz respeito às amostras, é bastante pobre ao cobrir um caso de uso do mundo real. Realmente, a maioria das pessoas vai querer obter algumas informações do servidor antes de exibir a notificação. Isso pode ser dados para preencher o título e a mensagem da notificação com algo específico, ou dar um passo adiante e armazenar em cache algumas páginas ou dados para que, quando o usuário clicar na notificação, tudo está imediatamente disponível quando o navegador estiver aberto se a rede não estiver disponível naquela hora. No código a seguir, buscamos alguns dados de uma API, convertem a resposta em um objeto e usamos para preencher nossa notificação. Vale a pena, mais uma vez, destacar que o evento. waitUntil () toma uma promessa que resulta na promessa retornada pelo showNotification (). O que significa que nosso ouvinte de eventos não vai sair até que a chamada fetch () assíncrona esteja completa e a notificação seja mostrada. Você notará que mostramos uma notificação mesmo quando há um erro. Isso ocorre porque se não o fizermos, o Chrome mostrará sua própria notificação genérica. Abrir um URL quando o usuário clicar em uma notificação Quando o usuário clicar em uma notificação, um evento de aviso de aviso é despachado em seu trabalhador de serviço. Dentro do seu manipulador, você pode tomar a ação apropriada, como focar uma guia ou abrir uma janela com um URL específico: este exemplo abre o navegador para a origem da origem dos sites, focalizando uma guia de origem própria existente se houver, e de outra forma Abrindo um novo. Cancelar subscrição de um dispositivo de usuários Você inscrito um dispositivo de usuários e eles estão recebendo mensagens de envio, mas como você pode cancelar a inscrição. As principais coisas necessárias para cancelar a inscrição de um dispositivo de usuários é chamar o método unsubscribe () no objeto PushSubscription e remover o ponto final de seus servidores (Apenas para que não envie mensagens push que você conheça não serão recebidas). O código abaixo faz exatamente isso: manter as assinaturas atualizadas de assinatura pode ficar sem sincronia entre o FCM eo seu servidor. Certifique-se de que o seu servidor analisa o corpo de resposta das APIs da FCM enviando POST, procurando por erro: resultados NotRegistered e canonicalid, conforme explicado na documentação do FCM. As inscrições também podem sair da sincronização entre o trabalhador do serviço e seu servidor. Por exemplo, depois de subscrever a inscrição com êxito, uma conexão de rede escamosa pode impedir que você atualize seu servidor ou um usuário pode revogar a permissão de notificações, o que desencadeia um cancelamento automático. Controle esses casos, verificando o resultado de serviceWorkerRegistration. pushManager. getSubscription () periodicamente (por exemplo, no carregamento da página) e sincronizando-o com o servidor. Você também pode rediscar-se automaticamente se você não tiver mais uma assinatura e Notificação. permissão concedida. Em sendSubscriptionToServer () você precisará considerar como você lida com pedidos de rede com falha ao atualizar o nó de extremidade. Uma solução é rastrear o estado do nó de extremidade em um cookie para determinar se seu servidor precisa dos últimos detalhes ou não. Todas as etapas acima resultam em uma implementação completa de mensagens push na web no Chrome 46. Ainda há recursos especificados que facilitarão as coisas (como uma API padrão para acionar mensagens push), mas esta versão permite que você comece a criar push Mensagens em seus aplicativos da web hoje. Como depurar seu aplicativo da Web Ao implementar mensagens push, os bugs viverão em um dos dois lugares: sua página ou seu trabalhador de serviço. Os erros na página podem ser depurados usando o DevTools. Para depurar os problemas do trabalhador de serviço, você tem duas opções: vá para o cromo: inspecione os trabalhadores do serviço gt. Esta visão não fornece muita informação além dos trabalhadores do serviço atualmente em execução. Vá para o Chrome: serviceworker-internals e, a partir daqui, você pode visualizar o estado dos funcionários e ver erros, se houver. Esta página é temporária até que o DevTools tenha um conjunto de recursos semelhante. Uma das melhores dicas que posso dar a qualquer pessoa que seja nova para os trabalhadores do serviço faz uso da caixa de seleção chamada Janela do Open DevTools e pausa a execução de JavaScript na inicialização do serviço de depuração para depuração. Esta caixa de seleção adicionará um ponto de interrupção no início do seu trabalhador de serviço e interromperá a execução. Isso permite que você reuma ou passe pelo script do seu trabalhador de serviço e veja se você atingiu quaisquer problemas. Se parece haver um problema entre o FCM e o evento de envio de seus trabalhadores de serviços, então não há muito o que você pode fazer para depurar o problema, pois não há como saber se o Chrome recebeu nada. A coisa chave a garantir é que a resposta do FCM é bem sucedida quando seu servidor faz uma chamada de API. Isso parece algo como: Observe o sucesso: 1 resposta. Se você ver uma falha em vez disso, isso sugere que algo não está certo com o ID de registro do FCM e a mensagem push não está sendo enviada para o Chrome. Trabalhadores do serviço de depuração no Chrome para Android No momento, os funcionários do serviço de depuração no Chrome para Android não são óbvios. Você precisa navegar para o cromo: inspecionar. Encontre seu dispositivo e procure um item de lista com o nome de Público do Trabalhador. Que tem o URL do seu trabalhador de serviço. UX para notificações de envio A equipe do Chrome preparou um documento de melhores práticas para notificações push UX, bem como um documento que abrange alguns dos casos de borda ao trabalhar com notificações push. Futuro da Push Messaging no Chrome e na Open Web Esta seção aborda um pouco de detalhe em torno de algumas das partes específicas do Chrome desta implementação que você deve estar ciente e como ela será diferente das outras implementações do navegador. Web Push Protocol e Endpoints A beleza do padrão Push API é que você deve poder tomar o nó de extremidade. Passe-os para o seu servidor e envie mensagens push, implementando o Web Push Protocol. O Web Push Protocol é um novo padrão que os provedores de envio podem implementar, permitindo que os desenvolvedores não tenham que se preocupar com quem é o fornecedor push. A idéia é que isso evita a necessidade de se inscrever para as chaves da API e enviar dados formatados especialmente, como você deve com o FCM. O Chrome foi o primeiro navegador a implementar a API Push e o FCM não suporta o Web Push Protocol, razão pela qual o Chrome requer o gcmsenderid e você precisa usar a API restante para o FCM. O objetivo final do Chrome é avançar no uso do Web Push Protocol com o Chrome e o FCM. Até então, você precisa detectar o nó de extremidade android. googleapisgcmsend e lidar com isso separadamente de outros pontos finais, ou seja, formatar os dados da carga útil de forma específica e adicionar a chave de autorização. Como implementar o Web Push Protocol O Firefox Nightly atualmente está trabalhando em push e provavelmente será o primeiro navegador a implementar o Web Push Protocol. Onde estão as especificações? Posso evitar notificações duplicadas se a minha presença na Web tiver múltiplas origens, ou se eu tiver uma presença na web e nativa. Não há uma solução para isso no momento, mas você pode seguir o progresso no Chromium. O cenário ideal seria ter algum tipo de identificação para um dispositivo de usuários e, em seguida, no lado do servidor, junte as IDs da inscrição do aplicativo nativo e do aplicativo da Web e decida a qual enviar uma mensagem de envio. Você poderia fazer isso via tamanho da tela, modelo de dispositivo, compartilhando uma chave gerada entre o aplicativo da Web e o aplicativo nativo, mas cada abordagem tem vantagens e desvantagens. Por que eu preciso de um gcmsenderid Isso é necessário para que o Chrome, o Opera para Android eo navegador Samsung possam usar a API do Firebase Cloud Messaging (FCM). O objetivo é usar o Web Push Protocol quando o padrão é finalizado e o FCM pode suportá-lo. Por que não usar Sockets da Web ou Eventos enviados pelo servidor (EventSource) A vantagem de usar mensagens push é que, mesmo que sua página esteja fechada, seu trabalhador de serviço será despertado e poderá mostrar uma notificação. Web Sockets e EventSource têm sua conexão fechada quando a página ou navegador está fechado. E se eu não precisar de envio de evento em segundo plano Se você não precisar de entrega em segundo plano, os Web Sockets são uma ótima opção. Quando posso usar o push sem mostrar notificações (ou seja, o envio de fundo silencioso). Não há uma linha de tempo para quando isso ainda estará disponível, mas há uma intenção de implementar a sincronização de fundo e, enquanto não for decidida ou especificada, há alguma discussão sobre habilitação silenciosa Empurre com a sincronização de fundo. Por que isso requer HTTPS Como eu trabalho em torno disso durante o desenvolvimento Os trabalhadores do serviço exigem origens seguras para garantir que o script do trabalhador do serviço seja da origem pretendida e não resultou de um ataque do homem no meio. Atualmente, isso significa usar HTTPS em sites ao vivo, embora localhost funcione durante o desenvolvimento. O que o suporte do navegador se parece com o Chrome suporta em sua versão estável e o Mozilla está empenhado em trabalhar no Firefox Nightly. Veja a implementação do bug da API de envio para mais informações e você pode acompanhar a implementação da Notificação aqui. Posso remover uma notificação após um certo período de tempo No momento em que isso não é possível, mas estamos planejando adicionar suporte para obter uma lista de notificações atualmente visíveis. Se você tem um caso de uso para definir uma expiração para a notificação após a sua exibição criada, ame amor para saber o que é, então, adicione um comentário e passe-o de volta para a equipe do Chrome. Se você só precisa parar uma notificação push de ser enviada para o usuário após um certo período de tempo, e não se preocupe quanto tempo a notificação permanece visível, então você pode usar o parâmetro FCMs time to live (ttl), aprenda mais aqui. Quais são as limitações da mensagem push no Chrome Existem algumas limitações esboçadas nesta publicação: o uso do Chromes do CCM como serviço push cria uma série de requisitos de propriedade. Trabalhamos juntos para ver se alguns deles podem ser levantados no futuro. Você deve mostrar uma notificação quando receber uma mensagem push. Chrome on desktop has the caveat that if Chrome isnt running, push messages wont be received. This differs from Chrome OS and Android where push messages will always be received. Shouldnt we be using the Permissions API The Permission API is implemented in Chrome, but its not necessarily going to be available in all browsers. You can learn more here . Why doesnt Chrome open up the previous tab when I click a notification This issue only affects pages which arent currently controlled by a service worker. You can learn more here . What if a notification is out of date by the time the users device received the push You always have to show a notification when you receive a push message. In the scenario where you want to send a notification but its only useful for a certain period time, you can use the timetolive parameter on CCM so that FCM wont send the push message if it passes the expiry time. What happens if I send 10 push messages but only want the device to receive one FCM has a collapsekey parameter you can use to tell FCM to replace any pending message which has the same collapsekey, with the new message. Exceto quando mencionado de outra forma, o conteúdo desta página está licenciado sob a licença Creative Commons Attribution 3.0. E as amostras de código são licenciadas sob a Licença Apache 2.0. Para obter detalhes, consulte as Políticas do site. Java é uma marca registrada da Oracle e de suas afiliadas. 18, 2017 The latest news on the Chromium blog Fork our API code samples and other open-source projects. Connect with ChromiumDev on Twitter Check out the Web Developer Relations team39s videos Attend a developer event and get hacking Contribute to WebFundamentals

No comments:

Post a Comment