AWS Mobile推送通知示例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS Mobile推送通知示例相关的知识,希望对你有一定的参考价值。
我试图围绕AWS Mobile Push Notification如何工作。具体来说,我正在构建一个能够向我的用户设备上运行的移动应用程序发送通知的Web服务。阅读完所有文档后,听起来高级流程是:
- 组态
我需要进入我各自的Push Notification Services(适用于android的GCM和适用于ios的APNS)并配置它们以获取我配置后端服务的凭据,以便在运行时连接到它们
我需要登录AWS SNS控制台并生成一个平台应用程序ARN(
PlatformApplicationARN
),我还配置我的后端使用 - 代码流程(运行时)
当新用户第一次注册时,或者现有用户在新设备上登录时,我会让应用程序向我的服务发送他们的设备信息。此设备信息的一个关键部分是其设备令牌(在AWS文档中也称为“注册ID”)。此令牌由其操作系统生成,并在其各自的推送通知服务中唯一标识其设备(对我而言,再次为GCM或APNS)
当我的服务收到这个新的设备信息时,我保存它,我还使用设备令牌命中AWS SNS API(以及我配置的
PlatformApplicationARN
)为该特定设备生成唯一的EndpointARN
现在,每当我的后端决定需要向该用户发送通知时,我可以查找与该用户关联的所有设备(我之前存储在我的数据库中),并获取每个设备的EndpointARN
。然后只需要点击AWS SNS API将我的通知消息发送到该EndpointARN
,听起来AWS SNS会处理其他所有事情(并将实际消息传递给设备)
所以在我进一步发展之前,我只是在找一个人来帮助理智检查我的理解并提供任何课程更正,如果我误解了任何东西或者缺少配置/流程的任何重要部分!假设我或多或少走上正轨......
一旦我向EndpointARN
发送通知消息,我仍然没有看到SNS如何能够连接到GCM和APNS。他们是否与这些服务保持自己的集成/连接?或者我以某种方式将我自己的GCM / APNS凭证注入AWS SNS API调用?
此外,我知道推送通知可以相当可配置,允许您执行以下操作:
- 确定设备收到通知时应播放的声音
- 确定在收到通知时闪烁的颜色LED指示灯开/关(在我的Android手机上,不同的应用程序会导致绿色,蓝色甚至紫色LED闪烁!)
- 确定Android / iOS操作系统本身是否收到通知(在这种情况下,如果我在离开它几分钟后回到我的手机,我可以按任意按钮查看任何新的高级列出的摘要我收到的通知);或者通知是否纯粹是“应用程序内”通知,在这种情况下我只会看到我收到它,如果我实际打开我的应用程序。
我想知道所有这些配置发生在哪里?有任何想法吗?
答案
我可以确认高水平的流量是:
- 登录AWS SNS并创建2个不同的平台应用程序,1个用于Android(GCM - Google云消息传递),另一个用于iOS(APNS - Apple推送通知服务)
- 对于每个平台应用程序,您将获得
PlatformApplicationArn
,并且将要求您提供凭据,以便SNS可以连接到您各自的GCM / APNS帐户 对于GCM,您只需要您的服务器API密钥(可以从GCM / Firebase CM获取) 对于APNS,您需要通过Mac上的Key Chain Access工具进行真正劳动密集型的创建证书的过程,这不是很有趣...... - 将这2个
PlaformApplicationArn
s添加到您的代码配置中 - 当用户使用您的应用注册新设备时,他们会向您发送设备令牌(由GCM或APNS配置),以便向GCM / APNS唯一标识它们
- 获取此设备令牌,结合您的
PlatformApplicationArn
用于GCM或APNS,并使用AWS SNS SDK为设备创建EndpointArn
。存储此EndpointArn
然而你喜欢。 - 现在,您可以随时使用AWS SNS SDK将消息推送到
EndpointArn
(特定设备)。
以上是关于AWS Mobile推送通知示例的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android (Xamarin) 上为 AWS SNS 启用推送通知