Xcode 快速链接到 Facebook 页面

标签 xcode facebook swift

<分区>

我有一个带有按钮的应用程序,可以打开 Facebook 页面。它会检查用户是否安装了 Facebook 以及是否应在应用程序中打开该页面。如果没有安装,那么它只是用 Safari 打开页面。但是它不起作用。如果用户安装了 Facebook,我怀疑它与错误的地址有关:

var fbUrl = NSURL(string: "fb://facebook.com/FacebookPageName")!
var fbUrlWeb = NSURL(string: "https://www.facebook.com/FacebookPageName")!

if (UIApplication.sharedApplication().canOpenURL(fbUrl)) {
  // Facebook App installed
  UIApplication.sharedApplication().openURL(fbUrl)
} else {
  // No Facebook App installed
  UIApplication.sharedApplication().openURL(fbUrlWeb)
}

最佳答案

问题出在您的 Facebook 网址的格式上,因此请注意格式。我使用此扩展程序打开网址。您按照您希望它们尝试打开的顺序为它提供一组 url,它首先尝试第一个,如果失败则转到第二个,依此类推:

extension UIApplication {
    class func tryURL(urls: [String]) {
        let application = UIApplication.sharedApplication()
        for url in urls {
            if application.canOpenURL(NSURL(string: url)!) {
                application.openURL(NSURL(string: url)!)
                return
            }
        }
    }
}

并用于:

UIApplication.tryURL([
            "fb://profile/116374146706", // App
            "http://www.facebook.com/116374146706" // Website if app fails
            ])

Swift 4 的[更新]:

extension UIApplication {
    class func tryURL(urls: [String]) {
        let application = UIApplication.shared
        for url in urls {
            if application.canOpenURL(URL(string: url)!) {
                application.openURL(URL(string: url)!)
                return
            }
        }
    }
}

然后:

UIApplication.tryURL(urls: [
                "fb://profile/116374146706", // App
                "http://www.facebook.com/116374146706" // Website if app fails
                ])

iOS 10/Swift 5 的[更新]

extension UIApplication {
    class func tryURL(urls: [String]) {
        let application = UIApplication.shared
        for url in urls {
            if application.canOpenURL(URL(string: url)!) {
                if #available(iOS 10.0, *) {
                    application.open(URL(string: url)!, options: [:], completionHandler: nil)
                }
                else {
                    application.openURL(URL(string: url)!)
                }
                return
            }
        }
    }
}

关于Xcode 快速链接到 Facebook 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29376673/

相关文章:

php - 通过 PHP 发布到 Facebook 粉丝页面的简单示例?

swift - 如何自定义 UITableView 的标题背景颜色、高度和文本?

ios - 带导航栏的 ScrollView +自动布局

ios - 从 Apple 服务器获取日期和时间

ios - 以编程方式将源代码添加到 Xcode 目标

iphone - 支持 IOS SDK 5 的 Facebook API

ios - iPad Pro 报告错误的屏幕比例

android - 在 Android Studio 中使用 facebook sdk

swift - 使用自定义 UICollectionViewLayout 无缝移动隐藏的 UICollectionViewCell

ios - 核心数据关系是否在现实世界中使用?