2

iOS 6 のネイティブ 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 を使用する必要がない解決策があれば、それは素晴らしいことです。

4

1 に答える 1

0

この時点で、おそらく到達可能性 SDK を使用する必要があります。Facebook SDK は、ネイティブ機能のために SLComposeViewController の上に構築されます。そのビュー コントローラーは、次の 2 つの選択肢を返します。

  • SLComposeViewControllerResultCancelled
  • SLComposeViewControllerResultDone

SLComposeViewControllerResultDone: ビュー コントローラーが閉じられ、メッセージがバックグラウンドで送信されています。これは、ユーザーが [完了] を選択したときに発生します。

したがって、Facebook はこれを反映しているため、成功のケースは、ユーザーが [完了] をクリックし、メッセージがバックグラウンドで送信されたことを意味します。

ただし、これを実行したときにインターネット接続がない場合でも、接続障害のために投稿を送信できなかったことを示すポップアップがユーザーに表示されます。

于 2012-10-16T03:12:49.367 に答える