application:openURL:options:
方法。
该方法应调用handleURL
实例的GIDSignIn
方法,
这将正确处理您的应用程序收到的URL
在身份验证过程结束时。
直接从firebase指南文档中复制但仍有错误。
func application(application: UIApplication, openURL url: NSURL, options: [String: AnyObject]) -> Bool {
return GIDSignIn.sharedInstance().handleURL(url as URL!, sourceApplication:
options[UIApplicationOpenURLOptionsSourceApplicationKey] //Error is here
//Ambiguous reference to member 'subscript' error is shown.
as? String, annotation: options[UIApplicationOpenURLOptionsAnnotationKey])
}
答案 0 :(得分:25)
你有一些问题。委托方法应该在Swift 3中具有以下签名:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool
,整个方法是:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
return GIDSignIn.sharedInstance().handleURL(url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplicationOpenURLOptionsKey.annotation])
}
答案 1 :(得分:0)
如果您使用多种网址方案以及Google登录,请按以下方式使用:
func application(application: UIApplication,
openURL url: NSURL,
options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
return GIDSignIn.sharedInstance().handle(url as URL!,
sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String!,
annotation: options[UIApplicationOpenURLOptionsKey.annotation])
}