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

如何通过Python FCM向iOS发送带发送者头像的通信通知?

如何通过FCM在iOS通知中显示发送者图片而非应用图标

可以实现,但你当前在data字段传icon的写法无法达到需求。iOS的通知系统(APNs,FCM最终会转发请求到APNs)需要特定配置才能替换通知上的应用图标为发送者图片,具体分两种实现方式:

方式一:通过Notification Service Extension自定义通知内容

这是最通用的方案,适用于所有类型的通知:

  1. FCM消息构造:需同时包含notification和data字段,开启mutable_content让iOS允许修改通知内容,在data中传递发送者图片的URL:
message = messaging.Message(
    notification=messaging.Notification(
        title='Hello',
        body='This is a test notification',
        mutable_content=True  # 关键:开启可变内容,触发Extension
    ),
    data={
        'type': '0',
        'sender_image_url': f"{sender_image_notification}"  # 传递发送者图片地址
    },
    token=f'{user_token}'
)
  1. iOS端配置:
    • 创建一个Notification Service Extension目标
    • 在Extension的didReceiveNotificationRequest:withContentHandler:方法中,从request.content.userInfo取出sender_image_url,下载图片文件
    • 创建UNNotificationAttachment对象,将其添加到通知内容的attachments数组中
    • 注意:图片必须是iOS支持的格式(JPG/PNG),且文件大小不超过10MB,否则无法显示

方式二:利用iOS通信通知(Messages-style)的联系人标识

如果你的通知属于通信类(比如聊天消息),可以利用iOS的通信通知框架:

  1. FCM端:在data中传递发送者的唯一标识(比如用户ID)
  2. iOS端:
    • 提前将发送者的信息(包含图片)注册到CNContactStore中
    • 在Notification Service Extension中,根据FCM传递的标识匹配联系人,将通知内容的person字段设置为对应的CNContact对象
    • 这样iOS会自动显示联系人的图片作为通知图标

注意事项

  • 直接在FCM的notification字段中使用image参数,只会在通知下方显示大图片,不会替换应用图标位置的图像
  • 图片URL必须是公网可访问的,且iOS设备能正常下载(注意HTTPS协议、跨域等问题)

内容的提问来源于stack exchange,提问作者prg.dev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 10:33:22