跳过内容

Google 登录 Android

GitHub

在本指南中,您将学习如何在 Android 设备上设置 Google 登录和 Capgo 社交登录。 一般设置指南.

在本部分中,您将学习如何在 Android 上设置 Google 登录。

  1. 创建Android客户端ID

    1. 点击搜索栏

      Google控制台搜索栏
    2. 搜索 credentials 并点击 APIs and Services 截图中的第2个(数字2)

      显示凭据选项的搜索结果,API和服务突出显示
    3. 点击 create credentials

      Google控制台中的创建凭据按钮
    4. 选择 OAuth client ID

      在凭据创建菜单中选择 OAuth 客户端 ID
    5. 选择 Android 应用程序类型

      应用程序类型选择中 Android 选项突出显示
    6. 打开 Android Studio

    7. 在导航器的最下方找到 Gradle Scripts

      Android Studio 项目导航器中的 Gradle Scripts 部分
    8. 在 Gradle Scripts 部分中找到 build.gradle 模块 app

      build.gradle (Module: app) 文件
    9. 复制 android.defaultConfig.applicationId. 这将是你的 package name 在 Google 控制台

      Build.gradle 文件显示 applicationId 配置
    10. 现在,打开终端。确保你在你的应用程序的文件夹中并运行 android 终端显示 gradlew signInReport 命令 ./gradlew signInReport

    滚动到此命令的顶部。您应该看到以下内容。复制
    1. 终端输出显示 SHA1 证书指纹 SHA1.
    现在,返回到 Google 控制台。输入你的
    1. 作为 applicationId 并你的 SHA1 在证书字段中并点击 Package Name Android 客户端创建表单,包名和 SHA1 字段已填充 create
    Terminal showing gradlew signInReport command
  2. 创建一个 Web 客户端(这是 Android 必须的)

    1. 前往 Create credentials 页面在 Google 控制台

    2. 设置应用类型为 Web

      应用类型选择中 Web 选项突出显示
    3. 点击 Create

      Web 客户端创建表单中 Create 按钮位于底部
    4. 复制客户 ID,您将其作为 webClientId 在您的 JS/TS code

      客户 ID 详情显示 Web 客户端 ID 复制
  3. 修改您的 MainActivity

    1. 请打开您的应用程序在 Android Studio 中。您可以运行 cap open android

    2. 在 Android Studio 项目导航器中找到 MainActivity.java

      1. 在 Android Studio 项目结构中找到 app 找到你的

        并点击它
      2. MainActivity.java 文件在包结构中 java

        请修改
      3. 请添加以下内容 __CAPGO_KEEP_0__ MainActivity.java 复制到剪贴板

        在 Android Studio 项目导航器中找到 App 文件夹
    3. 在 Android Studio 项目结构中找到 Java 文件夹 MainActivity.java. Please add the following code

      import ee.forgr.capacitor.social.login.GoogleProvider;
      import ee.forgr.capacitor.social.login.SocialLoginPlugin;
      import ee.forgr.capacitor.social.login.ModifiedMainActivityForSocialLoginPlugin;
      import com.getcapacitor.PluginHandle;
      import com.getcapacitor.Plugin;
      import android.content.Intent;
      import android.util.Log;
      import com.getcapacitor.BridgeActivity;
      // ModifiedMainActivityForSocialLoginPlugin is VERY VERY important !!!!!!
      public class MainActivity extends BridgeActivity implements ModifiedMainActivityForSocialLoginPlugin {
      @Override
      public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      if (requestCode >= GoogleProvider.REQUEST_AUTHORIZE_GOOGLE_MIN && requestCode < GoogleProvider.REQUEST_AUTHORIZE_GOOGLE_MAX) {
      PluginHandle pluginHandle = getBridge().getPlugin("SocialLogin");
      if (pluginHandle == null) {
      Log.i("Google Activity Result", "SocialLogin login handle is null");
      return;
      }
      Plugin plugin = pluginHandle.getInstance();
      if (!(plugin instanceof SocialLoginPlugin)) {
      Log.i("Google Activity Result", "SocialLogin plugin instance is not SocialLoginPlugin");
      return;
      }
      ((SocialLoginPlugin) plugin).handleGoogleLoginIntent(requestCode, data);
      }
      }
      // This function will never be called, leave it empty
      @Override
      public void IHaveModifiedTheMainActivityForTheUseWithSocialLoginPlugin() {}
      }
    4. 保存文件

  4. 在应用程序中使用 Google 登录

    1. 首先,导入 SocialLogin

      import { SocialLogin } from '@capgo/capacitor-social-login';
    2. 调用 initialize。应仅在此处调用一次。

      // onMounted is Vue specific
      // webClientId is the client ID you got in the web client creation step not the android client ID.
      onMounted(() => {
      SocialLogin.initialize({
      google: {
      webClientId: '673324426943-avl4v9ubdas7a0u7igf7in03pdj1dkmg.apps.googleusercontent.com',
      }
      })
      })
    3. 调用 SocialLogin.login. 创建一个按钮并在点击时运行以下 code。

      const res = await SocialLogin.login({
      provider: 'google',
      options: {}
      })
      // handle the response
      console.log(JSON.stringify(res))
  5. 配置模拟器进行测试

    1. 进入 Device manager 在 Android Studio 中的设备管理器中点击加号按钮

      创建虚拟设备
    2. 虚拟设备配置中的创建虚拟设备按钮

      选择任何具有
    3. 图标的设备 Play Store Select any device with a

      硬件选择显示支持Play商店的设备

      如您所见, pixel 8 支持 Play Store 服务

    4. 点击 next

      设备创建向导中的下一步按钮
    5. 确保OS镜像类型为 Google Play. 必须 类型为 Google Play

      系统镜像选择显示Google Play类型的镜像
    6. 点击下一步

      系统镜像选择屏幕中的下一步按钮
    7. 确认您的设备。您可以为模拟器命名

      设备配置验证屏幕,带有完成按钮
    8. 进入 Device Manager 并启动您的模拟器

      设备管理器,列出了虚拟设备并显示播放按钮
    9. 模拟器启动后,进入其设置

      Android模拟器显示设置应用
    10. 进入 Google Play

    设置屏幕,显示Google Play选项
    1. 点击 Update 并等待约60秒
    Google Play更新屏幕,显示更新按钮
  6. 测试您的应用程序

    如果您做得正确,应该看到Google登录流程正常工作:

    Android上的Google登录流程演示,显示登录过程和成功的身份验证

如果您遇到任何问题,请查看 Github问题.

与Google登录相关的问题 总是 与SHA1证书有关。

如果您无法获得开发SHA1证书,请尝试使用自定义keystore。 这里 如何添加keystore到您的项目中是通过以下方式进行的。

继续使用Google登录Android

继续使用Google登录Android

如果您正在使用 Google登录Android 来规划身份验证和帐户流程,连接它到 使用@capgo/capacitor-social-login 为native能力在使用@capgo/capacitor-social-login中 @capgo/capacitor-social-login 为@capgo/capacitor-social-login实现细节 @capgo/capacitor-passkey 为@capgo/capacitor-passkey实现细节 @capgo/capacitor-native-biometric 为 @capgo/capacitor-native-biometric 的实现细节, 双因素认证 为双因素认证的实现细节,