如何在 Xamarin.Android 应用上集成新的 Google 登录?
Posted
技术标签:
【中文标题】如何在 Xamarin.Android 应用上集成新的 Google 登录?【英文标题】:How do you integrate the new Google Sign-In on a Xamarin.Android app? 【发布时间】:2016-01-06 17:25:19 【问题描述】:我正在尝试关注 Google's instructions,了解如何将新的 Google 登录(而不是旧的 Google+ 登录)添加到我的 Xamarin.android 应用程序。在我的一生中,我找不到支持新登录系统的正确 Google Play 服务 NuGet 包或 Xamarin 组件。
当我将以下代码添加到活动时,我得到“找不到类型或命名空间 'GoogleSignInOptions'。您是否缺少程序集引用?”构建错误。
// Configure sign-in to request the user's ID, email address, and basic
// profile. ID and basic profile are included in DEFAULT_SIGN_IN.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail().build();
以下是项目中包含的 Xamarin.GooglePlayServices NuGet 包:
<package id="Xamarin.GooglePlayServices.Ads" version="27.0.0.0" targetFramework="MonoAndroid50" />
<package id="Xamarin.GooglePlayServices.Analytics" version="27.0.0.0" targetFramework="MonoAndroid50" />
<package id="Xamarin.GooglePlayServices.AppIndexing" version="27.0.0.0" targetFramework="MonoAndroid50" />
<package id="Xamarin.GooglePlayServices.Base" version="27.0.0.0" targetFramework="MonoAndroid50" />
<package id="Xamarin.GooglePlayServices.Basement" version="27.0.0.0" targetFramework="MonoAndroid50" />
<package id="Xamarin.GooglePlayServices.Identity" version="27.0.0.0" targetFramework="MonoAndroid50" />
<package id="Xamarin.GooglePlayServices.Location" version="27.0.0.0" targetFramework="MonoAndroid50" />
<package id="Xamarin.GooglePlayServices.Maps" version="27.0.0.0" targetFramework="MonoAndroid50" />
<package id="Xamarin.GooglePlayServices.Plus" version="27.0.0.0" targetFramework="MonoAndroid50" />
Xamarin 尚不支持新的 Google 登录系统还是我遗漏了什么?
【问题讨论】:
【参考方案1】:启用预发布 nuget 并搜索:
Xamarin.GooglePlayServices.Identity 29.0.0-beta1
packages.config:
<packages>
<package id="Xamarin.Android.Support.v4" version="23.1.1.0" targetFramework="MonoAndroid44" />
<package id="Xamarin.GooglePlayServices.Auth" version="29.0.0-beta1" targetFramework="MonoAndroid44" />
<package id="Xamarin.GooglePlayServices.Base" version="29.0.0-beta1" targetFramework="MonoAndroid44" />
<package id="Xamarin.GooglePlayServices.Basement" version="29.0.0-beta1" targetFramework="MonoAndroid44" />
<package id="Xamarin.GooglePlayServices.Identity" version="29.0.0-beta1" targetFramework="MonoAndroid44" />
</packages>
Integrating Google Sign-In into Your Android App 的 C# 版本
SignInButton button = FindViewById<SignInButton> (Resource.Id.sign_in_button);
gso = new GoogleSignInOptions.Builder (GoogleSignInOptions.DefaultSignIn)
.RequestEmail ()
.Build ();
mGoogleApiClient = new GoogleApiClient.Builder (this)
.EnableAutoManage(mLoginFragment, failedHandler)
.AddApi (Auth.GOOGLE_SIGN_IN_API)
.Build ();
button.Click += delegate
signIn();
;
【讨论】:
你知道这些版本什么时候会从测试版升级到生产版吗? 根据最后一个 Cycle6:RS1 注释:Beta - 2016 年 1 月上旬和稳定 - 2016 年 1 月中下旬 在 2019 年,它不适用于 xamarin android 和 Visual Studio。版本29.0.0-beta1
不可用以上是关于如何在 Xamarin.Android 应用上集成新的 Google 登录?的主要内容,如果未能解决你的问题,请参考以下文章
在 NativeScript App 上集成 Android 服务
如何在使用 Typescript 的 Ionic App 上集成 API.AI?