2012-11-21 34 views
0

我正在將我的應用程序中的facebook登錄集成到我的應用程序中。Facebook:當我返回到我的應用程序時登錄和權限屏幕不會關閉

當我向用戶請求權限時,爲了接受權限,默認UI會呈現給他,然後當他點擊「好」時,它將從ui返回到我的應用程序以繼續。

但是默認權限的UI會保持在瀏覽器中打開(如果我退出應用程序,打開瀏覽器我仍然看到早些時候提交給他的權限UI。 有沒有一種方法,我可以在瀏覽器中關閉該頁面?用戶授予權限後

希望我是清楚的

這是我使用的代碼:

這種方法將顯示用戶Facebook登錄頁面,以得到他的許可

-(BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI { 
    NSArray *permissions = [[NSArray alloc] initWithObjects: 
          @"user_location", 
          @"user_birthday", 
          nil]; 
    return [FBSession openActiveSessionWithReadPermissions:permissions 
              allowLoginUI:allowLoginUI 
            completionHandler:^(FBSession *session, 
                 FBSessionState state, 
                 NSError *error) { 
             [self HandleLogin]; 
            }]; 
} 

然後,如果登錄和權限成功

- (void)HandleLogin { 
    if (FBSession.activeSession.isOpen) { 

     [FBRequestConnection 
     startForMeWithCompletionHandler:^(FBRequestConnection *connection, 
             id<FBGraphUser> user, 
             NSError *error) { 
      //DO SOMETHING WITH THE USER INFO 
     }]; 
    } 
} 

的代碼來處理來自Facebook的應用程序

- (BOOL)application:(UIApplication *)application 
      openURL:(NSURL *)url 
    sourceApplication:(NSString *)sourceApplication 
     annotation:(id)annotation { 
    // attempt to extract a token from the url 
    return [FBSession.activeSession handleOpenURL:url]; 
} 

回答

0

的Facebook SDK的回報是相當有問題,我會說。就我個人而言,我很不滿意將FB圖片共享集成到幾個項目中(而他們的開發人員發佈了幾個新的SDK)。我不知道,爲什麼瀏覽器重定向變得流行,說實話,我不喜歡它。通常,我不認爲有可能以某種方式從瀏覽器中清除這些不需要的內容,而不從應用程序中打開新的url,因爲它不是解決方案。我建議force FB SDK使用WebView。在我使用的最新版本中,當您使用自定義行爲創建新會話時,會設置此項。代碼應該是這樣或非常相似:

[[FBSession activeSession] openWithBehavior:FBSessionLoginBehaviorForcingWebView 
           completionHandler:^(FBSession *session, FBSessionState status, NSError *error)handler] 
+0

謝謝你幫助 – Youssef

相關問題