Iphone UIWebView中的Facebook页面

Iphone UIWebView中的Facebook页面,iphone,facebook,uiwebview,Iphone,Facebook,Uiwebview,我的应用程序中有一个UIWebView,我正在加载应用程序的facebook配置文件。我正在使用facebook的单点登录SDK(Graph API)。我使用我的应用程序在Safari后台登录facebook。但当我尝试在应用程序web视图中加载我的游戏配置文件时,仍然可以看到“登录”和“注册”按钮。 我也试着设置cookies、主文档URL和相对URL,但没有用。 我在这里添加了我的代码 NSURL *url = [NSURL URLWithString:@"http://www.facebo

我的应用程序中有一个UIWebView,我正在加载应用程序的facebook配置文件。我正在使用facebook的单点登录SDK(Graph API)。我使用我的应用程序在Safari后台登录facebook。但当我尝试在应用程序web视图中加载我的游戏配置文件时,仍然可以看到“登录”和“注册”按钮。 我也试着设置cookies、主文档URL和相对URL,但没有用。 我在这里添加了我的代码

NSURL *url = [NSURL URLWithString:@"http://www.facebook.com/myapp" relativeToURL:[NSURL URLWithString:@"http://login.facebook.com"]];
    NSMutableURLRequest *request = nil;

    if(url)
        request = [NSMutableURLRequest requestWithURL:url];

    NSArray * availableCookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:@"http://login.facebook.com"]];
    NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies:availableCookies];
    if(request)
    {
        [request setHTTPShouldHandleCookies:YES];
        [request setMainDocumentURL:[NSURL URLWithString:@"http://login.facebook.com"]];
        [request setAllHTTPHeaderFields:headers];//login.facebook.com
        [mWebView loadRequest:request];
    }

您可能遇到了我在本页答案中描述的情况:


您可能遇到我在本页答案中描述的情况:


非常感谢您的回复。这意味着我们无法获取facebook的cookies。据我所知,在iOs上,你无法获取facebook应用程序正在使用的cookies,或者移动Safari正在使用的cookies。如果您在未打开其他两个令牌中的任何一个(例如,如果它们不可用)的情况下获得访问令牌,则cookie将位于您的应用程序的本地,您可以使用它们。可以稍微修改Facebook iOS SDK以强制这种情况。然而,这样做意味着你放弃了Facebook官方应用程序用户的单一登录。这难道不会导致恶意使用Facebook.com cookies吗?应用程序开发人员似乎可以要求用户“使用facebook登录”,在登录成功时捕获facebook.com cookies,并使用它们代表用户行事。我在这里遗漏了什么吗?Cookie在会话关闭时过期,但理论上,是的,您过去可以这样做,至少在会话关闭之前是这样。FB登录现在使用iOS 9中的Safari视图控制器,而不是本地UIWebview。你不能得到那些饼干。不确定您是否仍然可以强制本地UIWebview登录。非常感谢您的回复。这意味着我们无法获取facebook的cookies。据我所知,在iOs上,你无法获取facebook应用程序正在使用的cookies,或者移动Safari正在使用的cookies。如果您在未打开其他两个令牌中的任何一个(例如,如果它们不可用)的情况下获得访问令牌,则cookie将位于您的应用程序的本地,您可以使用它们。可以稍微修改Facebook iOS SDK以强制这种情况。然而,这样做意味着你放弃了Facebook官方应用程序用户的单一登录。这难道不会导致恶意使用Facebook.com cookies吗?应用程序开发人员似乎可以要求用户“使用facebook登录”,在登录成功时捕获facebook.com cookies,并使用它们代表用户行事。我在这里遗漏了什么吗?Cookie在会话关闭时过期,但理论上,是的,您过去可以这样做,至少在会话关闭之前是这样。FB登录现在使用iOS 9中的Safari视图控制器,而不是本地UIWebview。你不能得到那些饼干。不确定是否仍然可以强制本地UIWebview登录。