如何启动从iOS应用Safari和打开URL(How to launch safari and op

2019-06-18 03:56发布

在设置页面上,我想包括三个环节,以

  • 我的应用程序支持站点
  • YouTube应用教程
  • 我的主站点(即:与标记物连接“由戴尔·迪特里希创建”)

我搜索这个网站和网页和我的文档,我已经没有发现任何明显。

注:我不希望我的应用程序中打开网页,我只是想将链接发送给Safari和该链接打开那里。 我见过的应用程序做同样的事情在他们的设置页面的号码,它必须是可行的。

Answer 1:

继承人我做了什么:

  1. 我创建了.h文件如下标题中的IBAction为:

     - (IBAction)openDaleDietrichDotCom:(id)sender; 
  2. 我添加一个UIButton的设置页面上包含我要链接的文本。

  3. 我适当地连接按钮IBAction为在文件所有者。

  4. 然后执行以下操作:

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) 
}


Answer 2:

斯威夫特语法:

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)


Answer 3:

在这里,人们检查要求的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)
}


Answer 4:

看看在-openURL:方法上的UIApplication。 它应该让你的NSURL实例传递到系统,这将决定哪些应用程序在打开并启动该应用程序。 (请记住,你可能会想看看-canOpenURL:第一,以防万一URL不能被当前安装在系统上的应用程序进行处理-虽然这可能不是简单的一个问题http:// 。链接)



Answer 5:

而且,如果你不知道,如果提供的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];


Answer 6:

非不推荐使用Objective-C的版本是:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://apple.com"] options:@{} completionHandler:nil];


Answer 7:

雨燕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以及设备



Answer 8:

迅速3溶液与完成按钮

不要忘了import SafariServices

if let url = URL(string: "http://www.yoururl.com/") {
            let vc = SFSafariViewController(url: url, entersReaderIfAvailable: true)
            present(vc, animated: true)
        }


Answer 9:

因为这个答案是,因为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");
        }
    }];


Answer 10:

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



Answer 11:

在SWIFT 3.0

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


Answer 12:

试试这个:

NSString *URL = @"xyz.com";
if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:URL]])
{
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:URL]];
}


Answer 13:

在雨燕1.2,试试这个:

let pth = "http://www.google.com"
    if let url = NSURL(string: pth){
        UIApplication.sharedApplication().openURL(url)


Answer 14:

斯威夫特4解决方案:

UIApplication.shared.open(NSURL(string:"http://yo.lo")! as URL, options: [String : Any](), completionHandler: nil)


文章来源: How to launch safari and open URL from iOS app