Facebook SDK的FBSDKShareDialog不在iOS9上工作?

Facebook SDK的FBSDKShareDialog不在iOS9上工作?,ios,facebook-sdk-4.x,Ios,Facebook Sdk 4.x,使用Xcode7,我将Facebook SDK升级为pod FBSDKShareKit(4.6.0)。我已经将Facebook方案添加到白名单中,如下所示。 参考: 我猜在iOS9上找不到Facebook应用程序,然后显示默认的社交对话。甚至没有显示错误消息 我错过什么了吗?或者,这是一个iOS9错误?我猜Facebook改变了这种行为,因为iOS9现在会弹出一个对话框,询问您是否想在切换应用程序时“打开Facebook”。即使对于FBSDKLoginManager,应用程序切换(本机)方法似乎

使用Xcode7,我将Facebook SDK升级为pod FBSDKShareKit(4.6.0)。我已经将Facebook方案添加到白名单中,如下所示。 参考:

我猜在iOS9上找不到Facebook应用程序,然后显示默认的社交对话。甚至没有显示错误消息


我错过什么了吗?或者,这是一个iOS9错误?

我猜Facebook改变了这种行为,因为iOS9现在会弹出一个对话框,询问您是否想在切换应用程序时“打开Facebook”。即使对于FBSDKLoginManager,应用程序切换(本机)方法似乎也不如模态UIWebView

但是,您仍然可以使用以下方法强制共享对话框切换到Facebook应用程序(假设您的应用程序plist设置如中所述):

FBSDKShareDialog *dialog = [[FBSDKShareDialog alloc] init];

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"fbauth2://"]]){
    dialog.mode = FBSDKShareDialogModeNative;
}
else {
    dialog.mode = FBSDKShareDialogModeBrowser; //or FBSDKShareDialogModeAutomatic
}
dialog.shareContent = content;
dialog.delegate = self;
dialog.fromViewController = self;
[dialog show];

在iOS 9中,以下是我唯一能够检测设备中是否安装了facebook应用程序的解决方案:

 NSString *urlString = @"fbapi://";
    NSURL *url1 = [NSURL URLWithString:urlString];

    if ([[UIApplication sharedApplication] canOpenURL:url1]) {
        [[UIApplication sharedApplication] openURL:url1];
    }
    else {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itunes link for download app"]];
    }

我也有同样的问题。我想我跟踪了医生的一切。如果找不到Facebook应用程序,它仍应使用web形式的共享。它在模拟器中运行良好。非常感谢。这是可行的,这就是我想要的。^^此外,如果fb应用程序未安装,这将不起作用,因此您最好检查它,如果它未安装,请使用FBSDKShareDialogModeFeedBrowser。@mrhangz我已编辑解决方案,以包括检查Facebook应用程序是否已安装。我以为它会自动退回到其他模式,但事实并非如此。谢谢另外,我更喜欢FBSDKShareDialogModeBrowser而不是FBSDKShareDialogModeFeedBrowser。对我来说,这似乎是facebook sdk的一个bug。除了FBSDKShareDialogModeFeedBrowser(甚至不是自动的),我什么都不能用,如果它适合你的话,它很棒:)刚刚在iOS 11上测试过
dialog.mode=FBSDKShareDialogModeBrowser
是我在没有安装Facebook应用程序的情况下需要做的,否则它不会显示任何内容。
FBSDKShareDialog *dialog = [[FBSDKShareDialog alloc] init];

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"fbauth2://"]]){
    dialog.mode = FBSDKShareDialogModeNative;
}
else {
    dialog.mode = FBSDKShareDialogModeBrowser; //or FBSDKShareDialogModeAutomatic
}
dialog.shareContent = content;
dialog.delegate = self;
dialog.fromViewController = self;
[dialog show];
 NSString *urlString = @"fbapi://";
    NSURL *url1 = [NSURL URLWithString:urlString];

    if ([[UIApplication sharedApplication] canOpenURL:url1]) {
        [[UIApplication sharedApplication] openURL:url1];
    }
    else {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itunes link for download app"]];
    }