iOS推送通知中Notification/Message/Transaction含义及FCM控制咨询
iPhone推送通知中「Message/Notification/Transactions」的定义与FCM控制方法
一、标识的核心定义
这些字样是iOS系统根据推送的APNs payload结构自动生成的分类标签,用于在通知列表中快速区分通知类型:
- Message:对应包含
alert.body的即时消息类推送(比如聊天消息),系统判定为用户可交互的对话类通知。 - Notification:通用型通知,当推送仅包含基础提醒(如
alert.title或简单提示)、无明确分类特征时,系统默认标注该标签。 - Transactions:交易类通知标识,要么是推送内容包含交易相关关键词(如“转账”“订单”),要么是开发者通过payload的
category字段指定了交易类分类,系统自动匹配生成。
二、通过FCM控制这些标识的方法
FCM需传递符合APNs规范的payload来实现控制,核心是配置APNs专属字段:
1. 隐藏默认标签(列表不显示Message/Notification等)
要避免系统自动添加标签,需满足任一条件:
- 推送包含完整
alert结构,且alert.body有具体内容,让系统判定为明确的消息类通知而非通用提醒。 - 通过自定义
category字段,结合iOS端提前注册的通知类别,让系统使用自定义分类替代默认标签。
FCM推送payload示例(通过apns字段传递APNs配置):
{ "to": "DEVICE_TOKEN", "apns": { "payload": { "aps": { "alert": { "title": "你的订单已发货", "body": "快递单号:123456789" }, "category": "ORDER_SHIPPED" // 需iOS端提前注册该类别 } } } }
2. 自定义类似Transactions的标识
若要让系统显示特定分类标签,有两种实现方式:
- 关键词触发:在
alert.title或alert.body中加入交易、订单等相关词汇,系统会自动识别并标注“Transactions”。 - 通知类别关联:iOS端注册通知类别时绑定对应分类标识,FCM推送时指定
category字段,系统将展示对应标签(需iOS端代码配合配置)。
3. 长按后标签消失的原因
长按通知进入详情模式时,iOS会展示完整的通知内容(alert.body等),默认分类标签仅属于列表视图的简化展示逻辑,因此会被隐藏,仅保留真实消息和操作选项(操作选项由category关联的通知扩展定义)。
内容的提问来源于stack exchange,提问作者Sahka
相关产品推荐
相关产品推荐

