如何从 Web 应用程序向移动应用程序发送通知给特定用户

Posted

技术标签:

【中文标题】如何从 Web 应用程序向移动应用程序发送通知给特定用户【英文标题】:How to send notification to specific user from web application to mobile application 【发布时间】:2019-09-14 14:43:53 【问题描述】:

我有一个 Web 应用程序和移动应用程序来管理用户包裹。现在,我想当用户收到包裹时,通过移动应用程序从网络应用程序向他发送通知。

我使用OneSignal并成功连接了我的移动应用程序,但不知道哪个以及如何调用api来向特定用户发送通知?

另外,我阅读了文档,但找不到任何方法和示例来满足此要求

【问题讨论】:

您可以使用设备生成的唯一令牌发送推送通知 我知道,但我怎样才能获得特定用户的唯一设备令牌? 使用MyInstanceIDListenerServicegithub.com/googlesamples/google-services/blob/master/android/… 我的意思是如何在我的网站中访问该令牌并使用该令牌调用 api? 您可以在从设备登录时发送该令牌并存储在服务器端 【参考方案1】:

向移动设备发送推送通知最流行的方式是使用 Google Firebase 推送通知

每台设备都由 Firebase(Android 或 ios)生成的唯一设备令牌进行跟踪。

您的用例解决方案:

每当用户尝试登录您的应用程序时,只需触发对后端的 API 调用。

该 API 将使用 userId 和设备令牌将条目放入数据库。

当您要发送推送通知时,只需使用 Firebase SDK 根据 userId 从数据库中获取设备令牌。

示例:

为可能是 Android 或 IOS 的多个设备 ID 发送通知。

您可以在 fireBase 中使用 MulticastMessage。

                    MulticastMessage multiCast = MulticastMessage.builder()
                        .putAllData(new HashMap<String, String>()  put("message":"hi"); )
                        .setApnsConfig(ApnsConfig.builder().build())
                        .setAndroidConfig(AndroidConfig.builder().build())
                        .addAllTokens(Arrays.asList("devicetoken1", "devicetoken2"))
                        .build();

供参考:https://firebase.google.com/docs/cloud-messaging/send-message

【讨论】:

以上是关于如何从 Web 应用程序向移动应用程序发送通知给特定用户的主要内容,如果未能解决你的问题,请参考以下文章

从 Windows Phone 设备向 Web 服务发送推送通知

Web 应用程序如何向 iOS 设备发送推送通知? [关闭]

如何从服务器向客户端发送消息?

如何将数据从服务器发送到Android?

从 web 上的 fcm 向现有 gcm 用户发送推送通知

如何从 SDK/框架向父应用发送推送通知?