objective-c - 检测 idevice 上是否安装了 facebook 应用

标签 objective-c swift xcode6

我想在我的游戏中添加一个功能,以便用户可以在 Facebook 上与他的 friend 分享他的高分。

现在要做到这一点,我首先想知道他的设备上是否安装了 facebook 应用程序,如果没有,他将看不到在 facebook 上分享他的高分的功能。

我使用的是 swift,所以我添加了带有bridge-header.h 文件的 facebookSDK。

这是facebook示例给出的代码:

FBShareDialogParams *params = [[FBShareDialogParams alloc] init];
params.link = [NSURL URLWithString:@"https://example.com/book/Snow-Crash.html"];
BOOL canShare = [FBDialogs canPresentShareDialogWithParams:params];
if (canShare) {
 // FBDialogs call to open Share dialog
}

现在这是 Objective-C 语言,我尝试将其转换为 Swift,现在这是我的代码:

    let params = FBShareDialogParams()
    params.link = NSURL(URLWithString:"https://example.com/book/Snow-Crash.html")
    let canShare:Bool = (FBDialogs.canPresentShareDialogWithParams(params))
    if (canShare) {
        // FBDialogs call to open Share dialog
    }

但现在我收到错误:FBShareDialogParams 不可用

桥头看起来像:

#ifndef FrogCross2_Bridge_Header_h
#define FrogCross2_Bridge_Header_h


#import <FacebookSDK/FacebookSDK.h>

#endif

我做错了什么?

最佳答案

这是一种解决方法,可能有更好的方法,但您可以尝试使用 Facebook url 方案打开 Facebook url,如下所示:

func facebookInstalled() -> Bool {
    if UIApplication.sharedApplication().canOpenURL(NSURL(string: "fb://")!) {
        return true
    }
    return false
}

我在模拟器上尝试了这个,它的评估结果为 false,但是当我在我的设备上尝试它时,它的评估结果为 true。

关于objective-c - 检测 idevice 上是否安装了 facebook 应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27554948/

相关文章:

objective-c - 为什么 [NSMutableString stringWithString : @""] work?

ios - NSLocalizedString 与从应用程序切换语言

objective-c - 在运行时动态修改 block

ios - Swift Bridging Header 导入问题

objective-c - 更改窗口按钮的控制色调

swift - Apple 库 (CoreGraphics) 似乎将声明和定义分开 (Swift)

ios - 委托(delegate)给另一个 View Controller 不起作用

ios - swift 3 : Resizing UICollectionViewCell programmatically causes cells to overlap

ios - 我是否必须添加我在 ios8 应用程序中使用的所有框架?

swift - 下限 < A < 上限