跳过内容

Android 上的 Google 登录

GitHub

简介

简介

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

注意

  1. 点击搜索栏

    1. __CAPGO_KEEP_0__

      Google Console 搜索栏
    2. credentials 中搜索并点击 APIs and Services 截图中的第 2 项

      显示了凭据选项的搜索结果,APIs 和 Services 高亮
    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

      build.gradle (Module: app) 文件在 Gradle Scripts 部分
    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

        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. 配置模拟器以进行测试

    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的注释.

从Google登录Android继续

Android上Google登录继续

如果您正在使用 Android上Google登录 为了计划身份验证和帐户流程,连接它与 使用 @capgo/capacitor-social-login 对于本地能力的 @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 的实现细节,以及 双因素身份验证 对于双因素身份验证的实现细节