iphone - tecnologia - Redefinir as configurações de notificação por push para o aplicativo
tecnologia push iphone (9)
A Apple Tech Note também descreveu que você pode restaurar o dispositivo para redefinir a caixa de diálogo Push Notification.
Ele não diz que você também pode usar a opção "Geral -> Redefinir -> Apagar todo o conteúdo e configurações" no próprio dispositivo (iOS 5.x).
Estou desenvolvendo um aplicativo com notificações por push. Para verificar todas as formas possíveis de interação com o usuário, eu gostaria de testar meu aplicativo quando um usuário se recusa a ativar as notificações por push para meu aplicativo durante a primeira inicialização.
O diálogo (iniciado por registerForRemoteNotificationTypes
), no entanto, aparece apenas uma vez por aplicativo. Como faço para redefinir a memória do iPhone do meu aplicativo. Excluir o aplicativo e reinstalar não ajuda.
A mesma nota técnica mencionada na resposta aceita ( TN2265 - Troubleshooting Push Notifications) foi atualizada com uma solução para iOS 5 e posterior.
Resumindo: crie um backup e restaure a partir dele sempre.
No iOS 5 e posterior, redefina o alerta de permissões de notificações por push restaurando o dispositivo a partir de um backup (r. 11450187). Aqui estão os passos para fazer isso de forma eficiente:
- Use o Xcode Organizer para instalar seu aplicativo no dispositivo. A chave é instalar o aplicativo pela primeira vez sem executá-lo.
- Use o iTunes para fazer o backup do dispositivo.
- Execute o aplicativo. O alerta de notificações de notificações push será apresentado.
- Quando você quiser redefinir o alerta de notificações de notificações por push, restaure o dispositivo a partir do backup criado na primeira etapa.
Como ianolito disse, definir a data deveria funcionar:
Você pode alcançar o último sem realmente esperar um dia ajustando o relógio do sistema para frente um dia ou mais, desligando o dispositivo completamente e ligando o dispositivo novamente.
Eu notei no meu dispositivo (iPhone 4, iOS 6.1.2) definindo o relógio do sistema um dia para a frente ou até mesmo alguns dias não funcionou para mim. Por isso, defini a data para a frente um mês e, depois, funcionou e a minha aplicação mostrou novamente as notificações.
Espero que isso ajude para qualquer um, pode ser uma espécie de dor de cabeça!
Como já foi observado, a abordagem para redefinir o estado de notificação de um aplicativo em um dispositivo é alterada para o iOS5.
Isso funciona para mim no iOS6:
- Remova o aplicativo do dispositivo
- Defina o datetime do dispositivo dois dias ou mais à frente
- Reinicie o dispositivo
- Defina o datetime do dispositivo dois dias ou mais à frente
- Reinicie o dispositivo
- Instale e execute o aplicativo novamente
No entanto, isso apenas fará com que o prompt inicial apareça novamente - ele não removerá nenhum outro material relacionado ao estado de envio.
Eu concordo com o micmdk .. Eu tinha uma configuração de ambiente de desenvolvimento com Push Notifications e precisava de uma maneira de redefinir meu telefone para parecer uma instalação inicial… e somente essas etapas precisas funcionaram para mim… requer DUAS reinicializações do dispositivo:
Da APPLE TECH DOC:
Redefinindo o alerta de permissões de notificações por push no iOS Na primeira vez em que um aplicativo ativado por push é registrado para notificações por push, o iOS pergunta ao usuário se ele deseja receber notificações para esse aplicativo. Depois que o usuário responder a esse alerta, ele não será apresentado novamente, a menos que o dispositivo seja restaurado ou o aplicativo tenha sido desinstalado por pelo menos um dia.
Se você quiser simular uma execução do aplicativo pela primeira vez, deixe o aplicativo desinstalado por um dia. Você pode conseguir o último sem realmente esperar um dia seguindo estas etapas:
Exclua seu aplicativo do dispositivo.
Desligue o dispositivo completamente e ligue-o novamente.
Vá para Configurações> Geral> Data e Hora e defina a data para frente um dia ou mais.
Desligue o dispositivo novamente e ligue-o novamente.
Eu me perguntei sobre isso no passado e cheguei à conclusão de que não era realmente um caso de teste válido para o meu código. Eu não acho que o código do aplicativo pode realmente dizer a diferença entre alguém recusando notificações na primeira vez ou mais tarde desativando-o das configurações de notificação do iPhone. É verdade que a experiência do usuário é diferente, mas está oculta dentro da chamada para registerForRemoteNotificationTypes.
Chamar unregisterForRemoteNotifications não remove completamente o aplicativo das configurações de notificações, embora ele remova o conteúdo das configurações desse aplicativo. Portanto, isso ainda não fará com que a caixa de diálogo seja apresentada uma segunda vez ao usuário na próxima vez em que o aplicativo for executado (pelo menos não na v3.1.3 com a qual estou testando atualmente). Mas como eu digo acima, você provavelmente não deveria se preocupar com isso.
No iOS 9.0.2, estou recebendo o "alerta de notificação de envio de registro" sempre que eu excluir o aplicativo e reinstalá-lo. Isso vale tanto para os downloads de produção da AppStore quanto para o modo adhoc.
ATUALIZAÇÃO: confirma-se que isto está funcionando para o iOS 9.x
O plist: /private/var/mobile/Library/RemoteNotification/Clients.plist
... contém os clientes registrados para notificações push. Remover a entrada do seu aplicativo fará com que o aviso seja exibido novamente
Nota técnica TN2265: Solução de problemas de notificações por push
Na primeira vez em que um aplicativo ativado por push é registrado para notificações por push, o iOS pergunta ao usuário se ele deseja receber notificações para esse aplicativo. Depois que o usuário responder a esse alerta, ele não será apresentado novamente, a menos que o dispositivo seja restaurado ou o aplicativo tenha sido desinstalado por pelo menos um dia.
Se você quiser simular uma execução do aplicativo pela primeira vez, deixe o aplicativo desinstalado por um dia. Você pode alcançar o último sem realmente esperar um dia ajustando o relógio do sistema para frente um dia ou mais, desligando o dispositivo completamente e ligando o dispositivo novamente.
Atualização: conforme observado nos comentários abaixo, esta solução parou de funcionar desde o iOS 5.1. Eu incentivaria a apresentação de um bug na Apple para que eles possam atualizar sua documentação. A solução atual parece estar redefinindo o conteúdo e as configurações do dispositivo.
Atualização: a nota técnica foi atualizada com novas etapas que funcionam corretamente no iOS 7.
- Exclua seu aplicativo do dispositivo.
- Desligue o dispositivo completamente e ligue-o novamente.
- Vá para Configurações> Geral> Data e Hora e defina a data para frente um dia ou mais.
- Desligue o dispositivo novamente e ligue-o novamente.
ATUALIZAÇÃO a partir do iOS 9
A simples exclusão e reinstalação do aplicativo redefinirá o status da notificação como notDetermined
(indicando que os prompts aparecerão).
Graças à resposta de Gomfucius abaixo: https://.com/a/33247900/704803