如何在 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?

如何在JQuery数据库CellEdit上集成Select2插件?

在角度通用应用程序(nodejs)上集成newrelic

如何在 MapView 上集成雷达叠加?

如何在空手道上集成 socket.io