Flutter谷歌一键登录插件inkbook_googleonetapsignin的使用
Flutter谷歌一键登录插件inkbook_googleonetapsignin的使用
本项目是一个新的Flutter插件项目。该插件包括适用于Android和/或iOS的平台特定实现代码。
开始使用
安装插件
在你的pubspec.yaml
文件中添加以下依赖:
dependencies:
googleonetapsignin: ^x.x.x
然后运行flutter pub get
来获取新的依赖项。
配置客户端ID
在初始化插件之前,你需要设置客户端ID。客户端ID可以在Google Cloud Console中找到。
初始化插件
在你的主应用类中初始化插件并设置配置:
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:googleonetapsignin/googleonetapsignin.dart';
import 'package:googleonetapsignin/user_data_stream.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _platformVersion = 'Unknown';
final _googleonetapsigninPlugin = Googleonetapsignin();
Map<String, dynamic> userData = {};
@override
void initState() {
super.initState();
_googleonetapsigninPlugin.setConfig("YourClientId"); // 替换为你的客户端ID
initPlatformState();
}
// 平台消息是异步的,因此我们在异步方法中进行初始化。
Future<void> initPlatformState() async {
String platformVersion;
// 平台消息可能会失败,所以我们使用try/catch来处理PlatformException。
// 我们还处理了消息可能返回null的情况。
try {
platformVersion =
await _googleonetapsigninPlugin.getPlatformVersion() ?? 'Unknown platform version';
_googleonetapsigninPlugin.getOneTapLogin(); // 启动一键登录流程
// 监听用户数据流
UserDataStream.userDataStream.listen((userData) {
setState(() {
this.userData = userData;
});
});
} on PlatformException {
platformVersion = 'Failed to get platform version.';
}
// 如果小部件在异步平台消息仍在飞行时从树中移除,则我们希望丢弃回复而不是调用setState来更新我们的不存在的外观。
if (!mounted) return;
setState(() {
_platformVersion = platformVersion;
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('插件示例应用'),
),
body: Center(
child: Text(
'运行于: $_platformVersion\n EMAIL: ${userData['email'] ?? ''} NAME: ${userData['name'] ?? ''}'
),
),
),
);
}
}
运行示例
确保你已经安装了Flutter SDK,并且配置好了开发环境。然后运行以下命令启动示例应用:
flutter run
更多关于Flutter谷歌一键登录插件inkbook_googleonetapsignin的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter谷歌一键登录插件inkbook_googleonetapsignin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
inkbook_googleonetapsignin
是一个用于在 Flutter 应用中实现 Google 一键登录的插件。这个插件可以帮助开发者快速集成 Google 登录功能,让用户能够方便地使用他们的 Google 账户登录应用。
以下是如何在 Flutter 项目中使用 inkbook_googleonetapsignin
插件的步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 inkbook_googleonetapsignin
插件的依赖。
dependencies:
flutter:
sdk: flutter
inkbook_googleonetapsignin: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
以安装依赖。
2. 配置 Google API 控制台
在使用 Google 登录之前,你需要在 Google API 控制台 中创建一个项目并配置 OAuth 2.0 客户端 ID。
- 打开 Google API 控制台。
- 创建一个新项目或选择一个现有项目。
- 导航到 Credentials 页面。
- 点击 Create Credentials,然后选择 OAuth client ID。
- 选择 Android 或 iOS 作为应用类型,并填写相关信息。
- 获取
Client ID
,稍后会在 Flutter 项目中用到。
3. 配置 Android 和 iOS 项目
Android 配置
- 打开
android/app/src/main/AndroidManifest.xml
文件。 - 在
<application>
标签内添加以下内容:
<meta-data
android:name="com.google.android.gms.auth.api.signin.GoogleSignInOptionsClientId"
android:value="@string/default_web_client_id" />
- 在
android/app/src/main/res/values/strings.xml
文件中添加default_web_client_id
:
<resources>
<string name="default_web_client_id">YOUR_CLIENT_ID</string>
</resources>
iOS 配置
- 打开
ios/Runner/Info.plist
文件。 - 添加以下内容:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>com.googleusercontent.apps.YOUR_CLIENT_ID</string>
</array>
</dict>
</array>
<key>GoogleSignInClientID</key>
<string>YOUR_CLIENT_ID</string>
4. 在 Flutter 中使用插件
import 'package:flutter/material.dart';
import 'package:inkbook_googleonetapsignin/inkbook_googleonetapsignin.dart';
class GoogleSignInPage extends StatefulWidget {
@override
_GoogleSignInPageState createState() => _GoogleSignInPageState();
}
class _GoogleSignInPageState extends State<GoogleSignInPage> {
String _userInfo = '';
Future<void> _signInWithGoogle() async {
try {
final GoogleSignInAccount? googleUser = await InkbookGoogleOneTapSignIn.signIn();
if (googleUser != null) {
setState(() {
_userInfo = 'User: ${googleUser.displayName}\nEmail: ${googleUser.email}';
});
}
} catch (e) {
setState(() {
_userInfo = 'Error: $e';
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Google Sign In'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: _signInWithGoogle,
child: Text('Sign in with Google'),
),
SizedBox(height: 20),
Text(_userInfo),
],
),
),
);
}
}
void main() {
runApp(MaterialApp(
home: GoogleSignInPage(),
));
}
5. 运行应用
现在你可以运行你的 Flutter 应用,点击 “Sign in with Google” 按钮,用户将能够使用他们的 Google 账户登录。
6. 处理登出
如果需要处理登出,可以调用 InkbookGoogleOneTapSignIn.signOut()
方法。
Future<void> _signOut() async {
await InkbookGoogleOneTapSignIn.signOut();
setState(() {
_userInfo = '';
});
}