Push Notifications Tutorial: Getting Started

Update Note: Chuck Krutsinger updated this tutorial for Xcode 11 and Swift 5. Jack Wu escreveu o tutorial original, e Keegan Rush escreveu uma atualização anterior.

os desenvolvedores iOS adoram imaginar pessoas usando seu aplicativo incrível constantemente. Mas, é claro, os usuários às vezes terão que fechar o aplicativo e realizar outras atividades. A roupa não se dobra sozinha. Felizmente, as notificações push permitem que os desenvolvedores alcancem os usuários e executem pequenas tarefas — mesmo quando os usuários não estão usando ativamente um aplicativo! Neste tutorial, você vai aprender como:

  • configurar o seu aplicativo para receber notificações de push.
  • mostre-os aos seus utilizadores ou execute outras tarefas.

iniciando

o que são notificações push? São mensagens enviadas para o seu aplicativo através do serviço de notificação Apple Push (APNs), mesmo se o seu aplicativo não está funcionando ou o telefone está dormindo. Para que você pode usar notificações push?

  • mostra uma mensagem de texto curta, chamada de alerta, que chama a atenção para algo novo no seu aplicativo.
  • toque um som de notificação.
  • Defina um número de crachá no ícone da aplicação para que o utilizador saiba que existem novos itens.
  • forneça as acções que o utilizador pode tomar sem abrir a aplicação.mostra um anexo multimédia.
  • fique em silêncio, permitindo que o aplicativo para executar uma tarefa em segundo plano.
  • notificações de grupo em tópicos.
  • editar ou remover as notificações entregues.
  • execute o código para alterar a sua notificação antes de a mostrar.
  • mostra uma UI personalizada e interactiva para a sua notificação.e provavelmente mais.

este tutorial cobre muitos destes usos para ajudá-lo a começar a criar notificações push nos seus aplicativos. Para completar este tutorial, você precisará do seguinte:

  • Xcode 11.4 ou mais tarde. Versões anteriores do Xcode não suportam notificações push usando o simulador.
  • um membro do Programa de desenvolvimento da Apple para ser capaz de compilar o aplicativo com o direito de notificações Push.
nota: mais tarde no tutorial, irá aprender a enviar notificações push para um dispositivo real ao enviar para um dispositivo Real.

para enviar e receber notificações push, você deve executar três tarefas principais:

  1. Configure sua aplicação e registre-a com as APNs.
  2. envie uma notificação de push de um servidor para dispositivos específicos via APNs. Vais simular isso com Xcode.
  3. Use callbacks no aplicativo para receber e lidar com notificações de push.

enviar notificações push é uma responsabilidade do componente servidor do seu aplicativo. Muitos aplicativos usam terceiros para enviar notificações push. Outros usam soluções personalizadas ou bibliotecas populares (como Houston). Você só vai tocar no envio de mensagens push neste tutorial, por isso certifique-se de verificar para onde ir a partir daqui? secção para desenvolver o seu conhecimento de notificações push.

para começar, obtenha o projecto inicial do WenderCast usando o botão Transferir materiais no topo ou no fundo deste tutorial. O WenderCast é a fonte de toda a gente para raywenderlich.com podcasts e notícias de última hora.

na pasta inicial, abra o WenderCast.xcodeproj. Seleccione o WenderCast no navegador do projecto e seleccione depois o alvo do WenderCast. Na página Geral & capacidades, seleccione a sua equipa de desenvolvimento. Construir e executar em um simulador.

construir e executar o projecto inicial

WenderCast mostra uma lista de raywenderlich.com podcasts e permite aos utilizadores jogá-los. Mas não permite que os usuários saibam quando um novo podcast está disponível e a página de notícias está vazia! Em breve irá resolver estes problemas com o poder das notificações push.

enviar e receber notificações Push

configurar a segurança da aplicação

é muito importante para as notificações push. Você não quer que mais ninguém envie notificações push para seus usuários através do seu aplicativo. Terá de executar várias tarefas para configurar o seu aplicativo para receber de forma segura notificações de push.

Se activar o serviço de notificação Push

primeiro, terá de alterar o identificador do feixe. No Xcode, seleccione o WenderCast no navegador do projecto e seleccione o alvo do WenderCast. Selecione General, em seguida, mude o identificador de pacote para algo único para que o servidor de notificação push da Apple possa direcionar pushes para este aplicativo.

altere o identificador do pacote

a seguir, terá de criar um ID da aplicação na sua conta de desenvolvimento e activar o direito de notificação de push. O Xcode tem uma maneira simples de fazer isso: com o alvo do WenderCast ainda selecionado, clique na Assinatura & Capabilities tab e, em seguida, clique no botão + Capability. Escreva “push” no campo do filtro e carregue em Enter.

Add the push notifications capability

After adding the push notifications entitlement, your project should look like this:

Project with push notifications entitlement

Nota: Se houver algum problema, visite o Apple Developer Center. Você pode precisar concordar com uma nova licença de desenvolvedor, que a Apple adora atualizar, e tentar novamente.

nos bastidores, isto cria o ID do aplicativo e, em seguida, adiciona o direito de envio de notificações a ele. Poderá aceder ao centro de desenvolvimento da Apple para verificar isto:

configuração do ID da aplicação que mostra o direito das notificações push

é tudo o que precisa de configurar por agora. Você está pronto para começar a melhorar o aplicativo.

pedindo permissão para as notificações do utilizador

Existem dois passos que você toma para se registar para as notificações de envio. Primeiro, você deve obter a permissão do Usuário para mostrar notificações. Em seguida, você pode registrar o dispositivo para receber notificações remotas (push). Se tudo correr bem, o sistema irá então fornecer-lhe um dispositivo token, que você pode pensar como um “endereço” para este dispositivo.

no WenderCast, irá registar-se para notificações push imediatamente após o lançamento do aplicativo. Pede primeiro as permissões do utilizador.

Open AppDelegate.swift e adicione o seguinte ao topo do arquivo:

import UserNotifications

em Seguida, adicione o seguinte método para o final de AppDelegate:

func registerForPushNotifications() { //1 UNUserNotificationCenter.current() //2 .requestAuthorization(options: ) { granted, _ in //3 print("Permission granted: \(granted)") }}

o Que este código faz:

  1. UNUserNotificationCenter alças de todos notificação-atividades relacionadas a app, incluindo as notificações push.
  2. você invoca requestAuthorization(options:completionHandler:) para (você adivinhou) solicitar autorização para mostrar notificações. O options indica os tipos de notificações que deseja que a sua aplicação use — aqui está a pedir Alerta, Som e crachá.
  3. O controlador de completação recebe um Bool que indica se a autorização foi bem sucedida. Neste caso, você simplesmente imprime o resultado.
Nota: As opções que você passar para requestAuthorization(options:completionHandler:) pode incluir qualquer combinação de UNAuthorizationOptions:

  • .badge: mostra um número no canto do ícone da aplicação.
  • .som: toque um som.
  • .alerta: mostra uma notificação de texto.
  • .carPlay: Display notifications in CarPlay.
  • .provisional: Post non-interromping notifications. O Usuário não receberá um pedido de permissão se você usar apenas esta opção, mas suas notificações só aparecerão silenciosamente no centro de notificações.
  • .provides appnotificationsettings: Indicate that the app has its own UI for notification settings.
  • .criticalert: Ignore o botão mudo e não perturbe. Você vai precisar de um direito especial da Apple para usar esta opção, porque ele é destinado apenas para casos de uso muito especial.

Add the following near the end of application(_:didFinishLaunchingWithOptions:), just before the return:

registerForPushNotifications()

chamando registerForPushNotifications() aqui garante que a aplicação irá tentar registar-se para notificações push sempre que for lançada.

construir e executar. Quando o aplicativo for lançado, você deve receber um prompt que pede permissão para enviar notificações.

Prompt for Notifications

Tap Allow, and poof! O aplicativo pode agora exibir notificações. Muito bom! Mas e se o utilizador recusar as permissões? Adicionar este método dentro de AppDelegate:

func getNotificationSettings() { UNUserNotificationCenter.current().getNotificationSettings { settings in print("Notification settings: \(settings)") }}

primeiro, você indicou a configuração que deseja. Este método devolve a configuração que o utilizador concedeu. Por agora, está a imprimi-los, mas vai voltar aqui em breve para fazer mais com isto.

registerForPushNotifications(), substitua a chamada de requestAuthorization(options:completionHandler:) com o seguinte:

UNUserNotificationCenter.current() .requestAuthorization( options: ) { granted, _ in print("Permission granted: \(granted)") guard granted else { return } self?.getNotificationSettings() }

Você adicionou uma chamada para getNotificationSettings() no manipulador de conclusão. Isso é importante porque o usuário pode, a qualquer momento, ir para o aplicativo de configuração e alterar suas permissões de notificação. O guard evita fazer esta chamada nos casos em que a permissão não foi concedida.

a registar-se no APNs

Agora que tem permissões, irá registar-se para notificações remotas!

getNotificationSettings(), adicione o seguinte abaixo de print dentro de fechamento:

guard settings.authorizationStatus == .authorized else { return }DispatchQueue.main.async { UIApplication.shared.registerForRemoteNotifications()}

Aqui, verificar authorizationStatus.authorized: O usuário concedida notificação de permissões. Se assim for, você liga para para iniciar o registro com o serviço de notificação Apple Push. Você precisa chamar isso no fio principal, ou você receberá um aviso de tempo de execução.

Adicione o seguinte ao final da AppDelegate:

func application( _ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { let tokenParts = deviceToken.map { data in String(format: "%02.2hhx", data) } let token = tokenParts.joined() print("Device Token: \(token)")}

Este método é chamado pelo iOS sempre que uma chamada para registerForRemoteNotifications() êxito. O código pode parecer críptico, mas está simplesmente tomando um deviceToken e convertendo-o em uma string. O dispositivo é o fruto deste processo. É fornecido pela APNs e identifica este aplicativo de forma única neste dispositivo em particular.

ao enviar uma notificação de push, o servidor usa tokens como “endereços” para entregar aos dispositivos corretos. No seu aplicativo, você agora iria enviar este token para o seu servidor para salvar e usar mais tarde para enviar notificações.

Agora, adicione o seguinte:

func application( _ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) { print("Failed to register: \(error)")}

Este método é chamado pelo iOS se registerForRemoteNotifications() falha. Só estás a imprimir o erro por agora. é isso! Construir e correr. Como você está em um simulador, você verá um erro Failed to register. Podes ignorar isso por agora. Mais tarde, quando você executar em um dispositivo real, você deve receber um token na saída da consola. Aqui está um exemplo:

exemplo de um dispositivo token

Nota: Existem várias razões pelas quais o registo pode falhar. Na maioria das vezes, é porque o ID do aplicativo não foi configurado corretamente. A mensagem de erro geralmente fornece uma boa dica para o que está errado.

enviando uma notificação simulada Push

Use um editor de texto para criar um arquivo chamado primeiro.apn, que você vai passar para o utilitário simctl do Xcode. Cole o seguinte texto JSON e salve o arquivo.

{ "aps": { "alert": "Breaking News!", "sound": "default", "link_url": "https://raywenderlich.com" }}

a estrutura deste JSON será explicada na próxima secção. Paciência, Gafanhoto.

Construa e execute o aplicativo novamente no simulador, em seguida, background o aplicativo ou bloquear o dispositivo. O aplicativo ainda não é capaz de processar notificações push enquanto em primeiro plano.

para usar o simctl, terá de saber o identificador do dispositivo para o simulador em que está a executar a aplicação. Se houver apenas um dispositivo rodando no simulador, você pode usar inicializado em vez de um identificador. Para obter o identificador, em Xcode, selecione Dispositivos e simuladores Windows▸, em seguida, selecione a página simuladores no topo e selecione o simulador que você está usando a partir da lista à esquerda. Use o seu rato para copiar o identificador. Poderá ter de alargar a janela para a ver por completo.

encontrar o identificador do dispositivo no Xcode

abra a aplicação do Terminal e mude para a pasta onde gravou primeiro.apn. Em seguida, digite o seguinte comando, utilizando o identificador do dispositivo ou o identificador do Xcode em vez do device_identifier: xcrun simctl push device_identifier bundle_identifier first.apn. Substitua device_identifierpelo identificador do dispositivo que copiou do Xcode e substitua bundle_identifier pelo identificador do pacote da aplicação — o que usou quando criou o projecto pela primeira vez. Aqui está um exemplo:

Usando xcrun simctl para enviar uma notificação de envio de terminal

Executar o comando, e você verá a notificação por push aparecer no simulador!

a notificação de Push aparece no simulador

toque na notificação para lançar a aplicação.

App Lançado a partir da notificação push

não é fixe? :]

a Olhar para um Básicas de Notificação por Push

Antes de passar para tratamento de notificações push, dê uma olhada no corpo da notificação que você enviou:

{ "aps": { "alert": "Breaking News!", "sound": "default", "link_url": "https://raywenderlich.com" }}

A carga é um JSON dicionário que contém pelo menos um item, aps, que é também um dicionário. Neste exemplo, aps que contém os campos alertsound e link_url. Quando o dispositivo recebe esta notificação push, ele mostra uma vista de alerta com o texto ” notícias de Última Hora!”e toca o efeito sonoro padrão.

é na verdade um campo personalizado. Você pode adicionar campos personalizados para a carga útil como este, e eles serão entregues à sua aplicação. Porque você ainda não está lidando com isso dentro da aplicação, Este par chave/valor atualmente não faz nada.correcção de

: Um leitor astuto apontou que a documentação da Apple afirma que o conteúdo personalizado, como deve estar em um nível de pares para o aps entrada de dicionário em vez de dentro dele. Ele ainda funciona se você colocá-lo dentro, mas nós sempre sugerimos aderir à documentação da Apple e irá corrigir isso em nossa próxima atualização a este tutorial.

Existem oito chaves incorporadas que pode adicionar ao dicionário aps (veja a referência oficial da Chave De Carga útil para mais informações):

  • alerta: Isto pode ser uma string, como no exemplo anterior, ou um dicionário. Como um dicionário, Ele pode localizar o texto ou alterar outros aspectos da notificação.
  • badge: este é um número que irá aparecer no canto do ícone da aplicação. Você pode remover o crachá definindo este para 0.
  • som: nome de um ficheiro de som de notificação personalizado localizado na aplicação. Devem ser menos de 30 segundos.
  • thread-id: Use esta chave para as notificações do grupo.categoria
  • : isto define a categoria da notificação, que é usada para mostrar as acções personalizadas na notificação. Vais explorar isto em breve.
  • conteúdo-disponível: ao definir esta chave para 1, a notificação de push torna-se silenciosa. Você vai aprender sobre isso na seção de notificações silenciosas Push abaixo.
  • conteúdo mutável: ao definir esta chave para 1, a sua aplicação poderá modificar a notificação antes de a mostrar.
  • meta-content-id: este é o identificador da janela antecipada.

fora destes, poderá adicionar os dados personalizados que desejar, desde que a carga útil não exceda 4.096 bytes.

Depois de se ter divertido o suficiente a experimentar estas opções e a enviar notificações push para o seu simulador, siga para a próxima secção! nesta secção, irá aprender a realizar acções quando a sua aplicação receber notificações e quando os utilizadores as tocarem.

compreendendo o que acontece quando recebe uma notificação de Push

quando o seu aplicativo recebe uma notificação de push, o iOS chama um método em UIApplicationDelegate.

Você vai precisar para lidar com uma notificação de forma diferente dependendo de qual estado é o seu aplicativo em quando a notificação é recebida:

  • Se o seu aplicativo não foi executado e o usuário lança-lo tocando a notificação por push do iOS passa a notificação para o aplicativo launchOptions de application(_:didFinishLaunchingWithOptions:).se a sua aplicação estava a correr em primeiro plano ou em segundo plano, o sistema notifica a sua aplicação chamando application(_:didReceiveRemoteNotification:fetchCompletionHandler:). Quando o usuário abre o aplicativo, tocando a notificação push, iOS pode chamar este método de novo, para que você possa atualizar a UI e exibir informações relevantes.

no primeiro caso, o WenderCast irá criar o item de notícias e abrir directamente para a página de notícias. Em AppDelegate.swift, adicione o seguinte código ao final da application(_:didFinishLaunchingWithOptions:), pouco antes da instrução de retorno:

// Check if launched from notificationlet notificationOption = launchOptions?// 1if let notification = notificationOption as? , let aps = notification as? { // 2 NewsItem.makeNewsItem(aps) // 3 (window?.rootViewController as? UITabBarController)?.selectedIndex = 1}

Este é o que você está fazendo:

  1. Verifique se o valor de UIApplication.LaunchOptionsKey.remoteNotification existe na launchOptions. Se o fizer, então o seu aplicativo foi lançado a partir de uma notificação. Isto irá conter a notificação de envio que enviou.
  2. Uma vez que o dicionárioaps existe, crie umNewsItem com ele.
  3. altera a página seleccionada do controlador de páginas para a secção de notícias.

para testar isto, você precisa editar o esquema do WenderCast. Primeiro, construir e executar para instalar o último código no simulador. Em seguida, clique no esquema do WenderCast e selecione Editar o esquema…:

Edite o Esquema

Selecione Executar na barra lateral, em seguida, no separador Info selecione Esperar para o executável para ser lançado:

Escolha a aguardar o executável para ser lançada

Esta opção irá fazer com que o depurador aguarde o aplicativo seja iniciado pela primeira vez após a instalação para anexar a ele.

construir e executar. Assim que terminar a instalação, envie mais notícias de última hora usando xcrun simctl como antes. Toque na notificação, e o aplicativo irá abrir para notícias:

Aplicativo aberto para o guia notícias

Para lidar com a situação em que seu aplicativo é executado quando uma notificação é recebida, adicione o seguinte AppDelegate:

func application( _ application: UIApplication, didReceiveRemoteNotification userInfo: , fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { guard let aps = userInfo as? else { completionHandler(.failed) return } NewsItem.makeNewsItem(aps)}

Desta forma, tenta extrair a aps do suprimento de userInfo objeto e, se bem-sucedido, cria um novo NewsItem a partir dele.

Uma vez que o iOS chama este método quando a aplicação está em execução, você precisa mudar o esquema de volta para o lançamento da aplicação automaticamente para testá-la. No editor de esquemas, em fase de lançamento, seleccione automaticamente.

construir e executar. Mantenha a aplicação em primeiro plano e na página de notícias. Envie outra notificação de envio de notícias e veja como aparece na fonte:

segunda notificação de envio mostrada na página de notícias

é isso! Sua aplicação agora pode magicamente receber notícias de última hora. :]

Nota: As Notificações de Push não estão garantidas de chegar. Isto é OK para o WenderCast, porque ter a lista completa de notícias não é muito importante para este aplicativo. Em geral, porém, você não deve usar notificações push como a única maneira de entregar conteúdo. Em vez disso, as notificações push devem sinalizar que há um novo conteúdo disponível e deixar o aplicativo baixar o conteúdo da fonte (por exemplo, a partir de uma API de descanso).

trabalhar com notificações accionáveis

notificações activáveis permite-lhe adicionar botões personalizados à própria notificação. Você pode ter notado isso em notificações de E-mail ou Tweets que lhe permitem “responder” ou “favorito” no local.

a sua aplicação poderá definir notificações passíveis de acção quando se registar para notificações usando categorias. Cada categoria de notificação pode ter algumas ações personalizadas predefinidas.

uma vez registrado, seu servidor pode definir a categoria de uma notificação de push. As ações correspondentes estarão disponíveis para o usuário quando forem recebidas.

para o WenderCast, irá definir uma categoria de notícias com uma acção personalizada chamada View. Esta acção permitirá aos utilizadores ver o artigo de notícias na aplicação, se assim o desejarem.

registerForPushNotifications(), insira o seguinte logo abaixo da sua guarda, e, acima de chamada para getNotificationSettings():

// 1let viewAction = UNNotificationAction( identifier: Identifiers.viewAction, title: "View", options: )// 2let newsCategory = UNNotificationCategory( identifier: Identifiers.newsCategory, actions: , intentIdentifiers: , options: )// 3UNUserNotificationCenter.current().setNotificationCategories()

de passar por isso, passo-a-passo:

  1. crie uma nova acção de Notificação, com a janela de Título no botão, que abre a aplicação em primeiro plano quando despoletada. A ação tem um identificador distinto, que o iOS usa para diferenciar entre outras ações na mesma notificação.
  2. Define a categoria de notícias, que irá conter a acção ver. Isto também tem um identificador distinto que a sua carga terá de conter para especificar que a notificação de push pertence a esta categoria.
  3. registe a nova notificação accionável chamando setNotificationCategories.

crie e execute a aplicação para registar a nova configuração das notificações.

plano de Fundo do aplicativo e, em seguida, envie a seguinte carga através de xcrun simctl utilitário de:

{ "aps": { "alert": "Breaking News!", "sound": "default", "link_url": "https://raywenderlich.com", "category": "NEWS_CATEGORY" }}

Quando a notificação é exibida, puxe-o para revelar o modo de Exibição de ação:

notificação de emissão com vista a ação revelou

Bom! Tapping View irá lançar o WenderCast, mas ainda não faz nada emocionante. Para o obter para mostrar o item de notícias, você precisa fazer mais algum tratamento de eventos no delegado.

tratamento de acções de notificação

sempre que uma acção de notificação é despoletada, UNUserNotificationCenter informa o seu delegado. De volta a AppDelegate.swift, adicione a seguinte extensão de classe ao fundo do ficheiro:

// MARK: - UNUserNotificationCenterDelegateextension AppDelegate: UNUserNotificationCenterDelegate { func userNotificationCenter( _ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void ) { // 1 let userInfo = response.notification.request.content.userInfo // 2 if let aps = userInfo as? , let newsItem = NewsItem.makeNewsItem(aps) { (window?.rootViewController as? UITabBarController)?.selectedIndex = 1 // 3 if response.actionIdentifier == Identifiers.viewAction, let url = URL(string: newsItem.link) { let safari = SFSafariViewController(url: url) window?.rootViewController? .present(safari, animated: true, completion: nil) } } // 4 completionHandler() }}

Esta é a chamada de resposta que obtém quando a aplicação abre por causa de uma acção personalizada. Pode parecer que há muita coisa acontecendo, mas não há muita novidade aqui:

  1. obtenha o dicionáriouserInfo.
  2. Criate aNewsItem from theaps dictionary and navegar para a Página de notícias.verifique o actionIdentifier. Se for a ação “ver”e o link for um URL válido, ele exibe o link em umSFSafariViewController.liga ao controlador de completação que o sistema passa para ti.

Há um último bit: Você tem que definir o delegado em UNUserNotificationCenter. Adicione esta linha ao topo de application(_:didFinishLaunchingWithOptions:):

UNUserNotificationCenter.current().delegate = self

Build and run. Fechar o aplicativo novamente e, em seguida, enviar outra notícia notificação com a seguinte carga:

{ "aps": { "alert": "New Posts!", "sound": "default", "link_url": "https://raywenderlich.com", "category": "NEWS_CATEGORY" }}

Puxe para baixo a notificação e toque no modo de Exibição de ação, e você vai ver WenderCast apresentar um Safari View controller direito depois de lança:

link de Notificação URL aberto em um Safari vista

Parabéns, você implementou uma notificação útil! Envie mais alguns e tente abrir a notificação de diferentes maneiras para ver como ela se comporta.

a enviar para um dispositivo real

Se não quiser enviar notificações de push para um dispositivo real ou se ainda não necessitar de notificações de push silenciosas, poderá saltar esta secção e ir para onde ir a partir daqui?

no entanto, se quiser ter uma ideia de como enviar notificações de push para um dispositivo real e tentar o push silencioso, então terá de fazer alguma configuração adicional. Descarregue o utilitário de notificações push. Você vai usar este aplicativo utilitário para enviar notificações para um dispositivo real. Para instalá-lo, siga as instruções sob Como instalar. Preste atenção especial a como abrir o aplicativo porque você terá que mudar algumas configurações para executar este utilitário.

dirija-se para o centro de membros do desenvolvedor da Apple e faça login.o envio de notificações de push requer uma chave de autenticação. No centro de membros, selecione Certificados, identificadores & perfis, e então encontre chaves na área esquerda. À direita do título das teclas está um botão+. Clique nele para criar uma nova chave.

dê à chave um nome, como a tecla Push Notification. Sob os Serviços chave, selecione o serviço de notificações Apple Push (APNs).

Example push notification key

Carregue em Continuar e depois registe-se no ecrã seguinte para criar a sua nova chave. Toque No Download. O ficheiro transferido terá um nome como Authkey_ 4svkwf966r. p8. Mantenha o controle deste arquivo-você vai precisar dele para enviar suas notificações! A parte 4SVKWF966R do nome do arquivo é o ID da chave. Também vais precisar disto.

a peça final que você precisa é o seu ID de equipe. Navegue para a página de detalhes de membros do centro de membros para encontrá-lo.conseguiste! Com a sua nova chave, está agora pronto para enviar a sua primeira notificação de empurrão! Só precisas de mais uma coisa.

execute a aplicação no seu dispositivo real e copie o dispositivo da consola do depurador e tenha-o pronto.

inicie as notificações de push e complete os seguintes passos:

  1. na autenticação, seleccione Token.
  2. carregue no botão Seleccionar P8 e seleccione o .ficheiro p8 da secção anterior.
  3. introduza o seu ID de chave e ID de equipa nos campos relevantes.Por Baixo Do Corpo, introduza a identificação do pacote da sua aplicação e o seu dispositivo.
  4. mude o corpo do pedido para se parecer com este:
{ "aps": { "alert": "Breaking News!", "sound": "default", "link_url": "https://raywenderlich.com" }}

Clique no botão Enviar nas notificações.

notificações Push testador

Você deve receber sua notificação por push:

a Sua Primeira Notificação de Push

Solução de problemas Problemas Comuns

Aqui estão alguns problemas que você pode encontrar:

  • Algumas notificações de chegar, mas não é tudo: Se você estiver enviando muitas notificações push, ao mesmo tempo, mas você recebe poucos, o medo não! Isso é de propósito. O APNs mantém uma fila QoS (qualidade do Serviço) para cada dispositivo. O tamanho desta fila é 1, por isso, se enviar várias notificações, a última notificação é anulada.
  • problema de ligação ao Serviço de notificação Push: uma possibilidade pode ser que exista uma firewall bloqueando as portas usadas pelo APNs. Certifica-te que desbloqueias estas portas.

usando notificações de Push silenciosas

notificações de push silenciosas podem acordar a sua aplicação silenciosamente para executar algumas tarefas em segundo plano. O WenderCast pode usar este recurso para refrescar silenciosamente a lista de podcast.

com um componente de servidor apropriado isso pode ser muito eficiente. O seu aplicativo não vai precisar de pesquisa constante de dados. Você pode enviar uma notificação de push em silêncio sempre que novos dados estão disponíveis.

para começar, Seleccione de novo o alvo do WenderCast. Agora carregue na página de capacidades & e adicione a capacidade dos modos de fundo. Em seguida, verifique a opção de notificações remotas:

Verifique a opção de notificações remotas para os modos de fundo direito

agora, a sua aplicação irá acordar em segundo plano quando receber uma destas notificações push.

In AppDelegate.swift, find application(_:didReceiveRemoteNotification:fetchCompletionHandler:). Substituir a chamada de NewsItem.makeNewsItem() com o seguinte:

// 1if aps as? Int == 1 { let podcastStore = PodcastStore.sharedStore // 2 podcastStore.refreshItems { didLoadNewItems in // 3 completionHandler(didLoadNewItems ? .newData : .noData) }} else { // 4 NewsItem.makeNewsItem(aps) completionHandler(.newData)}

de Ir sobre o código:

  1. Você verificar se o content-available está definido para 1. Em caso afirmativo, trata-se de uma notificação silenciosa.
  2. você atualizar a lista de podcast, que é uma chamada de rede assíncrona.
  3. Quando a atualização estiver completa, ligue para o controlador de completação para informar o sistema se o aplicativo carregou algum dado novo.se não é uma notificação silenciosa, então é uma notícia, então faça uma notícia.

certifique-se de ligar para o controlador de completação com o resultado honesto. O sistema mede o consumo de bateria e o tempo que o seu aplicativo usa em segundo plano e pode acelerar o seu aplicativo, se necessário.não há mais nada a fazer. Para testá-lo, compilar e executar, primeiro plano do aplicativo e empurrar a seguinte carga útil através do utilitário PushNotifications:

{ "aps": { "content-available": 1 }}

If all goes well, nothing should happen, unless a new podcast was just added to the remote database. Para confirmar o código executado como esperado, defina um ponto de paragem em application(_:didReceiveRemoteNotification:fetchCompletionHandler:) e passo através dele após a notificação ser enviada.para onde ir a partir daqui?Parabéns! Você completou este tutorial e fez do WenderCast um aplicativo totalmente caracterizado com notificações push!

pode transferir o projecto completo usando o botão de transferência de materiais no topo ou no fundo deste tutorial.

deseja mergulhar mais profundamente em tudo o que pode fazer com notificações push, como a construção de UIs personalizados e o envio de alertas críticos? Nossas notificações Push por tutoriais livro irá ensinar-lhe as características avançadas de notificações push.

outro recurso é o tutorial Push Notifications para iOS: Rich Push Notifications tutorial.

mesmo que as notificações push sejam uma parte importante das aplicações modernas, também é muito comum os utilizadores recusarem as permissões para o seu aplicativo se você exagerar as notificações. Mas com design pensativo, as notificações push podem manter seus usuários voltando para o seu aplicativo de novo e de novo!

fofo sino de notificação para gatos

este gato recebeu uma notificação para empurrar que o seu jantar estava pronto!

espero que tenha gostado deste tutorial de notificações push. Se você tiver alguma dúvida, sinta-se livre para deixá-los no fórum de discussão abaixo.

raywenderlich.com Semanal

O raywenderlich.com newsletter é a maneira mais fácil de ficar atualizado sobre tudo o que você precisa saber como um desenvolvedor móvel.

obtenha uma digestão semanal dos nossos tutoriais e cursos, e receba um curso gratuito de E-mail em profundidade como um Bônus!

Média de Classificação

4.9/5

Adicionar uma classificação para este conteúdo

Login para adicionar uma classificação

17 classificações

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *