使用Swift在Facebook应用中打开Facebook活动页面

时间:2016-01-19 11:23:25

标签: swift facebook

我在Facebook应用程序中获取Facebook活动时遇到问题。例如,要使用网址“https://www.facebook.com/events/1743847059178738/”打开一个事件,我会使用以下代码:

 let facebookURL = NSURL(string: "fb://event/1743847059178738")!
    if UIApplication.sharedApplication().canOpenURL(facebookURL) {
        UIApplication.sharedApplication().openURL(facebookURL)
    } else {
        UIApplication.sharedApplication().openURL(NSURL(string: "https://www.facebook.com/events/1743847059178738")!)
    }
}

它将打开Facebook应用程序,但无论我试图显示什么事件,我都会看到一个屏幕上显示“无法加载事件。它可能已被取消。”我已经尝试将事件的Facebook URL替换为配置文件的URL(例如,字符串:“fb:// profile / 100005906912309”)并且它可以正常工作。我错误地假设事件URL末尾的数字与事件的数字ID相同?

2 个答案:

答案 0 :(得分:1)

所以我发现我可以绕过整个" fb://event..."咬一点,然后去:

UIApplication.sharedApplication().openURL(NSURL(string: "https://www.facebook.com/events/1743847059178738")!)

我认为这会打开Safari中的链接,但它会在iOS 8的Facebook中自动打开。

答案 1 :(得分:1)

对不起,我很抱歉。我更喜欢把它写成评论,但我不能。

首先,好的工作。如果fb://方案失败,我认为这是一个完美的后备,因为它与您的问题共享的代码中显示。我花了很多时间试图解决同样的问题。我发现的是ColorStateList mColorList = mBtn.getTextColors(); int color = mColorList.getDefaultColor(); 不再受支持,并被fb://event/{event-id}取代。

我已使用此post作为参考。