【发布时间】:2012-02-04 01:33:27
【问题描述】:
我在我的 iPhone 应用程序中放置了一个 Facebook 按钮。单击该按钮并加载 Facebook 登录页面时如何打开 iPhone 的默认浏览器?
【问题讨论】:
标签: iphone ios facebook uibutton
我在我的 iPhone 应用程序中放置了一个 Facebook 按钮。单击该按钮并加载 Facebook 登录页面时如何打开 iPhone 的默认浏览器?
【问题讨论】:
标签: iphone ios facebook uibutton
iOS 10 引入了打开 URL 的新方法,见下文:
斯威夫特 3:
let url = URL(string:"http://www.booleanbites.com")!
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
// Fallback on earlier versions
UIApplication.shared.openURL(url)
}
目标 C:
NSURL *url = [NSURL URLWithString:@"http://www.booleanbites.com"];
if ([[UIApplication sharedApplication] respondsToSelector:@selector(openURL:options:completionHandler:)]) {
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:NULL];
}else{
// Fallback on earlier versions
[[UIApplication sharedApplication] openURL:url];
}
【讨论】:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.facebook.com"]];
【讨论】:
openURL 已弃用,您能提出其他替代方案吗?
当您打开 iPhone 的默认浏览器时,您的应用程序会进入后台 - 可能会被 iOS 终止。这真的是你想要的吗?用户无法返回您的应用。
要考虑的几个选项:
https://github.com/facebook/facebook-ios-sdk
http://developer.apple.com/library/ios/#documentation/uikit/reference/UIWebView_Class/
重点是:这是您的应用程序。你为什么要强迫用户关闭你的应用程序并开始使用其他东西而没有任何办法回来?
好吧,您知道所有详细信息,并且基于您想要的默认浏览器。没关系。
【讨论】:
Swift: iOS
var url:NSURL? = NSURL(string:webLink!)
UIApplication.sharedApplication().openURL(url!)
【讨论】:
在斯威夫特中
UIApplication.sharedApplication().openURL(NSURL(string:"http://www.facebook.com")!)
在目标 C 中
[[UIApplication sharedApplication] openURL:[NSURL
URLWithString:@"http://www.facebook.com"]];
【讨论】:
斯威夫特 3:
let url = URL(string: "http://www.example.com")!
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
如果要添加completionHandler:
let url = URL(string: "http://www.example.com")!
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: { (success) in
print("success!") // do what you want
})
}
【讨论】:
OpenUrl 已废弃,请使用以下代码。
NSURL *url = [NSURL URLWithString:@"https://google.com"];
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
【讨论】: