Pergunta

Estou construindo um aplicativo que usa a Fine Urban Airship API para enviar as notificações de push do usuário.

O aplicativo acompanha as datas de evento que são adicionadas ao aplicativo pelo usuário. Isso significa que não tenho nenhum servidor para lidar com o push, o próprio aplicativo simplesmente agenda uma notificação de push com o urbano como quando o usuário adiciona a data e hora do evento.

Se o usuário decidir excluir o evento antes que ele ocorra, eu o cale com o Urban AS. Tudo está bem. Eu, no entanto, gostaria de não enviar notificações para um usuário que desativou as notificações, pois essas notificações não são de graça :)

Sei que a API de notificação de push da Apple garante que o usuário não receba nenhuma notificação se eles desligá -las nas configurações. Eles simplesmente ignorarão as notificações programadas urbanas como envia, o que é um desperdício de largura de banda e dinheiro.

Como posso saber se o usuário desativou a notificação do meu aplicativo?

Além disso, não vejo outra opção senão testar se o usuário desativou a notificação e, em seguida, diga a Urban para cancelar todas as notificações e, se o usuário os ligar, terei que passar por todos os eventos e remarcá-los:/ Cada vez que o aplicativo é executado.

Alguém pode pensar em uma maneira de eu não ter que preencher meu appdelegate com todos os tipos de código condicional para testar esses cenários? Por exemplo, o usuário desativou o push desde a última execução do aplicativo, o usuário os ativou desde a última vez. Também estou preocupado se o usuário entender esse comportamento?

Acho que estou apenas pedindo um pouco de prática recomendada com essa configuração de aeronaves urbanas / urbana :) Obrigado.

Foi útil?

Solução

Da maneira que eu vejo, [[UIApplication sharedApplication] enabledRemoteNotificationTypes] Retornará os tipos de notificação que o usuário ativou atualmente para o seu aplicativo.

Caso contrário, você está correto. Você deve chamar esse método em todos os lançamentos de aplicativos e, no caso de o usuário reativar as notificações, reagendar todos os eventos que você havia excluído anteriormente.

Quanto à questão de preencher seu delegado de aplicativo com todos os tipos de condicionais, você pode escrever um pushnotificationscontroller separado (não um UIViewController, apenas uma subclasse NSObject) que lidará com todas as coisas relacionadas a push.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top