2017-01-19 60 views
0

不开,我需要开url编程当用户点击cell,但并不需要顺着接下去Safari browser。现场需要统计。如何打开URL编程,但在浏览器中迅速

这需要模仿像post request

我做的:

UIApplication.shared.openURL(URL(string: url)!) 

但这种开放Safari browser

+0

您必须使用WebView – iDeveloper

+0

只需使用'URLRequest'来执行此操作。 – zisoft

+0

如果您想分析您的应用,我认为您可以使用Google -Firebase- Analytics,Fabric或为此编写自己的Web服务实现。这对您的应用程序更有效。 –

回答

0

如果我没有弄错,要打开的应用程序它自我的URL(不含导航到外部-Safari-浏览器)。那么,如果是这样的话,您应该使用UIWebView

您可以使用UIWebView类将Web内容嵌入到您的应用中。至 这样做,创建一个UIWebView对象,将其附加到一个窗口,并发送一个 请求加载网页内容。您也可以使用这个类回迁 和网页历史前进,你甚至可以通过编程设置一些网站 内容属性。

WebViewController:

我建议一个UIWebView添加到视图控制器(称为WebViewController)并在需要时呈现的ViewController;视图控制器上的故事板应该是这样的:

enter image description here

不要忘记分配一个Storyboard ID吧。

而视图控制器:

class WebViewController: UIViewController { 
    @IBOutlet weak private var webVIew: UIWebView! 

    var urlString: String? 

    override func viewDidLoad() { 
     if let unwrappedUrlString = urlString { 
      let urlRequest = URLRequest(url: URL(string: unwrappedUrlString)!) 

      webVIew.loadRequest(urlRequest) 
     } 
    } 

    @IBAction private func donePressed(_ sender: Any) { 
     dismiss(animated: true, completion: nil) 
    } 
} 

用法:

考虑您想目前它当用户点击在另一个视图控制器按钮:

class ViewController: UIViewController { 
    @IBAction private func donePressed(_ sender: Any) { 
     let stoyrboard = UIStoryboard(name: "Main", bundle: nil) 

     // withIdentifier: the used storyboard ID: 
     let webViewController = stoyrboard.instantiateViewController(withIdentifier: "WebViewController") as! WebViewController 
     webViewController.urlString = "https://www.google.com/" 

    } 
} 

或者专门为你的情况(选择一​​个单元格):

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    // withIdentifier: the used storyboard ID: 
    let webViewController = stoyrboard.instantiateViewController(withIdentifier: "WebViewController") as! WebViewController 
    webViewController.urlString = "URL GOES HERE..." 
} 

希望这有助于。

0

如果你的问题实际上意味着你有,你需要访问,这样就可以抽取被从它的信息的外部网站上的一些数据,那么你可能并不需要在所有的显示着色的网页。

您可以提取网页中的HTML内容是这样

var text = "" 

    let url = URL(string: "https://www.bbc.co.uk") 
    do 
    { 
     text = try String(contentsOf: url!, encoding: String.Encoding.utf8) 
    } 
    catch 
    { 
     print("error \(error.localizedDescription)") 
    } 
    if !text.isEmpty 
    { 
     parseThisPageSomehow(text) 
    } 

您如何分析文本取决于你需要把它弄出来什么,但是这种做法会给你你需要的数据。

如果使用http而非https,你会遇到证据充分的运输安全问题,这将迫使你要么设置为HTTP临时替代,或开始使用HTTPS

Transport security has blocked a cleartext HTTP

相关问题