我正着手建立一个Xamarin Forms项目,以证明概念,目的是让Android应用程序在Android模拟器中运行,注册并接收通过Azure的通知中心发送的google云通知。
在对此进行研究时,我发现了一些示例代码,它假设后端使用Microsoft的Mobile后端。如果可能的话,我希望我的客户端代码不依赖于Mobile后端。但是,在使用Azure通知集线器时,这可能是不可避免的(或不可取的)。这确实是我在这个问题上提出的核心问题。
下面链接的教程展示了使用依赖Azure Mobile Services后端的Xamarin forms应用程序注册和接收通知的方法。
然而,第二个教程展示了移动客户端应用程序(使用Xamarin Android开发)注册到Google消息云而不是Azure通知集线器的方法。
我正在尝试找出哪一种方法是正确的,使Xamarin窗体应用程序能够注册和接收通过Azure通知中心推送的通知。当通知通过Azure notifications (配置了用于Google消息传递的正确API凭据)发送时,第二个教程的方法(直接使用google云进行推送通知的设备注册)会起作用吗?还是我遗漏了什么?
换句话说,采用第二种方法会让我的生活变得困难吗?
我的重点是使用Xamarin表单进行开发,但使用Android作为初始原型、概念证明的主导设备类型,然后在稍后阶段继续使用iOS和Windows 10。
发布于 2016-10-13 13:49:48
我的2美分。
使用Azure通知中心的全部目的是抽象出处理Google和iOS推送通知系统的需要。既然您计划最终同时使用iOS和安卓,我建议您通过Azure注册。
在注册设备时,Azure将处理iOS反馈通道,这很好,而且您可以在Azure中使用消息模板,这意味着您可以发送单个通知中心消息,它将自动转换为iOS的GCM希望看到的消息和iOS‘APNS希望接收的另一条消息(它们都期望不同的通知消息格式)。
因为听起来无论您选择哪种选项,您都计划通过Azure发送消息,因此您将不得不处理相同的Notification限制,这意味着直接通过本机服务器接口注册并不能带来什么好处(我主要考虑的是消息可以具有的标记数量的限制)。
如果您想直接从设备注册,或者像我们一样,可以让移动设备调用您自己的后端服务器之一,它可以在发送注册请求到设备的azure之前进行一些初始处理,这两个平台都有一个库。
*编辑:虽然如果你只想让一些东西工作,我不认为直接注册到GCM,然后在稍后切换代码通过Azure做它没有问题。
https://stackoverflow.com/questions/40020385
复制相似问题