跳过内容

Android 上的 Google 登录

简介

简介

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

使用 Google 登录

简介

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

  1. 点击搜索栏

    1. targetLanguage

      Google 控制台搜索栏
    2. 在搜索框中 credentials 并点击 APIs and Services 截图中的第二个选项(第 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. 查找 build.gradle 为模块 app

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

      打开 Build.gradle 文件,显示 applicationId 配置
    10. 现在,打开终端。确保你在你的应用程序的文件夹中,并运行 android folder of your app and run ./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项目导航器中的应用程序文件夹
      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 图标的设备

      硬件选择显示支持 Google 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 证书,请尝试使用自定义密钥库。 这里 是关于如何将密钥库添加到您的项目中的注释。