我在iOS 9中的登录系统有一个奇怪的重定向应用程序问题。
现在,我已经允许使用abitrary,我的url方案在我的plist文件中正确设置。
这是怎么回事:
现在,如果用户关闭了SFSafariViewController,返回到我们的应用程序登录页面并尝试再次登录,每次从那里重定向到应用程序并且每次调用openUrl AppDelegate方法。
请注意,在iOS9上,我们之前已将应用程序外部重定向到Safari以完成登录过程(而不是使用SFSafariViewController)并遇到相同的问题,而“在应用程序中打开”弹出窗口重定向到应用程序只会在第二次登录尝试时显示。
这仅在iOS 9上发生。在iOS 8上,此问题不会出现,我们的用户在登录后总是被重定向到应用程序。
OAuth登录后发送到应用的重定向网址在首次登录尝试时都是相同的。
有没有人在iOS 9上遇到过这样的问题?
答案 0 :(得分:3)
正如你所提到的关于Facebook,所以
首先,猜测你错过了来自 UIApplicationDelegate application:openURL:sourceApplication:annotation:
application:openURL:options:
的召唤
您可能会在 UIApplicationDelegate的 NSURL *url = [launchOptions objectForKey:UIApplicationLaunchOptionsURLKey];
didFinishLaunchingWithOptions
如果设备是Jailbreak,那么在iOS 9.0.2中会导致网址方案问题。
对我有用的解决方案是以下代码行,因为我在我的应用程序中集成了FB / G +,与您的相同:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options {
return [[FBSDKApplicationDelegate sharedInstance] application:app
openURL:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
annotation:options[UIApplicationOpenURLOptionsAnnotationKey]]
|| [[GIDSignIn sharedInstance] handleURL:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
annotation:options[UIApplicationOpenURLOptionsSourceApplicationKey]];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:sourceApplication
annotation:annotation
] ||
[[GIDSignIn sharedInstance] handleURL:url
sourceApplication:sourceApplication
annotation:annotation];
}
答案 1 :(得分:0)
I Had experience with deep linking issues In my case the root of the problem is that we had the CFBundleIdentifier
set in the info.plist to a blank String "" by deleting it or setting it to you apps name it fixed our routing issues.
Hope that helps.