Xcode swift链接到facebook页面
我有一个带有按钮的应用程序,可以打开Facebook页面。它检查用户是否安装了Facebook,并应在应用程序中打开该页面。如果未安装,则只需使用Safari打开页面。然而,它不起作用。如果用户安装了Facebook,我怀疑这与错误的地址有关:Xcode swift链接到facebook页面,xcode,facebook,swift,Xcode,Facebook,Swift,我有一个带有按钮的应用程序,可以打开Facebook页面。它检查用户是否安装了Facebook,并应在应用程序中打开该页面。如果未安装,则只需使用Safari打开页面。然而,它不起作用。如果用户安装了Facebook,我怀疑这与错误的地址有关: var fbUrl = NSURL(string: "fb://facebook.com/FacebookPageName")! var fbUrlWeb = NSURL(string: "https://www.faceb
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的格式,所以请注意格式。我使用这个扩展来打开URL。您按照您希望尝试打开的顺序向其提供URL数组,它首先尝试第一个URL,如果失败,则转到第二个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
])
UIApplication.tryURL(urls: [
"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
}
}
}
}
Swift 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
}
}
}
}
及供使用:
UIApplication.tryURL([
"fb://profile/116374146706", // App
"http://www.facebook.com/116374146706" // Website if app fails
])
UIApplication.tryURL(urls: [
"fb://profile/116374146706", // App
"http://www.facebook.com/116374146706" // Website if app fails
])
我对这个完全陌生。如何添加扩展名?我剪切并粘贴了你写的东西,并在XCODE中造成了内部崩溃。只需制作一个新的Swift文件导入基础和UIKIT,然后粘贴扩展名。扩展被放置在任何类的范围之外。非常感谢!我只需要弄清楚如何获取我的Facebook页面ID。使用了在线工具并获取了ID。再次感谢您的帮助。请记住将此添加到您的plist:
LSApplicationQueriesSchemes fb
否则,在尝试打开“fb://”url时,您将收到错误“此应用程序不允许查询scheme fb”。。