2012-10-08 38 views
2

我想實現iOS 6的原生facebook分享,並需要檢查分享是否成功。這是我使用的代碼:iOS Native Facebook分享沒有互聯網回調

BOOL displayedNativeDialog = 
    [FBNativeDialogs 
    presentShareDialogModallyFrom:delegate 
    initialText:@"test" 
    image:nil 
    url:nil 
    handler:^(FBNativeDialogResult result, NSError *error) { 
     if (error) { 
      /* handle failure */ 
      NSLog(@"error:%@, %@", error, [error localizedDescription]); 
     } else { 
      if (result == FBNativeDialogResultSucceeded) { 
       /* handle success */ 
       NSLog(@"handle success"); 
      } else { 
       /* handle user cancel */ 
       NSLog(@"user cancel"); 
      } 
     } 
    }]; 
    if (!displayedNativeDialog) { 
     /* handle fallback to native dialog */ 
    } 

我的問題是,當我嘗試這跟沒有可用的互聯網連接我仍然得到FBNativeDialogResultSucceeded

它看起來像你應該得到一個錯誤,當沒有互聯網連接可用但它似乎並不像那樣工作。 如果有一些解決方案,我不需要使用可達性很好的SDK。

回答

0

此時您可能不得不使用可達性SDK。 Facebook SDK建立在SLComposeViewController之上,用於本地功能。該視圖控制器返回兩個可能的選擇:

  • SLComposeViewControllerResultCancelled
  • SLComposeViewControllerResultDone

SLComposeViewControllerResultDone:視圖控制器被駁回並在後臺被髮送的消息。這發生在用戶選擇完成時。

因此,由於Facebook反映了這種情況,成功案例意味着用戶點擊完成並且消息已在後臺發送。

但是,如果您運行此操作並且沒有互聯網連接,用戶仍應該看到彈出窗口,指出由於連接失敗而無法發送帖子。