> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# iOS: Modos de foco e níveis de interrupção

> Entendendo as configurações do dispositivo e como elas interagem com push

Os modos de foco ajudam os usuários do iOS a controlar quando e como eles recebem notificações permitindo modos separados como Trabalho, Sono e Pessoal. Cada modo ajusta a visibilidade e o comportamento de entrega da notificação.

Para suportar casos de uso importantes como alertas de emergência ou segurança de conta, a Apple introduziu **Níveis de interrupção** para controlar como e quando as notificações aparecem—mesmo quando os modos de foco estão ativos.

## Níveis de interrupção

Os níveis de interrupção determinam a urgência e o comportamento de entrega das notificações. Existem quatro níveis:

<Columns cols={2}>
  <Card title="Active (padrão)" icon="play">
    Notificações de prioridade padrão. Estas incluem som, vibração e comportamento de despertar a tela. Elas não contornam os modos de foco.
  </Card>

  <Card title="Time Sensitive" icon="hourglass">
    Comporta-se como Active mas inclui um banner especial. Notificações Time Sensitive podem romper os modos de foco e entrega agendada. Use apenas quando atenção urgente do usuário for necessária.
  </Card>

  <Card title="Passive" icon="paper-plane">
    Notificações de baixa prioridade. Sem som ou vibração. Elas não interrompem o usuário e não rompem os modos de foco.
  </Card>

  <Card title="Critical" icon="triangle-exclamation">
    Notificações de prioridade mais alta. Contornam todos os controles do dispositivo e modos de foco. Usadas para emergências como clima severo ou alertas de saúde. Requer aprovação prévia da Apple para habilitar. Veja [Configuração de alertas críticos](#critical-alerts-setup) para mais detalhes.
  </Card>
</Columns>

<Frame caption="Exemplo. Imagem mostrando notificações que são time-sensitive.">
  <img src="https://mintcdn.com/onesignal/tNi1OgLc_p9hiq7_/images/docs/1f2c2a0-image_6.png?fit=max&auto=format&n=tNi1OgLc_p9hiq7_&q=85&s=ac23ab6a90a3d0cd0be8dc58d9c502ee" width="1523" height="794" data-path="images/docs/1f2c2a0-image_6.png" />
</Frame>

***

## Como definir o nível de interrupção no OneSignal

Ao enviar um push do painel do OneSignal, você encontrará **Notification Interruption Level** em **Apple iOS Settings**. O padrão é **Active**.

Se estiver usando a [Create notification API](/reference/create-message), use estes parâmetros:

* `ios_interruption_level`: Defina como `"active"`, `"time-sensitive"`, `"passive"` ou `"critical"`
* `ios_relevance_score`: Valor numérico opcional de 0 a 1 para indicar importância para ordenação de entrega.

***

## Configuração de alertas críticos

**Alertas críticos:**

* Ignoram o Não Perturbe e o interruptor de silencioso.
* São reservados para casos de alta prioridade (por exemplo, saúde, segurança).
* Requerem aprovação explícita da Apple, e os usuários devem fazer opt-in separadamente mesmo se tiverem habilitado notificações push normais.

### Solicitar autorização da Apple para alertas críticos

1. Revise a [documentação da Apple](https://developer.apple.com/documentation/bundleresources/entitlements/com.apple.developer.usernotifications.critical-alerts/) e clique em **fill out the request form**.
2. Escolha a solicitação de autorização de alertas críticos.
3. Preencha o formulário e envie a solicitação.
4. Aguarde a revisão e aprovação da Apple.

### Adicionar a autorização de alertas críticos ao seu aplicativo

Assim que a Apple aprovar sua solicitação:

1. Abra seu arquivo `.entitlements` no Xcode (ou crie um se você não tiver).
2. Adicione:

```xml theme={null}
<key>com.apple.developer.usernotifications.critical-alerts</key>
<true/>
```

3. Certifique-se de que seu perfil de provisionamento inclui esta autorização:

* Regenere seu perfil de provisionamento no portal Apple Developer se necessário.
* Baixe e adicione-o novamente ao Xcode.

### Solicitar permissão de alerta crítico no código do seu aplicativo

A permissão de alerta crítico é separada da permissão push padrão e deve ser solicitada assim (usando Swift):

```swift theme={null}
import UserNotifications

UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge, .criticalAlert]) { granted, error in
    if let error = error {
        print("Authorization error: \(error)")
    } else {
        print("Critical alert permission granted: \(granted)")
    }
}
```

<Warning>
  Você deve solicitar isso após obter a permissão push padrão, idealmente no seu fluxo de onboarding.
</Warning>

### Testar alertas críticos

1. Compile e execute seu aplicativo.
2. Envie um push de teste seguindo os passos acima em [Como definir o nível de interrupção no OneSignal](#how-to-set-interruption-level-in-onesignal).

***

## Documentos relacionados

* [iOS: Relevance score](./ios-relevance-score)
* [Visão geral de push](./push)

***
