Xcode swift链接到facebook页面

Cha*_*Guy 4 xcode facebook swift

我有一个带有按钮的应用程序,可以打开一个Facebook页面.它检查用户是否安装了Facebook,并应在应用程序中打开该页面.如果未安装,则只需使用Safari打开页面即可.但它不起作用.如果用户安装了Facebook,我怀疑它与错误的地址有关:

Ian*_*Ian 22

问题在于您的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
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并用于:

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

[更新] 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
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后:

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

  • 请记住将此添加到您的 plist:`<key>LSApplicationQueriesSchemes</key> <array> <string>fb</string> </array>` 否则您将收到错误“此应用程序不允许查询方案fb”尝试打开“fb://”网址时.. (3认同)

Him*_*har 5

斯威夫特3

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)!)
                    application.open(URL(string: url)!, options: [:], completionHandler: nil)
                    return
                }
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

并用于:

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