# 如何在锁屏上显示航班状态

为每位已值机的乘客在锁屏上显示登机口、状态和时间，直到航班降落。本指南将使用 [Live Activity 元素](/zh/product/customer-journey/journey-elements/channels/live-activity/) 构建该 Journey。

## 前提条件

* 您的 iOS 应用支持 Live Activities。请参阅 [iOS SDK Live Activities 指南](/zh/developer/pushwoosh-sdk/ios-sdk/ios-live-activities/)。
* 已为此应用发布航班小组件 schema。请参阅 [iOS Live Activity schemas 配置](/zh/developer/first-steps/connect-messaging-services/ios-configuration/ios-live-activity-schemas-configuration/)。

## 创建事件

以下是本指南的示例事件名称。当您的应用或后端首次发送名称时，Pushwoosh 会[自动创建该事件](/zh/product/audience-data-and-segmentation/events/#implementation)。仅当您想在首次发送前自行设置属性类型时，才需要在 Control Panel 中首先创建事件。

创建（或重用）事件 `CheckInCompleted`、`FlightStatusChanged` 和 `FlightLanded`。

[了解有关创建事件的更多信息](/zh/product/audience-data-and-segmentation/events/#implementation)

## 构建 Journey

打开 [Customer Journey Builder](/zh/product/customer-journey/pushwoosh-journey-overview/)，创建一个营销活动，并在一个画布上构建以下所有内容。

1. 转到 **Campaigns → Customer Journey Builder**。
2. 点击 **Create campaign**。
3. 点击 **Build a journey from scratch**。

### 设置入口

1. 将 **Trigger-based entry** 元素添加到画布。
2. 将其设置为 `CheckInCompleted`。

![Trigger-based entry 面板，其中 EVENT 设置为 CheckInCompleted](/live-activity-how-to-track-flight-status-with-live-activity-3.webp)

### 启动航班卡片

1. 在入口后添加一个 **Live Activity** 元素。
2. 将其命名为 `Flight card start`。
3. 将 **Action** 设置为 **Start**。
4. 选择航班 **Widget** 和 **Schema version**。

![航班卡片启动，Action 设置为 Start，并选择了航班 Widget 和 Schema version](/live-activity-how-to-track-flight-status-with-live-activity-1.webp)

5. 将 **Card key: event** 设置为 `CheckInCompleted`。

![Card key: event 设置为 CheckInCompleted](/live-activity-how-to-track-flight-status-with-live-activity-4.webp)

6. 填写 **Card content** (`gate`、`status`、`estimatedTime`) 和警报字段。

![Card content 字段 gate、status 和 estimatedTime 已填写，下方为警报字段](/live-activity-how-to-track-flight-status-with-live-activity-5.webp)

7. 点击 **Apply**。


### 等待并更新卡片

在 Start 元素之后，继续在同一画布上操作。

1. 添加一个 **Wait for Trigger** 元素。
2. 等待 `FlightStatusChanged`。
3. 设置一个适合您航班更新的等待期。

![Wait for Trigger 设置为 FlightStatusChanged 并带有等待期](/live-activity-how-to-track-flight-status-with-live-activity-6.webp)

4. 在事件发生时触发的分支上，添加一个 **Live Activity** 元素。
5. 将其命名为 `Flight card update`。
6. 将 **Action** 设置为 **Update**。
7. 选择相同的 **Widget** 和 **Schema version**。

![航班卡片更新，Action 设置为 Update，并选择了相同的 Widget 和 Schema version](/live-activity-how-to-track-flight-status-with-live-activity-7.webp)

8. 在 **Card created by** 中选择 `Flight card start`。

![在 Update 元素上，Card created by 设置为 Flight card start](/live-activity-how-to-track-flight-status-with-live-activity-8.webp)

9. 更新 **Card content**。

![在航班卡片更新元素上更新了 Card content 字段](/live-activity-how-to-track-flight-status-with-live-activity-9.webp)

10. 点击 **Apply**。

### 等待并结束卡片

在 Update 元素之后，继续在同一画布上操作。

1. 再添加一个 **Wait for Trigger** 元素。
2. 等待 `FlightLanded`。

![Wait for Trigger 设置为 FlightLanded](/live-activity-how-to-track-flight-status-with-live-activity-10.webp)

3. 在事件发生时触发的分支上，添加一个 **Live Activity** 元素。
4. 将其命名为 `Flight card end`。
5. 将 **Action** 设置为 **End**。
6. 选择相同的 **Widget** 和 **Schema version**。
7. 在 **Card created by** 中选择 `Flight card start`。

![航班卡片结束，Action 设置为 End，选择了相同的 Widget 和 Schema version，并且 Card created by 设置为 Flight card start](/live-activity-how-to-track-flight-status-with-live-activity-11.webp)

8. 如果需要，设置警报和 **Dismiss after, min**。

![在航班卡片结束元素上的警报字段和 Dismiss after, min](/live-activity-how-to-track-flight-status-with-live-activity-12.webp)

9. 点击 **Apply**。

![画布上完整的航班状态 Journey，包含入口、Start、Wait for Trigger、Update、Wait for Trigger 和 End](/live-activity-how-to-track-flight-status-with-live-activity-13.webp)

## 乘客看到的内容

在锁屏上，乘客会看到一个 Live Activity 卡片，该卡片会随着航班进程而变化。例如：

<Tabs>
<TabItem label="值机后">
登机口 `B12`，状态 `Boarding`，预计时间 `18:45`。

![值机后的锁屏 Live Activity 卡片，显示登机口 B12、Boarding 和预计时间 18:45](/live-activity-how-to-track-flight-status-with-live-activity-14.webp)
</TabItem>
<TabItem label="状态变更时">
同一张卡片会更新，例如登机口 `B14`，状态 `Delayed`，预计时间 `19:10`。

![状态变更后的锁屏 Live Activity 卡片，显示登机口 B14、Delayed 和预计时间 19:10](/live-activity-how-to-track-flight-status-with-live-activity-15.webp)
</TabItem>
<TabItem label="降落后">
卡片关闭并从锁屏上消失。
</TabItem>
</Tabs>