Xcode快速链接到Facebook页面[关闭]
Posted
技术标签:
【中文标题】Xcode快速链接到Facebook页面[关闭]【英文标题】:Xcode swift link to facebook page [closed] 【发布时间】:2015-03-31 19:15:40 【问题描述】:我有一个带有按钮的应用程序,该按钮可以打开 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)
【问题讨论】:
【参考方案1】:问题在于您的 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 内部崩溃。 只需新建一个swift文件导入Foundation和UIKit,然后粘贴扩展。扩展被放置在任何类的范围之外。 非常感谢!我只需要弄清楚如何获取我的 Facebook 页面 ID。 使用在线工具获得了 ID。再次感谢您的帮助。 记得将这个添加到您的 plist 中:<key>LSApplicationQueriesSchemes</key> <array> <string>fb</string> </array>
否则在尝试打开“fb://”网址时,您将收到错误“此应用不允许查询方案 fb” ..【参考方案2】:
斯威夫特 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(urls: [
"fb://profile/116374146706", // App
"http://www.facebook.com/116374146706" // Website if app fails
])
【讨论】:
以上是关于Xcode快速链接到Facebook页面[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
facebook SDK3.1 和 Xcode 4.5 链接器错误