--- title: "Controle o prompt de notificação push do iOS" slug: "ios-control-system-prompt" updated: 2026-06-12T10:30:57Z published: 2026-06-12T10:30:57Z canonical: "docs.xtremepush.com/ios-control-system-prompt" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.xtremepush.com/llms.txt > Use this file to discover all available pages before exploring further. # Controle o prompt de notificação push do iOS Obtenha mais opt-ins e proporcione uma experiência melhor aos seus usuários personalizando a jornada de opt-in > [!NOTE] > Pré-requisitos > > Para configurar notificações push, você deve primeiro seguir o guia principal [de notificações push do iOS](/documentation/docs/pt-br/ios-push-notifications) . No [guia de notificações push do iOS](/documentation/docs/pt-br/ios-push-notifications#add-to-app) , 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: **Swift** ```swift XPush.register(forRemoteNotificationTypes: [.alert, .badge, .sound]) ``` **Objective-C** ```objectivec [XPush registerForRemoteNotificationTypes:XPNotificationType_Alert | XPNotificationType_Sound | XPNotificationType_Badge]; ``` ![471](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/3bc29d1-b9b2e29-rendered2x-1584047740(1).png?sv=2026-02-06&spr=https&st=2026-11-04T09%3A29%3A05Z&se=2026-11-04T10%3A29%3A05Z&sr=c&sp=r&sig=Joz3VC4tyJlV%2Fxg1v%2BXj5phJktalDketoaNHLuyhiRU%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. > [!TIP] > 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](https://xtremepush.com/web-push-notifications-how-to-get-more-opt-ins/). 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. ![750](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/ae337a3-value_exchange(1).png?sv=2026-02-06&spr=https&st=2026-11-04T09%3A29%3A05Z&se=2026-11-04T10%3A29%3A05Z&sr=c&sp=r&sig=Joz3VC4tyJlV%2Fxg1v%2BXj5phJktalDketoaNHLuyhiRU%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: **Swift** ```swift func approvePushButton(){       defaults.setObject("approved", forKey: "push")       approvalComplete()       XPush.register(forRemoteNotificationTypes: [.alert, .badge, .sound]) } ``` **Objective-C** ```objectivec - (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: **Swift** ```swift func declinePushButton(){       defaults.setObject(addMonthToDate(), forKey: "push")       approvalComplete()   } ``` **Objective-C** ```objectivec - (IBAction)declineAction:(id)sender { [[NSUserDefaults standardUserDefaults] setObject:[self addMonthtoDate] forKey: push]; [[NSUserDefaults standardUserDefaults] synchronize]; } ```