跳过内容

Google Android 登录

简介

简介

在本指南中,您将学习如何在 Android 设备上设置 Google 登录和 Capgo 社交登录。 我假设您已经阅读了.

一般设置指南

使用 Google 登录

简介

  1. 创建一个Android客户端ID。

    1. 点击搜索栏

      Google控制台搜索栏
    2. 在搜索框中 credentials 并点击截图中的 APIs and Services 第 2 项

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

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

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

      应用程序类型选择,Android 选项高亮显示
    6. 打开 Android Studio

    7. 在浏览器的最下方,找到 Gradle Scripts

      在 Android Studio 项目浏览器中找到 Gradle Scripts 部分
    8. 找到 build.gradle 用于模块 app

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

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

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

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

    2. 设置应用类型为 Web

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

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

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

    1. 请在 Android Studio 中打开您的应用。您可以通过 cap open android

    2. 查找 MainActivity.java

      1. 打开 app 文件夹

        Android Studio 项目导航器中的 App 文件夹
      2. 查找 java

        Android Studio 项目结构中的 Java 文件夹
      3. 找到你的 MainActivity.java 并点击它

        在包结构中找到MainActivity.java文件
    3. 修改 MainActivity.java. 请添加以下内容 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 图标

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

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

    4. 点击 next

      设备创建向导中的下一步按钮
    5. 确保操作系统映像类型为 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 的注释。