检测facebook app是否安装在idevice上

时间:2014-12-18 20:17:14

标签: objective-c swift xcode6

我想为我的游戏添加一项功能,以便用户可以在Facebook上与他的朋友分享他的高分。

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

我使用swift所以我在facebookSDK中添加了一个bridge-header.h文件。

这是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不可用

Bridge标题如下:

#ifndef FrogCross2_Bridge_Header_h
#define FrogCross2_Bridge_Header_h


#import <FacebookSDK/FacebookSDK.h>

#endif

我做错了什么?

1 个答案:

答案 0 :(得分:2)

这是一种解决方法,可能有更好的方法,但您可以尝试使用Facebook网址方案打开Facebook网址:

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

我在模拟器上尝试了这个并且它在false时评估,但当我在我的设备上尝试它时,它被评估为真。