如何从 iPhone 应用程序启动 Safari?

这可能是一个相当明显的问题,但你能从 iPhone 应用程序启动 Safari 浏览器吗?

84667 次浏览

UIApplication 有一个名为 openURL 的方法:

例如:

NSURL *url = [NSURL URLWithString:@"http://www.stackoverflow.com"];


if (![[UIApplication sharedApplication] openURL:url]) {
NSLog(@"%@%@",@"Failed to open url:",[url description]);
}

应采取以下措施:

NSURL *url = [NSURL URLWithString:@"http://www.stackoverflow.com"];


if (![[UIApplication sharedApplication] openURL:url]) {
NSLog(@"%@%@",@"Failed to open url:",[url description]);
}

你可以用这个打开 Safari 中的 url:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://www.google.com"]];

也许有人可以用斯威夫特的版本:

在雨燕2.2中:

UIApplication.sharedApplication().openURL(NSURL(string: "https://www.google.com")!)

3.0版本:

UIApplication.shared().openURL(URL(string: "https://www.google.com")!)

对于 iOS10,我们有一种与 完成处理程序不同的方法:

目标 C:

NSDictionary *options = [NSDictionary new];
//options can be empty
NSURL *url = [NSURL URLWithString:@"http://www.stackoverflow.com"];
[[UIApplication sharedApplication] openURL:url options:options completionHandler:^(BOOL success){
}];

斯威夫特:

let url = URL(string: "http://www.stackoverflow.com")
UIApplication.shared.open(url, options: [:]) { (success) in
}

在 Swift 3.0中,您可以使用这个类来帮助您与。框架维护人员已经否决或删除了以前的答案。

import UIKit


class InterAppCommunication {
static func openURI(_ URI: String) {
UIApplication.shared.open(URL(string: URI)!, options: [:], completionHandler: { (succ: Bool) in print("Complete! Success? \(succ)") })
}
}

在“迅速4”和“迅速5”中,随着 OpenURL 的贬值,一个简单的方法就是

if let url = URL(string: "https://stackoverflow.com") {
UIApplication.shared.open(url, options: [:])
}

你也可以使用 SafariServices。类似于你的应用程序中的 Safari 窗口。

import SafariServices


...


if let url = URL(string: "https://stackoverflow.com") {
let safariViewController = SFSafariViewController(url: url)
self.present(safariViewController, animated: true)
}