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)
斯威夫特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)