Ios &引用;SharerDicCancel:“;未安装Facebook应用程序时,在首次成功共享后调用
我使用一个UIButton来分享Facebook的SDK 4.31.1。点击后,将显示一个共享对话框Ios &引用;SharerDicCancel:“;未安装Facebook应用程序时,在首次成功共享后调用,ios,facebook,facebook-share,facebook-sdk-4.x,Ios,Facebook,Facebook Share,Facebook Sdk 4.x,我使用一个UIButton来分享Facebook的SDK 4.31.1。点击后,将显示一个共享对话框 - (IBAction)btnSharePressed:(id)sender { [self displayShareDialog]; } - (void)displayShareDialog { FBSDKShareLinkContent *content = [self getShareContent]; if ([FacebookHandler isFacebo
- (IBAction)btnSharePressed:(id)sender
{
[self displayShareDialog];
}
- (void)displayShareDialog {
FBSDKShareLinkContent *content = [self getShareContent];
if ([FacebookHandler isFacebookAppInstalled]) {
[FBSDKShareDialog showFromViewController:self
withContent:content
delegate:self];
} else {
FBSDKShareDialog * shareDialog = [[FBSDKShareDialog alloc] init];
[shareDialog setMode:FBSDKShareDialogModeBrowser];
[shareDialog setDelegate:self];
[shareDialog setFromViewController:self];
[shareDialog setShareContent:content];
[shareDialog show];
}
}
// Expects the URL of the scheme e.g. "fb://"
+ (BOOL)isFacebookAppInstalled {
NSArray* fbSchemes = @[@"fbapi://",
@"fb-messenger-api://",
@"fbauth2://",
@"fbshareextension://"];
BOOL isInstalled = false;
for (NSString* fbScheme in fbSchemes) {
isInstalled = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:fbScheme]];
if(isInstalled) {
break;
}
}
return isInstalled;
}
但是,如果没有安装Facebook应用程序,在每次启动时,在第一次成功共享时,会调用委托方法SharerDiCancel:
,在任何进一步成功共享时,会调用正确的委托方法sharer:didCompleteWithResults:
。
我已经在plist
文件中正确设置了facebook显示名称
和facebook id
,因此这与此无关。
我还尝试了用FBSDKShareDialogModeFeedBrowser
切换FBSDKShareDialogModeBrowser
,但没有成功
有人能解释一下为什么在共享成功完成的情况下首先调用cancel
方法,以及为什么只有在第一次共享之后才会这样吗