当前位置: 首页 > 知识库问答 >
问题:

如何为使用AWS SNS创建的远程推送通知设置APNS通知标识符?

汪理
2023-03-14

我在后端使用AWS SNS SDK向我的应用程序发送远程通知,我需要能够设置通知标识符,以便某些通知默认替换之前交付的副本,如iOS开发者文档中所述:

如果在计划新通知时使用相同的标识符,系统将删除具有该标识符的先前计划的通知,并将其替换为新通知。

对于本地通知,这很容易做到,因为它们是在应用程序中安排的,在安排通知时,您可以在应用程序中设置通知标识符。

但是,对于远程通知,我似乎找不到任何方法来使用SNS SDK(在用. NET编写的Lambda中)设置通知标识符。

根据API参考,SNS返回一个带有消息ID(很可能是通知标识符)的响应,但是我看不到任何自己设置标识符的方法。

有人知道怎么做吗?还是SNS根本不允许这样做?

共有2个答案

印高阳
2023-03-14

AWS SNS似乎根本不允许定制通知标识符,也不允许定制发送到APNS的HTTP报头。

使远程推送通知在到达时替换自身的唯一可行解决方案似乎是使用通知服务扩展在收到新通知时检查已发送的通知,并将任何先前的副本替换为新版本。

它似乎工作一致,您可以选择在通知 JSON 中设置自定义负载属性或线程 ID 属性,以便在传递每个通知之前在设备上对其进行检查。

怀宇
2023-03-14

您可以自定义负载,如 AWS:https://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-custommessage.html

使用 Amazon SNS 控制台在消息中发送特定于平台的有效负载时,数据必须是键值对字符串,并且必须格式化为 JSON,并带有转义引号。以下示例(包括用于提高可读性的格式和空格)显示了 GCM 平台的示例自定义消息,其中键值对位于消息正文中并格式化为 JSON。

{"GCM":"{"data":{"消息":"看看这些超棒的交易!","url":"www.amazon.com " } }" }

您可以将您的id添加为自定义字段。

编辑:如果您需要添加标头,则可能需要通过 Lambda 函数代理请求:https://docs.aws.amazon.com/sns/latest/dg/sns-lambda.html 此处的线程显示了如何使用 Lambda 添加响应标头:从 AWS lambda 设置 http 响应标头

 类似资料:
  • 我编写了一个RESTAPI。NET Core现在需要创建一个推送通知到Firebase Cloud Messaging(FCM)。对于测试,我使用Firebase控制台,但我需要通过编程来完成。我已经通过谷歌浏览了Firebase的文档和一些例子,但我更困惑了。 我认为可以通过常规创建消息,但有人可以发布一个简单的工作示例以便我可以拿起它吗?或者也许,我的理解完全错误?

  • 问题内容: 我正在开发一个PHP网站+ iPhone应用程序和iPhone应用程序API,具有一个面向学生和医生的消息传递系统,当任何一个人(从网站或iPhone)发送消息时,另一个用户应在其iPhone上获得推送通知。例如,如果学生为老师添加了一个新问题,则老师iPhone / iPad上的推送通知将发送给老师,并且当老师回复学生的答案时,学生会收到推送通知。 由于对在网站上注册的师生人数没有限

  • 我正在尝试用远程通知处理所有可能的情况。当调用Foreground-DidReceiverEmoteNotification中的app时我就ok了。问题是当应用程序处于后台状态时,我收到推送通知。什么都不叫。如何让用户知道他有新的远程通知当应用程序回到前台?

  • 问题内容: 我正在尝试为我的应用程序设置推送通知系统。我有服务器和开发人员许可证来设置推送通知服务。 我目前正在Swift中运行我的应用。我希望能够从服务器远程发送通知。我怎样才能做到这一点? 问题答案: 尽管可以很好地处理推送通知,但我仍然相信可以立即共享完整的完整案例以简化操作: 要注册APNS的应用程序,(在AppDelegate.swift中的didFinishLaunchingWithO

  • 问题内容: 我一直在构建一个简单的应用程序来学习angular.js。到目前为止,我已经将MEAN堆栈中的所有内容连接在一起,并且能够从Mongo中保存和检索数据。 该应用程序本质上是一个待办事项列表。用户可以创建一个项目,并在项目内部创建带有“待办事项”的“卡片”,然后可以从一个州转移到另一个州(“积压”,“进行中”,“完成”等)。 我希望能够将通知推送给所有已连接的人员,以告知其应用程序需要刷

  • 首先,我想声明我一直在研究推送通知和web通知之间的关系,但我有点困惑。 我从这里读到PWAs的推送通知在Safari上的iOS(iPhone)不起作用:从PWA向iOS发送推送通知 然而,如果iPhone用户使用的是Chrome,这是否意味着它们可以工作呢?或者推送通知在任何浏览器上对iPhone中的PWAs都不起作用? 这就把我带到了web通知。web通知在后台对PWAs起作用吗?我的问题是w