使用 Facebook SDK 4.15.1 在 iOS 10 上使用 Facebook SDK 登录、分享和点赞时获取空白页面

2024-04-17

在我的应用程序中使用 FBSDKLoginKit、FBSDKShareKit 登录、共享链接和点赞链接时,我收到此错误。 我使用 FBSDKLoginButton 登录

 @property (nonatomic, strong) IBOutlet FBSDKLoginButton *loginButton;

- (void)viewDidLoad {
    [super viewDidLoad];

    self.loginButton.publishPermissions = @[@"publish_actions"];
}

使用FBSDKShareKit进行分享:

- (FBSDKShareDialog *)getShareDialogWithContentURL:(FBSDKShareLinkContent *)content
{
    FBSDKShareDialog *shareDialog = [[FBSDKShareDialog alloc] init];
    shareDialog.shareContent = content;
    return shareDialog;
}

- (IBAction)ShareAppOnFB:(UIButton *)sender {

        FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
        FBSDKShareDialog *facebookShareDialog = [self getShareDialogWithContentURL:content];

        if ([facebookShareDialog canShow]) {
            [FBSDKShareDialog showFromViewController:self.parentViewController
                                         withContent:content
                                            delegate:self];
        }

}

使用 FBSDKShareKit 点赞:

FBSDKLikeButton *like = [[FBSDKLikeButton alloc] init];
like.objectID = @"";
like.frame = CGRectOffset(like.frame, 50, 100);
[self.view addSubview:like];

在 iOS 9 和 iOS 8 上一切正常,但是当我升级到 Xcode 8 并在 iOS 10 上运行时,当点击“登录”、“分享”和“点赞”按钮时,我会立即看到一个空白页面,之后就没有任何反应。我尝试升级到 Facebook SDK 4.15.1,但没有更好,这个错误仍然发生。有人知道如何修复 iOS 10 上的这个错误吗?


FB SDK 使用 SFSafariViewController,显然在 iOS 10 中它只能从根视图控制器呈现。 解决方案是创建一个新的 UIWindow 实例,添加一个普通的 UIViewController 作为根视图控制器,并使用这个新的 UIViewController 调用 FB SDK:

UIViewController* socialVC = [[UIViewController alloc] init];
// window instance needs to be retained
self.socialWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.socialWindow.rootViewController = socialVC;
// show new window in top of every other UIs
self.socialWindow.windowLevel = UIWindowLevelStatusBar + 10;
[self.socialWindow makeKeyAndVisible];

// show FB Share Dialog
[FBSDKShareDialog showFromViewController:socialVC withContent:content delegate:self];

调用 FB SDK 的 delegate 时不要忘记隐藏窗口:

self.socialWindow.hidden = YES;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Facebook SDK 4.15.1 在 iOS 10 上使用 Facebook SDK 登录、分享和点赞时获取空白页面 的相关文章

  • Xcode 7 UI 测试:如何在代码中消除一系列系统警报

    我正在使用新的 Xcode 7 UI 测试功能编写 UI 测试用例 在我的应用程序的某个时刻 我会请求用户允许相机访问和推送通知 所以会出现两个 iOS 弹出窗口 MyApp Would Like to Access the Camera
  • iOS 指定初始化器:使用 NS_DESIGNATED_INITIALIZER

    我们在 XCode 6 中引入了这个新宏 NS DESIGNATED INITIALIZER 我在网上搜索 但找不到任何关于如何使用它的好的文档 从语法上来说 我们可以这样使用它 instancetype initWithCoder NSC
  • 开源html解析类无法正确解析段落之间的空格

    我正在使用一种开源方法 将 html 文本解析为 NSString 生成的字符串在前几个段落之间有大量空格 但后续段落只有一行空格 这是输出的示例 Below is the method I m calling I ve only chan
  • 将 NSString 中的“”字符替换为“\”(以创建 Unix 路径)

    使用以下内容不起作用 NSString stringByReplacingOccurrencesOfString NSString target withString NSString replacement 我所说的 不起作用 是指不做任
  • 快速查看生成器 iOS

    有没有办法扩展 iOS 上的快速查找框架来处理未知的文件类型 就像在 Mac 上一样 我不想切换到我的应用程序来预览文件 就像在电子邮件或 iMessage 中查看图像文件一样 我想删除必须选择使用哪个应用程序来打开文件的步骤 在 Mac
  • 为什么在可变字典上调用 setValue:forKeyPath 不会抛出未知键路径的异常?

    我有以下代码 NSMutableDictionary dict NSMutableDictionary dictionary defs setObject NSNumber numberWithInt 100 forKey test1 te
  • UICollectionView 就像 iOS 主屏幕 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想制作一个像 iOS 主屏幕一样的 UICollectionView 我发现了几个 而且很好的 样本 例如 http mobile tu
  • 检查 UIImage 是否有 alpha(透明)颜色时出现问题

    我正在检查图像是否有透明区域 alpha 受到打击 我必须改变颜色UIImage 我已经实现了以下方法来检查图像是否有alpha or not BOOL checkAlpha UIImage image for int x 0 x lt i
  • NSMutableAttributedString 的自动换行

    我有 NSMutableAttributedString 并且字符串很长 我想在 UIlabel 上显示它时进行自动换行 如果是 NSString 我会继续做这样的事情 动态 UILabel 截断文本 https stackoverflow
  • 最大值和最小值的算法? (目标-C)

    这是我正在阅读的一本学习 Objective C 的书的一部分 下面定义了一个名为 MAX 的宏 它给出了两个的最大值 价值观 define MAX a b a gt b a b 然后书中有一些练习要求读者定义一个宏 MIN 找到两个值中的
  • 通过 Facebook iOS SDK 获取我的所有活动

    在我的 iOS 应用程序中 我使用以下代码获取访问令牌 self facebook authorize NSArray arrayWithObjects user events friends events nil 然后我使用以下代码请求我
  • 在 Objective C 中使用余弦定律计算两点之间的距离?

    我从 Google 地图获取一些 GPS 坐标 我需要找到它们之间的距离 使用 Objective C 我已经实现了该公式 但得到的结果太大了 我通过将 Google 地图的值传回 Google 地球和互联网上的地理编码服务来测试这些值 一
  • 检测可可上的鼠标右键单击

    我正在尝试在我的原型中管理鼠标事件精灵套件 game 我从问题中使用了以下方法SO q https stackoverflow com questions 17473176 how to detect right and left clic
  • 指定随机粒子起始颜色而不进行动画更改?

    有没有办法让粒子根据当前的 颜色渐变 产生随机的每个粒子颜色 粒子在其生命周期内不会改变颜色 它们只是在出生时从 颜色渐变 的某个地方被分配了一种颜色 并保持该颜色直到它们死亡 其结果将是出生时的粒子与从红色到蓝色的混合颜色的混合 在我的测
  • 表视图重新加载部分崩溃

    我有一个包含 4 个部分的表格视图 每个部分有 1 2 个表格视图单元格 第一个单元格有一个 uiswitch 作为附件视图 控制应用程序的颜色主题 在白天模式和夜间模式之间切换 一旦按下开关 就会调用一个函数 更改导航栏的颜色和背景颜色
  • 将 Facebook 营销活动目标与洞察行动类型相匹配

    Facebook 活动的目标是此处列出的 https developers facebook com docs marketing api reference ad campaign group Creating PAGE LIKES VI
  • Facebook Stream.publish 带有来自 Base64 的图像附件

    我正在尝试让 facebook 的stream publish 制作一个墙贴 其中包含一些自定义文本和从该网站动态生成的图像 该图像仅以 Base64 形式提供 因为它是由用户在启动发布操作之前绘制的 Facebook 似乎不喜欢 src
  • Rails Beta 请求注册并提供社交媒体分享奖励

    我想构建一个简单的测试版请求注册页面 当用户尽可能多地共享应用程序的链接时 用户将获得更早的奖励 这样的解决方案可以在 特伦维网站 用户输入电子邮件 用户通过其独特的代码获得独特的链接 用户在每次注册时分享此链接 这对他来说是 1 管理方法
  • iOS 使用presentModalSegue 将数据从viewController2 传递回viewController 1

    我有 viewController1 可以对我的 viewController2 进行模态转场 但是 viewController2 嵌入在导航控制器上 因为我需要那里的导航栏 我已经实现了一个协议 将数据从 viewController2
  • iPhone 指南针显示特定位置

    我是 Objective c 的新手 所以如果我的问题太垃圾 我想道歉 我正在编写一个指南针 但它正在工作 感谢教程 给出了实际位置 经度和纬度 指南针内的箭头是否有可能向我显示到特定位置 经度2和纬度2 的方向 我读到我必须考虑 iPho

随机推荐