2013-06-19 3 views
2

[FBDialogs canPresentShareDialogWithParams : nil]을 제대로 작동시키는 사람이 있습니까? 항상 NO를 반환합니다. params에 무엇을 넣어야합니까? (! 내 자신의 경험)이 SDK에서 HelloFacebookSample에 따르면[FBDialogs canPresentShareDialogWithParams : nil] 작동 방식은 무엇입니까?

if ([FBDialogs canPresentShareDialogWithParams:nil]) { 
    NSURL* url = [NSURL URLWithString:@"http://www.google.fr"]; 
    [FBDialogs presentShareDialogWithLink:url 
            handler:^(FBAppCall *call, NSDictionary *results, NSError *error) { 
             if(error) { 
              NSLog(@"Error: %@", error.description); 
             } else { 
              NSLog(@"Success!"); 
             } 
            }]; 
} else { 
    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) { 
     SLComposeViewController *fbComposer = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; 
     [fbComposer setInitialText:@"Google rocks !"]; 
     [self presentViewController:fbComposer animated:YES completion:nil]; 
    } else { 
     [[[UIAlertView alloc] initWithTitle:@"Informations" message:@"You have to be registered into the settings of your phone in order to share" delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:nil] show]; 
    } 
} 

답변

3

:

FBShareDialogParams *p = [[FBShareDialogParams alloc] init]; 
p.link = [NSURL URLWithString:@"http://developers.facebook.com/ios"]; 
BOOL canShareFB = [FBDialogs canPresentShareDialogWithParams:p]; 

canShareFB 돌아갑니다 YES 페이스 북의 응용 프로그램 는 시스템의 설치되어있는 경우, NO아니요 Facebook 응용 프로그램을 찾을 수 없습니다.

+0

감사합니다. 나를 위해 일했다 :) –

0

사실 언제나 아니오을 반환합니다. 나는 이것이이 문제라고 생각한다.

+0

나의 경우에는 항상 돌아온다 ** NO **. – Daida

0

FBShareDialogParams의 nil이 아닌 인스턴스를 canPresentShareDialogWithParams 메소드에 전달해야합니다. SDK는 FBShareDialogParmas의 유효한 인스턴스를 받기를 기대하므로 SDK는 장치의 Facebook 앱 버전이 실제로 공유 할 콘텐츠를 열 수 있는지 확인합니다.

예를 들어, FB가 iOS의 Facebook 앱의 이후 버전에서 공유 대화를 통해 비디오 공유를 지원하는 경우 canPresentShareDialogWithParams는 이전 버전의 Facebook 앱이 장치에있는 경우 NO를 반환합니다.

문서 : https://developers.facebook.com/ios/share-dialog/이 어떻게 혼동 스러울 지 이해할 수 있습니다 (사과!). 이를 반영하여 업데이트 할 것입니다.

의견을 보내 주셔서 감사합니다. 도움이되는 희망!