用户对 facebook 进行身份验证后未调用应用程序打开 Url 方法
Posted
技术标签:
【中文标题】用户对 facebook 进行身份验证后未调用应用程序打开 Url 方法【英文标题】:application open Url method not called after user authenticates the facebook 【发布时间】:2012-09-20 15:29:02 【问题描述】:我已将我的 ios 应用程序中的 facebook 升级到 3.0,并使用https://developers.facebook.com/docs/howtos/login-with-facebook-using-ios-sdk/ 提供的代码让用户通过 facebook 登录,但问题是在用户允许 facebook 访问之后,- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
方法不是叫。但有趣的是,当我创建一个新应用程序并在该应用程序中集成相同的代码时,会在那里调用相同的方法。我使用的是 xcode 4.4。任何建议为什么我现有的代码会发生这种情况。
【问题讨论】:
【参考方案1】:确保您已设置好 fburl 和 appid。如果设备/模拟器有多个使用相同 facebook appId 的应用程序,则可能会发生这种情况。
【讨论】:
【参考方案2】:这可能是因为您的旧应用程序设置为不在后台运行,如您的应用程序 plist 中设置的那样?我一直有同样的问题。似乎,如果应用程序在后台运行,它将返回并调用 openURL。但是如果应用程序没有在后台运行,它将返回并调用 application:didFinishLaunchingWithOptions,而不是调用 openURL。可以从启动选项中获取 url:
NSURL *url = [launchOptions objectForKey: UIApplicationLaunchOptionsURLKey];
但我还没有弄清楚如何调用它,以便它在从 Facebook 身份验证返回时与 application:openURL 具有相同的效果。希望这会有所帮助。
【讨论】:
【参考方案3】:已将 xcode 更新为 4.5 GM 以正常工作,可能是 xcode 以前版本的问题。
【讨论】:
以上是关于用户对 facebook 进行身份验证后未调用应用程序打开 Url 方法的主要内容,如果未能解决你的问题,请参考以下文章
使用 Passport 和 ExpressJS 进行 Facebook 身份验证 - 为啥不调用验证回调?
如何在 Facebook Flash 应用程序中进行身份验证?
在 Android 中单击 Facebook 登录按钮后未显示 Facebook 身份验证对话框