我是在项目中工作,其中有谷歌签名功能的应用程序。该应用程序在所有iOS中运行良好,除了iOS9和更高版本之外。
下面是我为google签名使用的代码:-
-(void)methodcallwhenclick_ongoogleSigninbutton{
GIDSignIn *signInInstance = [GIDSignIn sharedInstance];
signInInstance.delegate = self;
GIDSignIn *signIn = [GIDSignIn sharedInstance];
[signIn signOut];
signIn.shouldFetchBasicProfile = YES;
signIn.delegate = self;
signIn.uiDelegate = self;
[signIn setClientID:@"<Clientkey>.apps.googleusercontent.com"];
[signIn setScopes:[NSArray arrayWithObject:@"https://www.googleapis.com/auth/plus.login"]];
[signIn setDelegate: self];
[signIn signIn];
}当我成功地登录到应用程序时,这个方法会调用,但是在ios9中,这个方法不会在webview中打开called.The google视图,并且在我单击“允许”之后,webview就会被关闭。我无法在ios9中获得google的编写代码,在ios9和更高版本中有什么方法可以调用此方法吗?
- (void)signIn:(GIDSignIn *)signIn
didSignInForUser:(GIDGoogleUser *)user
withError:(NSError *)error
{
}发布于 2016-02-04 06:04:35
我也面临着同样的问题: google通过GIDSignIn登录,非常适合
但是对于iOS9,一旦按下Google.com页面就会打开。如果我按下此页面上的Done按钮,控件将进入一个固定的方法,使用error = Error Domain=com.google.GIDSignIn Code=-5“用户取消了登录流。UserInfo={NSLocalizedDescription=The用户取消了登录流。}
我研究了一下。找到了两种可能的解决办法:
没有时间去测试哪一个最适合。最终解决方案一到这里就会更新。
更新:成功了!!
iOS9更新了handleUrl()调用。精简了以下两种办法:
(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options NS_AVAILABLE_IOS(9_0)
{
return [self application:app
processOpenURLAction:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
iosVersion:9];
}
(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [self application:application
processOpenURLAction:url
sourceApplication:sourceApplication
annotation:annotation
iosVersion:8];
}
(BOOL)application:(UIApplication *)application processOpenURLAction:(NSURL*)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation iosVersion:(int)version
{
return [[GIDSignIn sharedInstance] handleURL:url
sourceApplication:sourceApplication
annotation:annotation];
}发布于 2017-03-28 07:37:42
这对我有用。我正在经历GIDGoogleUser的目标变成零。错误是“用户取消了登录流”。正确的类型铸造这是使用!这移除了挂在点击‘完成’后的狩猎活动。
在AppDelegate上:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
let result = GIDSignIn.sharedInstance().handle(url,
//added exclamation mark
sourceApplication: String(describing: options[UIApplicationOpenURLOptionsKey.sourceApplication]!),
annotation: options[UIApplicationOpenURLOptionsKey.annotation])
return result
}https://stackoverflow.com/questions/33894545
复制相似问题