Flutter安卓及iOS海外登录--Facebook登录最详细流程
import 'package:flutter/material.dart';
import 'package:flutter_facebook_login/flutter_facebook_login.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Facebook Login Demo',
home: LoginPage(),
);
}
}
class LoginPage extends StatefulWidget {
@override
_LoginPageState createState() => _LoginPageState();
}
class _LoginPageState extends State<LoginPage> {
// 初始化Facebook Login插件
final facebookLogin = FacebookLogin();
late AccessToken _accessToken;
@override
void initState() {
super.initState();
// 检查是否有已保存的登录状态
_checkFacebookLogin();
}
// 检查Facebook登录状态
_checkFacebookLogin() async {
AccessToken accessToken;
// 获取当前的访问令牌
try {
accessToken = await facebookLogin.getAccessToken();
} catch (e) {
print(e);
}
// 如果有访问令牌,更新状态
if (accessToken != null) {
setState(() {
_accessToken = accessToken;
});
}
}
// 处理Facebook登录按钮的点击事件
_onFacebookLoginPress() async {
// 触发Facebook登录
final loginResult = await facebookLogin.logInWithReadPermissions(
[
'public_profile',
'email',
// 根据需要添加更多权限
],
);
// 处理登录结果
switch (loginResult.status) {
case LoginStatus.success:
// 成功登录,保存访问令牌
_accessToken = loginResult.accessToken;
break;
case LoginStatus.cancel:
// 用户取消登录
print('用户取消登录');
break;
case LoginStatus.error:
// 登录过程中出现错误
print('登录过程中出现错误: ${loginResult.errorMessage}');
break;
}
// 更新UI
setState(() {});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Facebook 登录'),
),
body: Center(
child: _accessToken != null
? Text('登录成功! 访问令牌: ${_accessToken.token}')
: ElevatedButton(
onPressed: _onFacebookLoginPress,
child: Text('登录 Facebook'),
),
),
);
}
}
这段代码展示了如何在Flutter应用中集成Facebook登录。首先,需要添加
评论已关闭