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

标签 azure xamarin push-notification google-cloud-messaging xamarin.android

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

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

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

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 作为初始原型(prototype)、概念验证的主要设备类型,然后在稍后阶段转向 iOS 和 Windows Universal 10。

最佳答案

我的 2 美分。

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

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

由于听起来无论您选择哪个选项,您都计划通过 Azure 发送消息,因此您将必须处理相同的通知中心限制,这意味着直接通过 native 服务器注册不会获得太多好处接口(interface)(一条消息可以拥有的标签数量的限制是我主要考虑的)。

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

*编辑:虽然如果您只是想让某些功能正常工作,但我认为直接注册到 GCM 然后再切换代码通过 Azure 来完成此操作没有问题。

关于azure - 通过 Azure 通知中心使用 Xamarin Forms 在 Android 模拟器上推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40020385/

相关文章:

azure - 将文件放入 Azure Blob(不带 ContentLength)

Azure AD B2C - 异步电子邮件验证

c# - MvxListView 不像普通的 xamarin ListView 那样流畅

c# - 如何在 Xamarin 中获取 GoogleApiClient 实例?

android - 提醒通知未按预期工作

eclipse - Eclipse 的 Azure 部署 Web 应用程序错误

sql-server - SQL Azure CONTAINS 不返回所有结果

android - 自定义日期选择器按钮

ios - 如何启用/禁用来 self 的应用程序的推送通知

php - 使用 php 的适用于 iOS 的苹果推送通知和适用于 Android 的谷歌云消息传递?