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

如何通过AWS CLI为iOS推送通知设置自定义音效与角标?

如何通过AWS CLI给iOS推送添加自定义音效和角标

嘿,这个需求完全可以实现!你之前用的简单--message参数只能传纯文本消息,但AWS SNS支持传递APNs专用的结构化payload,刚好能满足你设置自定义音效、角标这些需求,和直接调用Apple的APNs接口效果一致。

核心思路

关键是要使用--message-structure json参数,告诉SNS你要传递的是多平台结构化消息,然后在--message里构造APNs要求的JSON格式内容,包含aps字典来配置音效、角标等属性。

完整命令示例

下面是针对你的沙箱环境(APNS_SANDBOX)的完整命令,已经包含了自定义音效和角标的配置:

aws sns publish \
  --target-arn "arn:aws:sns:us-east-1:545678945607:endpoint/APNS_SANDBOX/MyApp/lk4ggss56-2F29-3r55-6Qw2-dsd4sad4s5a" \
  --message-structure json \
  --message '{
    "APNS_SANDBOX": "{\"aps\": {\"alert\": \"hello!\", \"sound\": \"custom_notification.wav\", \"badge\": 3}, \"custom_key\": \"你可以加自定义数据\"}"
  }'

参数详解

  • --message-structure json: 必须指定这个参数,否则SNS会把你的JSON当成纯文本处理
  • APNS_SANDBOX: 对应iOS沙箱环境,如果是生产环境,替换成APNS即可
  • aps字典: 这是APNs要求的核心配置块:
    • alert: 推送的消息内容,也可以拆分为title和body,比如{"alert": {"title": "新通知", "body": "hello!"}}
    • sound: 自定义音效的文件名(要确保这个音频文件已经打包在你的iOS App中,格式支持wav、aiff、caf),如果用默认音效可以设为"default"
    • badge: 应用图标角标的数字,设为0可以清除现有角标
  • 自定义数据: 你可以在aps外面添加任意键值对,这些数据会被传递到你的App中,供业务逻辑使用

注意事项

  1. 要确保你的SNS端点(Endpoint)对应的平台应用是正确的沙箱/生产环境,否则推送会失败
  2. 自定义音效的文件名要和App中打包的完全一致,iOS是区分大小写的
  3. 如果只需要配置角标或者只需要自定义音效,只保留对应的字段即可,不需要的可以删掉

这样配置后,你的推送就能按照预期播放自定义音效、显示指定的角标数字啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:42:33