You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase推送通知payload的body字段如何正确添加换行

FCM推送通知body换行解决方案

不同平台的通知栏对换行符的解析规则不同,直接在notification字段的body中添加\n、\r\n不会被所有设备识别,可按以下方案处理:

1. 安卓端解决方案

FCM默认自动渲染notification类型payload时,会转义所有转义字符,\n会被当成普通文本处理,不会生效,建议改用自定义通知渲染逻辑:

  • 调整payload结构,移除顶层notification字段,将通知内容放到data字段中:
// Firebase Functions 侧代码调整
const msg = {
  data: {
    title: title,
    body: "this is the content of first line: \n second line",
    badge: "1",
    sound: "default"
  }
};
return admin.messaging().sendToDevice(token, msg);
  • 安卓端接收到data类型payload后,自行创建Notification实例,直接读取body字段内容设置给通知,此时字符串中的\n会被正常识别为换行符。

2. iOS端解决方案

iOS通知栏原生支持\n换行,只需确认转义字符未被二次转义即可:

  • 如果推送内容是从JSON配置读取的,要确保JSON里的换行符写为\\n,避免JSON解析时被转义丢失。
  • 若仍不生效,可添加apns配置开启通知内容修改权限:
const msg = {
  notification: {
    title: title,
    body: "this is the content of first line: \n second line",
    badge: "1",
    sound: "default",
  },
  apns: {
    payload: {
      aps: {
        'mutable-content': 1
      }
    }
  }
};

3. 跨平台通用兼容方案

如果需要同时兼容安卓和iOS,统一使用data payload,双端均自行实现通知渲染逻辑是最稳妥的方案,不会受FCM默认渲染逻辑限制。

注意:部分安卓定制ROM的通知栏本身会强制截断多行内容为单行,属于系统限制,无法通过代码修改。

内容的提问来源于stack exchange,提问作者ALEXANDER LOZANO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:09:03