我们正在开发一个发送推送通知的移动应用程序,我们希望使用Amazon SNS服务,我想确认我们计划如何管理设备注册和推送通知发送的一般概念。
据我所知:
在Amazon SNS中有PlatformApplication的概念,我们指定它是否是Android / iPhone等环境(Test / Prod,...)
然后,PlatformEndPoint"的概念用于设备和移动应用程序"所以,我想,对于每个下载并安装了应用程序的人来说,根据设备的类型(android,apple)在适当的平台上创建一个EndPoint是必要的
我的问题是,当应该创建这个PlatformEndPoint时,每次登录到应用程序时我们应该在每次注销时将其删除?
然后,当创建PlatformEndPoint并且我需要向特定用户(而不是每个人)发送推送通知时,我将使用Publish API和适当的TargetArn参数。
非常感谢您的意见和建议
答案 0 :(得分:2)
首先您需要通过SNS仪表板(或使用SDK)手动创建应用程序端点。
您可以在此处为Apple(APNS-Sandbox)声明测试环境。其他环境没有专门的测试环境。 (即Google),但我们鼓励您创建测试和生产应用程序,即使他们将使用相同的消息传递提供程序。
你最终可能会:
注意:您可以针对特定设备类型优化端点。 " iPhone分段"和/或" iPad-staging"等
<强>第二强>: 拥有应用程序端点后,您需要在系统中拥有根据系统环境知道要命中哪个端点的代码。即开发和分期可能指向&#34; Apple-staging&#34;端点。生产可能指向&#34; Apple-production&#34;。
<强>第三强>: 每当用户接受推送通知对话框时,您必须创建用户的端点,该端点又与应用程序端点相关。
过去强>
当您要发送推送通知时,您需要获取用户的arn(或端点)并使用Amazon sdk中的publish
方法。
错误处理
如果推送通知未成功发送,则会自动禁用用户的终端。您需要决定如何处理它们以便将来通知。您可以利用Amazon SQS,错误处理的实现可能会有所不同。