Obtenha mais opt-ins e proporcione uma experiência melhor aos seus usuários personalizando a jornada de opt-in
Pré-requisitos
Para configurar notificações push, você deve primeiro seguir o guia principal de notificações push do iOS .
No guia de notificações push do iOS , o registerForRemoteNotificationTypes método adicionado ao inicializar o XtremePush no seu Delegado de Aplicativos fará com que o diálogo de permissão para notificações push do iOS apareça imediatamente:
XPush.register(forRemoteNotificationTypes: [.alert, .badge, .sound])[XPush registerForRemoteNotificationTypes:XPNotificationType_Alert | XPNotificationType_Sound | XPNotificationType_Badge];.png?sv=2026-02-06&spr=https&st=2026-10-03T10%3A00%3A41Z&se=2026-10-03T10%3A12%3A41Z&sr=c&sp=r&sig=z349SoUqdlSboQPO2PcqSiOE56cmO%2B2VXiY22wH5Aok%3D)
Adie a opção de aderir ou inclua uma troca de valor
Recomenda-se adiar esse prompt de opt-in até que o usuário tenha feito login ou até chegar a uma seção apropriada do app onde a permissão seja claramente necessária, por exemplo, ativar uma função de alerta.
Também é boa prática exibir uma tela de troca de valor antes de pedir permissões de notificação, explicando por que você quer usar notificações.
Troca de valor
Leia mais sobre o que é uma exchange de valor e por que ela pode ajudar você a conseguir mais opt-ins em nosso site.
Essa tela pode conter botões de Permitir e Não Permitir em nível de app, que podem definir uma bandeira local no app caso o usuário decida recusar. Se o usuário negar conceder permissão nessa etapa, você não mostra o diálogo do iOS, o que significa que pode pedir permissão novamente no futuro, em vez de ter perdido a chance pelo usuário negar a permissão em nível do sistema operacional.
Para fazer essa alteração, remova a chamada para o registerForRemoteNotificationTypes método do seu Delegado de Aplicação. Você pode chamá-la depois, junto com alguma lógica adicional relacionada ao seu fluxo de trabalho de prompts personalizados de permissões. Esse fluxo de trabalho pode conter uma troca de valor e lógica para perguntar novamente posteriormente caso o usuário negue permissão na interface personalizada inicialmente.
.png?sv=2026-02-06&spr=https&st=2026-10-03T10%3A00%3A41Z&se=2026-10-03T10%3A12%3A41Z&sr=c&sp=r&sig=z349SoUqdlSboQPO2PcqSiOE56cmO%2B2VXiY22wH5Aok%3D)
Exemplo de uma troca de valor que seria apresentada aos usuários antes do prompt de opt-in no nível do sistema operacional.
Tela simples de troca de valor
Por exemplo, você poderia ter uma função vinculada a um botão de Permitir assim:
func approvePushButton(){
defaults.setObject("approved", forKey: "push")
approvalComplete()
XPush.register(forRemoteNotificationTypes: [.alert, .badge, .sound])
}- (IBAction)pushAllowAction:(id)sender {
[[NSUserDefaults standardUserDefaults] setBool:YES forKey: push];
[[NSUserDefaults standardUserDefaults] synchronize];
[XPush registerForRemoteNotificationTypes:XPNotificationType_Alert | XPNotificationType_Sound | XPNotificationType_Badge];
}E uma função vinculada a um botão Configurar depois para definir um tempo para tentar o prompt novamente:
func declinePushButton(){
defaults.setObject(addMonthToDate(), forKey: "push")
approvalComplete()
}- (IBAction)declineAction:(id)sender {
[[NSUserDefaults standardUserDefaults] setObject:[self addMonthtoDate] forKey: push];
[[NSUserDefaults standardUserDefaults] synchronize];
}