跳过内容

Android 上的 Google 登录

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

在 Android 上使用 Google 登录

在 Android 上使用 Google 登录

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

  1. 创建Android客户端ID。

    1. 在搜索栏中点击

      Google 控制台搜索栏
    2. 在 Google 控制台中 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 文件中的应用 ID 配置
    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

        Java文件夹在Android Studio项目结构中
      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. 在您的后端存储 Google 刷新令牌,并在后端刷新

    1. 进入 Device manager 并点击加号按钮

      在 Android Studio 中的设备管理器中,点击加号按钮
    2. 创建虚拟设备

      在虚拟设备配置中点击创建虚拟设备按钮
    3. 选择任何具有 Play Store 图标的设备

      硬件选择中显示支持 Play Store 的设备

      如您所见, 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到您的项目的注释