这是 Google Sign In 的 Flutter 封装。
注意:这是一个正在进行中的项目,并不完全得到 Flutter 团队的支持。(例如,我们没有在持续集成和测试中使用它。)
你需要注册一个新的应用程序在 Google 开发者控制台中,以运行此存储库中此示例。
确保你已安装 CocoaPods 并在示例/ios 文件夹中运行 pod install
。你现在可以在 Xcode 中打开 example/ios/GoogleSignInExample.xcworkspace
。转到 iOS Sign-In SDK 说明,按照说明添加 GoogleServices-Info.plist 文件到你的项目中,并设置 REVERSED_CLIENT_ID 的 URL 类型以处理回调。
使用 flutter run
创建 Generated.xcconfig 文件,构建示例并将其安装在 iOS 模拟器或设备上。你应该能够成功登录。
确保你已安装 CocoaPods 并在你的 ios 文件夹中运行 pod init
。编辑你的 Podfile 以添加 pod 'FlutterGoogleSignIn'
并运行 pod install
。你现在可以在 Xcode 中打开 example/ios/Runner.xcworkspace
。
转到 iOS Sign-In SDK 说明,按照说明添加 GoogleServices-Info.plist 文件到你的 Runner 项目中,并设置 REVERSED_CLIENT_ID 的 URL 类型以处理回调。
修改你的 AppDelegate.m 以传递你的视图控制器到 FLTGoogleSignIn 的共享实例,并在你的应用程序使用 URL 打开时通知它。
#import <GoogleSignIn/FLTGoogleSignIn.h>
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
FlutterViewController *controller = (FlutterViewController*)self.window.rootViewController;
[controller addAsyncMessageListener:[FLTGoogleSignIn sharedInstance]];
[FLTGoogleSignIn sharedInstance].uiDelegate = controller;
return YES;
}
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary *)options {
return [[FLTGoogleSignIn sharedInstance] handleURL:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
annotation:options[UIApplicationOpenURLOptionsAnnotationKey]];
}
如果你要修改 FlutterGoogleSignIn 类,你需要从源码编译而不是使用发布的二进制文件。你需要对 google_sign_in 存储库进行本地检查,它可以位于任何位置。
将引用的 Podfile 更改为 pod 'FlutterGoogleSignIn', :path => '/path/to/google_sign_in'
并运行 pod install
。
你现在应该可以使用 Xcode 或 flutter run
从源码编译。
请提交问题来发送反馈或报告故障。谢谢!