Firebase FCM通知API能否配置多个click_action?如何实现?
FCM通知使用多个click_action的实现方案
FCM官方规范的通知(notification)payload仅支持单个
click_action标准字段,你在示例中自定义的click_action_2这类非标准字段不会被系统默认识别,无法直接实现多跳转逻辑,需要结合数据(data)payload和客户端自定义逻辑实现。
实现步骤
- 第一步:将自定义跳转规则放到data payload中
所有非标准的跳转参数都放在data字段下,notification部分仅保留通用的标准配置,参考payload如下:{ "notification": { "title": "通知标题", "body": "通知内容", "icon": "ic_notification", // 统一设置一个通用的点击动作,让系统把点击事件交给你自定义的逻辑处理 "click_action": "CUSTOM_NOTIFICATION_CLICK" }, "data": { // 自定义多个跳转目标,字段名可以根据业务需求随便定义 "jump_target_1": "OPEN_ACTIVITY_1", "jump_target_2": "OPEN_ACTIVITY_2", // 额外加场景字段,用来判断当前应该触发哪个跳转 "scene": "GOODS_DETAIL" } } - 第二步:客户端实现点击事件分发逻辑
安卓端操作流程:- 先在
AndroidManifest.xml中对应处理通知点击的Activity/广播接收器上,注册对应CUSTOM_NOTIFICATION_CLICK的意图过滤器 - 接收到通知点击事件后,先从intent中取出data payload里的所有自定义字段
- 根据业务规则判断要跳转的目标:比如scene为
GOODS_DETAIL时使用jump_target_1对应的Activity,scene为ACTIVITY_NOTICE时使用jump_target_2对应的Activity即可。
iOS端逻辑一致,收到通知点击后从userInfo中取出自定义参数,判断跳转目标即可。
- 先在
扩展说明
如果需要实现单条通知多按钮、每个按钮对应不同点击动作的需求,不要依赖系统默认的通知渲染:
- 应用在前台接收通知时,完全由自己的代码构造Notification,给不同按钮设置不同的PendingIntent,即可支持任意多个点击动作
- 应用在后台接收通知时,可以通过仅发送data payload,强制由应用代码触发通知渲染,同样可以自定义多按钮跳转逻辑
内容的提问来源于stack exchange,提问作者Muhammad Usman
相关产品推荐
相关产品推荐

