C# 从Xamarin.Android到Xamarin.Forms获取信息(GCM令牌)?

C# 从Xamarin.Android到Xamarin.Forms获取信息(GCM令牌)?,c#,google-cloud-messaging,xamarin.android,xamarin.forms,C#,Google Cloud Messaging,Xamarin.android,Xamarin.forms,这可能是一个非常简短的问题,但如何从Xamarin.Android到Xamarin.Forms获取信息呢 基本上,我想做的是: 首先,我从Google Play中检索Android项目中的一个令牌 服务 然后启动主应用程序并显示登录屏幕 在登录期间,我想将令牌转发到我的服务器,这样他就知道我的令牌,并可以向我发送消息 这是个好主意吗?如何将代币放入申请表的表单部分 提前谢谢 Xamarin.Forms和各个平台特定项目之间的通信有多种选择 通过访问Xamarin.Forms.Applicat

这可能是一个非常简短的问题,但如何从Xamarin.Android到Xamarin.Forms获取信息呢

基本上,我想做的是:

  • 首先,我从Google Play中检索Android项目中的一个令牌 服务
  • 然后启动主应用程序并显示登录屏幕
  • 在登录期间,我想将令牌转发到我的服务器,这样他就知道我的令牌,并可以向我发送消息
这是个好主意吗?如何将代币放入申请表的表单部分


提前谢谢

Xamarin.Forms和各个平台特定项目之间的通信有多种选择

通过访问Xamarin.Forms.Application类及其“Current”属性,您可以很容易地从每个项目调用Xamarin.Forms,该属性将为您提供Xamarin.Forms应用程序的实例

您还可以使用共享Xamarin.Forms代码中的DependencyService类对特定平台项目进行反向调用。使用async/await和TaskCompletionSource,这是将在android/ios上获取令牌的固有异步特性抽象为单个可等待函数调用的好方法。 您可以找到有关DependencyService的更多信息

最后,根据我收集的信息,您正在了解如何注册推送通知。最好只使用位于的PushNotifications插件

它应该能帮助你开始。一定要通读文档。要让一切正常运转,需要采取一系列步骤


如果您有更具体的问题或遇到什么问题,请发布一个新问题。我以前成功地在Android和iOS上集成了推送通知,可能会帮助您解决问题。

谢谢您提供的信息。不幸的是,我看到PushNotificationService需要android 5.0+,这是真的吗?另外,我也不确定,这个库为我做了什么?我的应用程序使用推送通知,我定期在4.2、5.0和6.0上测试它。在处理本地通知时,有些事情只能在5.0及更高版本上执行,但推送通知肯定会起作用。该库旨在为您处理注册和注销,以及解析传入消息和创建本地通知。我个人没有使用过它,因为我使用的是azure notification hub,但它仍然是检查某些功能是如何实现的一个很好的来源。那么,它“必须针对21进行编译,因为插件使用的是API 21特定的东西。[…]”在他们的文档中是什么意思?它必须编译到21级,但可以使用早期的级别,只要我不使用需要21级的功能?注册是什么意思?你是说,它为我在谷歌注册、归还代币等,并接收所有信息?所以我不需要自己注册GCM?没错。通常,您应该始终根据最新的API版本进行编译,并且只在受支持的地方使用较新的功能。是的,这个插件为您处理与GCM的联系,以及实现接收消息所需的服务和侦听器。它还提供了如何格式化推送通知(由应用程序开发人员定义)的愿景,并根据该愿景解析消息。你或许应该探索回购协议并从中学习。如果你想为自己的使用设计更具体的东西,你不必实际使用它。好的,我想这会对我有帮助,我今天晚些时候回家后会试用。我会给你一些反馈。顺便说一句:如果我使用插件的一个需要21的功能,但我在<21的时候运行它,它会崩溃吗?它安装正确吗?