将 Amazon SNS 与 React Native 结合使用

Posted

技术标签:

【中文标题】将 Amazon SNS 与 React Native 结合使用【英文标题】:Using Amazon SNS with React Native 【发布时间】:2017-03-05 17:34:35 【问题描述】:

谁能提供一个使用 Amazon SNS 服务在 React Native 下发送和接收推送通知的简单示例?

我已经设置了 Amazon SNS 服务,如果我手动输入设备令牌并在 Amazon 网站上启动发布,我可以从网站发布消息并将其显示在 iPhone 上。现在我想自动化在 Amazon SNS 中注册 Push Token 的过程,并允许应用程序向 SNS 服务发布推送。

我知道亚马逊有一个 very new project 可以将他们的 SDK 集成到 React Native 中,但我无法让它工作。对该回购的支持也是多余的,所以我希望这里有人可以提供帮助。

现在我得到的是:Undefined is not an object (evaluating 'cognateClient.initWithOptions')

GitHub 问题在 android 上提到了类似的东西,但显然这对我的 ios 应用没有帮助。

我正在寻找的是如何将亚马逊的代码集成到现有的 RN 应用程序的分步细分。他们不提供标准的 Node 包,所以我正在努力弄清楚如何让 React Native 代码和 SDK 与 Xcode 配合得很好。

有什么建议吗?谢谢!

【问题讨论】:

你能找到在 Amazon SNS 中反应原生推送通知的简单示例吗?我也需要请帮帮我。 【参考方案1】:

AWS 不需要“集成”到 RN 应用程序中。您只需要来自 RN 的设备令牌。

使用像 RNPN (https://github.com/zo0r/react-native-push-notification) 这样的包来获取手机生成的设备令牌。当你拥有它时,调用你的 api,然后你的 api 负责调用 SNS 以将该设备令牌注册为 SNS '端点'。

将此伪代码翻译成您的 API 所用的任何内容:https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html

总之……

RNPN onRegister -> 在您的 api 上发布 /registerDevice -> 呼叫 AWS 从您的 api 创建PlatformEndpoint -> 开始从您的 api 发送消息

您很可能希望在您的数据库/数据存储中存储一些来自用户 -> deviceToken+platformEndpoint 的关系。

然后您可以从您的 api 发送通知。在这里写了如何做到这一点:https://medium.com/@duhseekoh/send-a-push-notification-using-aws-sns-javascript-sdk-2f117e9c4180

【讨论】:

感谢您的解释,但链接已损坏。 感谢您的提醒。我更新了帖子以包含工作媒体链接。 是否需要在我的应用程序中添加伪代码实现才能从 AWS 平台接收测试 SNS?【参考方案2】:

我在 Amazon sns 中使用 react-native-fcm,它将注册我的设备令牌,然后我们将该令牌发送到我们的 php 解决方案,然后将设备添加到 SNS 中某个主题的订阅中,并传回应用程序是订阅令牌和 endsub 令牌。然后我们通过 SNS 向主题推送消息。适用于 iOS 和 Android。

【讨论】:

嗨!我也需要实现这个。 3d 方服务将 SNS 发送到 AWS,然后我们的应用程序需要显示它们。请帮助链接/信息如何实现这一点。 (RN 0.60.5)。

以上是关于将 Amazon SNS 与 React Native 结合使用的主要内容,如果未能解决你的问题,请参考以下文章

Amazon SNS 与 Firebase 定价

AMAZON AWS 我如何为端点订阅 SNS 主题?

Amazon SNS 静默推送

Amazon SQS/SNS 策略错误

将推送通知迁移到 FCM 或 Amazon SNS?

Amazon SNS 发布主题到百度云服务器