通过 Azure 通知中心使用 Xamarin Forms 在 android 模拟器上推送通知

Push notifications on android emulator using Xamarin Forms via Azure Notification Hubs

我正在着手建立一个 Xamarin Forms 项目用于概念验证,目的是让 Android 应用程序 运行 在 Android 模拟器中注册和接收 google 通过 Azure 的通知中心发送的云通知。

在对此进行研究时,我发现了一些示例代码,这些示例代码假定后端使用 Microsoft Azure 的移动服务后端。 如果可能的话,我不希望我的客户端代码依赖于移动服务后端。但是,在使用 Azure 通知中心时,这可能是不可避免的(或不可取的)。这确实是我提出这个问题的核心问题。

下面链接的教程展示了一种使用依赖于 Azure 移动服务后端的 Xamarin 表单应用注册和接收通知的方法。

https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-xamarin-forms-get-started-push/

然而,第二个教程展示了一种方法,其中移动客户端应用程序(使用 Xamarin Android 开发)注册到 Google 消息传递云而不是 Azure 通知中心。

https://developer.xamarin.com/guides/android/application_fundamentals/notifications/remote_notifications_in_android/

我要解开的地方是试图找出使 Xamarin 表单应用程序能够注册和接收通过 Azure 通知中心推送的通知的正确方法。 当通过 Azure 通知中心发送通知时(为 google 消息配置了正确的 API 凭据),第二个教程的方法(设备直接使用 Google 云注册推送通知)是否有效?还是我遗漏了什么?

换句话说,我采用第二种方法是不是让自己过得不好?

我的重点是使用 Xamarin 表单进行开发,但使用 Android 作为初始原型的主要设备类型、概念验证,然后转向 iOS 和 Windows Universal 10在稍后阶段。

我的 2 美分。

使用 Azure 通知中心的全部意义在于抽象出处理 Google 和 iOS 推送通知系统的需要。由于您计划最终同时执行 iOS 和 Android,我建议您通过 Azure 注册。

A​​zure 将在注册设备时处理 iOS 反馈通道,这很好,您可以在 Azure 中使用消息模板,这意味着您可以发送单个通知中心消息,它会自动转换为Android 的 GCM 期望看到的消息和 iOS' APNS 期望接收的另一条消息(它们都期望不同的通知消息格式)。

因为听起来无论您选择哪个选项,您都计划通过 Azure 发送消息,您将不得不处理相同的通知中心限制,这意味着您从直接通过本机服务器接口(消息可以具有的标签数量限制是我主要考虑的问题)。

如果您想直接从设备注册,或者您可以像我们一样,让移动设备调用您自己的后端服务器之一,它可以在发送之前进行一些初始处理,那么这两个平台都有一个库设备的 azure 注册请求。

*编辑:虽然如果你只是想让一些东西工作,我不认为直接注册到 GCM 然后切换代码以稍后通过 Azure 来完成它没有问题。