在Flutter代码中无法访问已登录的Google用户可能是由于以下原因导致的:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
在iOS的Info.plist文件中添加以下内容:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>com.googleusercontent.apps.YOUR_CLIENT_ID</string>
</array>
</dict>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>google</string>
<string>googlechrome</string>
<string>googlechrome-x-callback</string>
</array>
确保替换YOUR_CLIENT_ID
为你的Google客户端ID。
google_sign_in
插件来实现Google登录功能。确保在应用程序的入口处初始化该插件,例如:import 'package:google_sign_in/google_sign_in.dart';
void main() {
GoogleSignIn googleSignIn = GoogleSignIn();
runApp(MyApp(googleSignIn: googleSignIn));
}
import 'package:google_sign_in/google_sign_in.dart';
class MyLoginPage extends StatelessWidget {
final GoogleSignIn googleSignIn;
MyLoginPage({required this.googleSignIn});
void _handleSignIn() async {
try {
await googleSignIn.signIn();
// 登录成功,可以获取用户信息
} catch (error) {
// 登录失败,处理错误信息
}
}
@override
Widget build(BuildContext context) {
return RaisedButton(
onPressed: _handleSignIn,
child: Text('Google登录'),
);
}
}
以上是一些可能导致无法在Flutter代码中访问已登录的Google用户的常见原因和解决方法。如果问题仍然存在,建议查阅相关文档或寻求开发社区的帮助。