Ios UIWebView/FacebookOAuth对话框-说;“未登录”; 问题

Ios UIWebView/FacebookOAuth对话框-说;“未登录”; 问题,ios,facebook,uiwebview,facebook-oauth,Ios,Facebook,Uiwebview,Facebook Oauth,在我的iOS应用程序中,用户通过UIWebView使用Facebook登录。Facebook偶尔会显示“未登录”消息,而不是登录页面: 我每次都可以用几行代码重现这个问题: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UIWebView* web = [[UIWebView alloc] initWithFr

在我的iOS应用程序中,用户通过UIWebView使用Facebook登录。Facebook偶尔会显示“未登录”消息,而不是登录页面:

我每次都可以用几行代码重现这个问题:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{
    UIWebView* web = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 400)];
    [self.window addSubview:web];
    NSString* url = @"https://m.facebook.com/dialog/oauth?client_id=9999999999999999&redirect_uri=https%3A%2F%2Fmysite.com%2FApp%2FFacebookLogin%2FCallback&response_type=code&scope=read_stream%2Cuser_about_me%2Coffline_access%2Cpublish_actions%2Cpublish_stream%2Cemail";        
    [web loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
}
我试过的 如果我在MobileSafari中使用
[[UIApplication sharedApplication]openUrl:…]
打开相同的URL,那么它就可以工作了。它显示一个没有问题的登录页面

如果我将范围更改为“email”,那么它在web视图中工作没有问题。如果我通过添加一个项目来更改它,那么它仍然会断开

我尝试了UIWebView并删除了该应用程序&重新安装它以尝试清除所有内容。这些都不管用

如果我通过添加
&state=abcd
来更改url以强制浏览器重新加载请求,它仍然会中断。这没有效果

如果我使用域
www.facebook.com
而不是
m.facebook.com
,那么它就可以工作了

如果我在UIWebView上记录
shouldstartloadwithrequest
,它将显示url加载,然后再次加载。换句话说,facebook似乎正在转向自身

另外,我在Facebook()上提交了一个bug&他们已经将它移到了“中等”,所以它可能只是他们系统上的一个bug

你知道我如何在不影响范围的情况下显示登录页面吗