在设置页面上,我想包括三个环节,以
- 我的应用程序支持站点
- YouTube应用教程
- 我的主站点(即:与标记物连接“由戴尔·迪特里希创建”)
我搜索这个网站和网页和我的文档,我已经没有发现任何明显。
注:我不希望我的应用程序中打开网页,我只是想将链接发送给Safari和该链接打开那里。 我见过的应用程序做同样的事情在他们的设置页面的号码,它必须是可行的。
在设置页面上,我想包括三个环节,以
我搜索这个网站和网页和我的文档,我已经没有发现任何明显。
注:我不希望我的应用程序中打开网页,我只是想将链接发送给Safari和该链接打开那里。 我见过的应用程序做同样的事情在他们的设置页面的号码,它必须是可行的。
继承人我做了什么:
我创建了.h文件如下标题中的IBAction为:
- (IBAction)openDaleDietrichDotCom:(id)sender;
我添加一个UIButton的设置页面上包含我要链接的文本。
我适当地连接按钮IBAction为在文件所有者。
然后执行以下操作:
OBJç
- (IBAction)openDaleDietrichDotCom:(id)sender {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.daledietrich.com"]];
}
迅速
(IBAction为在的viewController,而不是头文件)
if let link = URL(string: "https://yoursite.com") {
UIApplication.shared.open(link)
}
斯威夫特语法:
UIApplication.sharedApplication().openURL(NSURL(string:"http://www.reddit.com/")!)
新雨燕的语法适用于iOS 9.3及更早版本
随着斯威夫特的一些新的版本(可能是SWIFT 2?),UIApplication.sharedApplication()现在是UIApplication.shared(更好地利用计算性能我猜的)。 另外URL不再是隐式转换为NSURL,必须明确转变为与!
UIApplication.sharedApplication.openURL(NSURL(string:"http://www.reddit.com/") as! URL)
新雨燕的语法的iOS 10.0
OpenURL方法已弃用,与更通用的方法,该方法需要一个选项对象和异步完成处理程序作为iOS的10.0的取代
UIApplication.shared.open(NSURL(string:"http://www.reddit.com/")! as URL)
在这里,人们检查要求的URL将是开放的是能够通过设备或模拟器或不开。 因为有些时候(多数模拟器),我发现它会导致崩溃。
Objective-C的
NSURL *url = [NSURL URLWithString:@"some url"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
雨燕2.0
let url : NSURL = NSURL(string: "some url")!
if UIApplication.sharedApplication().canOpenURL(url) {
UIApplication.sharedApplication().openURL(url)
}
看看在-openURL:
方法上的UIApplication。 它应该让你的NSURL实例传递到系统,这将决定哪些应用程序在打开并启动该应用程序。 (请记住,你可能会想看看-canOpenURL:
第一,以防万一URL不能被当前安装在系统上的应用程序进行处理-虽然这可能不是简单的一个问题http://
。链接)
而且,如果你不知道,如果提供的URL text
有一个方案:
NSString* text = @"www.apple.com";
NSURL* url = [[NSURL alloc] initWithString:text];
if (url.scheme.length == 0)
{
text = [@"http://" stringByAppendingString:text];
url = [[NSURL alloc] initWithString:text];
}
[[UIApplication sharedApplication] openURL:url];
非不推荐使用Objective-C的版本是:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://apple.com"] options:@{} completionHandler:nil];
雨燕3.0
if let url = URL(string: "https://www.reddit.com") {
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:])
} else {
UIApplication.shared.openURL(url)
}
}
这种支持运行旧版iOS以及设备
迅速3溶液与完成按钮
不要忘了import SafariServices
if let url = URL(string: "http://www.yoururl.com/") {
let vc = SFSafariViewController(url: url, entersReaderIfAvailable: true)
present(vc, animated: true)
}
因为这个答案是,因为iOS的10.0过时,一个更好的答案是:
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}else{
UIApplication.shared.openURL(url)
}
和Objective-C
[[UIApplication sharedApplication] openURL:@"url string" options:@{} completionHandler:^(BOOL success) {
if (success) {
NSLog(@"Opened url");
}
}];
的OpenURL(:)被弃用iOS的10.0,而应该使用上的UIApplication以下实例方法: 打开(:选择:completionHandler :)
使用实施例斯威夫特
这将打开“ https://apple.com在Safari”。
if let url = URL(string: "https://apple.com") {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
}
https://developer.apple.com/reference/uikit/uiapplication/1648685-open
在SWIFT 3.0
if let url = URL(string: "https://www.google.com") {
UIApplication.shared.open(url, options: [:])
}
试试这个:
NSString *URL = @"xyz.com";
if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:URL]])
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:URL]];
}
在雨燕1.2,试试这个:
let pth = "http://www.google.com"
if let url = NSURL(string: pth){
UIApplication.sharedApplication().openURL(url)
斯威夫特4解决方案:
UIApplication.shared.open(NSURL(string:"http://yo.lo")! as URL, options: [String : Any](), completionHandler: nil)