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

如何自定义Apple Push Notification中Pass更新时的通知内容?

Pass更新通知自定义内容不生效的修复方案

问题根源

Apple Wallet的Pass推送有特殊规则:当推送payload不符合Pass专属的格式要求时,系统会自动替换为默认的「[组织名] Pass changed」通知。你当前的代码虽然设置了alert,但结构不符合Pass推送的规范,导致自定义内容未生效。

具体修复步骤

1. 修正APN推送的Payload结构

如果你使用node-apn库,需要将alert等通知字段嵌套在aps对象下,这是Apple推送的标准结构。修正后的代码:

const notification = new Notification(deviceToken, {
  priority: Priority.immediate,
  aps: {
    alert: {
      title: "Hello World",
      body: "Your first notification!",
    },
    badge: 1,
    sound: 'default',
  },
  topic: 'pass.ai.XXX.XXX', // 必须与Pass的passTypeIdentifier完全一致
});

2. 检查Pass文件的基础配置

确保你的.pkpass包内的pass.json满足:

  • 正确配置了webServiceURL和authenticationToken(这是触发Pass更新推送的必要条件)
  • organizationName字段正常(默认通知会用到这个值,但不影响自定义通知的显示)

3. 匹配Apple官方Payload规范

如果直接通过HTTP请求推送APN,Payload必须严格遵循Apple的格式要求,示例如下:

{
  "aps": {
    "alert": {
      "title": "自定义标题",
      "body": "自定义通知内容"
    },
    "badge": 1,
    "sound": "default"
  }
}

4. 验证推送权限与Topic

  • topic参数必须和Pass的passTypeIdentifier完全匹配(即pass.ai.XXX.XXX)
  • 推送证书必须包含对应Pass类型的推送权限,否则推送会被拦截

额外提示

  • 若仅需触发Pass更新、不需要自定义通知,可发送空Payload({}),系统会显示默认通知;但只要明确指定aps.alert,就应该显示自定义内容
  • 排查问题时,建议用apns-cli等工具直接发送标准Payload,排除第三方库的格式转换问题

内容的提问来源于stack exchange,提问作者Vartan Arabyan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 07:35:57