> ## 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：专注模式和中断级别

> 了解设备设置以及它们如何与推送通知交互

专注模式帮助 iOS 用户通过允许工作、睡眠和个人等独立模式来控制何时以及如何接收通知。每种模式都会调整通知可见性和传递行为。

为了支持重要用例（如紧急警报或账户安全），Apple 推出了**中断级别**来控制通知的显示方式和时间——即使在专注模式激活时也是如此。

## 中断级别

中断级别决定通知的紧急程度和传递行为。有四个级别：

<Columns cols={2}>
  <Card title="活跃（默认）" icon="play">
    标准优先级通知。包括声音、振动和屏幕唤醒行为。不会绕过专注模式。
  </Card>

  <Card title="时间敏感" icon="hourglass">
    行为类似活跃模式，但包含特殊横幅。时间敏感通知可以突破专注模式和预定传递。仅在需要紧急用户注意时使用。
  </Card>

  <Card title="被动" icon="paper-plane">
    低优先级通知。无声音或振动。不会打断用户，也不会突破专注模式。
  </Card>

  <Card title="关键" icon="triangle-exclamation">
    最高优先级通知。绕过所有设备控制和专注模式。用于紧急情况，如恶劣天气或健康警报。需要 Apple 的事先批准才能启用。有关更多详细信息，请参阅[关键警报设置](#critical-alerts-setup)。
  </Card>
</Columns>

<Frame caption="示例。显示时间敏感通知的图像。">
  <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>

***

## 如何在 OneSignal 中设置中断级别

从 OneSignal 控制台发送推送通知时，您可以在 **Apple iOS 设置**下找到**通知中断级别**。默认值是**活跃**。

如果使用[创建通知 API](/reference/create-message)，请使用这些参数：

* `ios_interruption_level`：设置为 `"active"`、`"time-sensitive"`、`"passive"` 或 `"critical"`
* `ios_relevance_score`：从 0 到 1 的可选数值，用于指示传递排序的重要性。

***

## 关键警报设置

**关键警报：**

* 忽略勿扰模式和静音开关。
* 保留用于高优先级情况（例如，健康、安全）。
* 需要 Apple 的明确批准，即使用户已启用正常推送通知，也必须单独选择加入。

### 向 Apple 请求关键警报权限

1. 查看 [Apple 的文档](https://developer.apple.com/documentation/bundleresources/entitlements/com.apple.developer.usernotifications.critical-alerts/)并点击**填写请求表单**。
2. 选择关键警报权限请求。
3. 填写表单并提交请求。
4. 等待 Apple 的审查和批准。

### 将关键警报权限添加到您的应用

Apple 批准您的请求后：

1. 在 Xcode 中打开您的 `.entitlements` 文件（如果没有，则创建一个）。
2. 添加：

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

3. 确保您的配置文件包含此权限：

* 如需要，请在 Apple Developer 门户中重新生成您的配置文件。
* 下载并重新添加到 Xcode。

### 在您的应用代码中请求关键警报权限

关键警报权限与标准推送权限是分离的，必须像这样请求（使用 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>
  您应该在获得标准推送权限后请求此权限，最好在您的入门流程中。
</Warning>

### 测试关键警报

1. 构建并运行您的应用。
2. 按照上述[如何在 OneSignal 中设置中断级别](#how-to-set-interruption-level-in-onesignal)中的步骤发送测试推送。

***

## 相关文档

* [iOS：相关性分数](./ios-relevance-score)
* [推送概述](./push)

***
