# Push Kit简介

Push Kit（推送服务）是华为提供的消息推送平台，建立了从云端到终端的消息推送通道。所有HarmonyOS应用可通过集成Push Kit，实现向应用实时推送消息，使消息易见，构筑良好的用户关系，提升用户的感知度和活跃度。

#### 快速入门

请参考使用入门章节快速了解接入Push Kit的必要步骤。

#### 产品优势

*   **稳定的消息发送通道**
    
    Push Kit通过提供系统级长连接，实现即使应用进程不存在，也能实时推送消息。
    
*   **丰富的消息呈现样式**
    
    支持文本样式、通知大图标样式、多行文本样式、角标样式等多种消息展示方式，满足您多样化、个性化的消息发送需求。
    
*   **灵活的场景化消息**
    
    开发者可以根据实际场景灵活接入场景化消息。如通过应用内通话消息实现音视频通话，通过语音播报消息实现语音播报业务处理，通过后台消息实现配置更新等。
    

#### 推送消息提示场景

推送消息指的是应用**通过Push Kit发送的**，在华为终端设备上显示的通知消息。显示场景主要包括通知中心、锁屏、横幅、桌面图标角标与通知图标。

有关各场景的详细说明请参见通知提示场景。

#### 推送消息类型

Push Kit支持以下消息类型：

| 消息类型 | 说明 |
| --- | --- |
| 通知消息 | 通知消息由Push Kit直接下发，在终端设备的通知中心、锁屏、横幅等展示，用户点击后拉起应用。 您可以设置通知消息样式来吸引用户。 常见场景：行程提醒、账号动态等。 |
| 语音播报消息 | 当用户终端收到您发送的语音播报消息后，Push Kit会拉起应用的子进程，您可以在子进程中自行处理业务。 常见场景：语音播报。 |
| 卡片刷新消息 | 通过卡片刷新服务，在合适场景向用户即时推送卡片内容，提升用户的感知度和活跃度。 常见场景：打车出行、快递动态等。 |
| 后台消息 | 终端设备接收到后台消息后，如果应用进程在前台则将消息内容传给应用；如果应用进程不在前台则缓存消息，等待应用启动后再传给应用。 常见场景：用于告知应用更新配置参数。 |
| 实况窗消息 | 应用服务端向Push Kit服务端发送创建或更新实况窗的请求，创建实况窗，或更新实况窗内容。 常见场景：赛事比分更新，出行打车状态更新等。 |
| 应用内通话消息 | 支持应用实现网络音视频通话的能力。 常见场景：网络音视频通话。 |

#### 业务流程

使用Push Kit的主要业务流程如下：

1.  应用调用Push Kit，获取Push Token。
    
2.  应用成功获取Token后，建议及时上报Token等信息至应用服务端。
    
3.  应用服务端向华为Push Kit服务端（Push Cloud）发送推送消息请求。应用的通知开关默认关闭，发送请求前，请先请求通知授权，详情请参见请求通知授权。
    
4.  Push Kit服务端下发消息到Push Kit。
    
5.  Push Kit进行消息处理。
    

#### 约束和限制

#### 影响送达率的因素说明

Push Kit致力于提供安全可靠的系统级消息发送通道，保障消息成功送达。影响消息送达率的因素如下：

*   终端设备是否在线。如果设备离线，Push Kit会缓存消息，待设备上线后，再将消息推送给设备。
    
*   终端设备上应用是否被卸载。
    
*   终端设备的网络状况是否稳定。
    
*   终端设备的安全控制策略。
    

#### 推送消息的及时性

在终端设备网络条件良好且不拥堵情况下，Push Kit将使用智能推送策略以减少推送消息的时延。

为降低对用户的打扰，系统会学习用户的行为习惯，预测用户的睡眠时间，在用户睡眠期间实施消息管控。在此期间Push Kit将暂时缓存该时间段内收到的消息（应用内通话或category=VoIP的消息除外）。用户结束睡眠后，Push Kit会将消息重新投递到对应设备。

#### 推送消息长度与数量限制

*   消息体最大不能超过4096Bytes（不包括Token），若超过请求会返回错误码80300008。
    
*   每个项目每日全网最多可推送1000条测试消息，正式消息区分场景有不同的配额，参考消息频控说明。
    

#### 网络受限说明

如果终端设备连接的网络配置了防火墙或处于受限的网络下，将会影响消息的送达率，请检查以下端口号是否被禁用。

端口号：

*   5223
    
*   443
    

终端设备连接的推送服务器的IP是动态分配的，无法通过配置IP白名单方式放行。建议连接不受限的网络或放通以上端口。

#### 支持的国家/地区

Push Kit当前支持的设备中Wearable设备支持的国家请参见支持的国家/地区，其他设备仅支持中国境内（香港特别行政区、澳门特别行政区、中国台湾除外）。

#### 支持的设备

Push Kit相关能力支持Phone、Tablet、PC/2in1、Wearable、TV、Car设备。

Wearable设备仅在有网且独立使用场景下支持，在连接手机场景下不支持。

#### 云真机说明

Push Kit不支持云真机调试。

#### 模拟器支持情况

Push Kit支持模拟器，但与真机存在部分能力差异，具体差异如下。

*   通用差异：请参见“模拟器与真机的差异”。
*   模拟器不支持推送语音播报消息、推送实况窗消息、推送应用内通话消息。

#### 与相关Kit的关系

*   Push Kit建立了从云端到终端的消息推送通道，支持开发者从云侧实时推送消息。如果开发者希望从本地推送通知，可通过Notification Kit（用户通知服务）创建本地通知。
    
*   开发者推送卡片刷新消息时，需要通过Form Kit（卡片开发服务）提前创建应用的服务卡片。
    
*   开发者推送实况窗更新消息时，需要通过Live View Kit（实况窗服务）提前创建本地实况窗。
    
*   开发者推送应用内通话消息时，通过Call Service Kit（通话服务）管理应用通话能力。
    

#### 示例代码

Push Kit示例代码，请参考示例代码。