160 votes

comment ouvrir une URL dans Swift3

openURL est déconseillé dans Swift3. Quelqu'un peut-il donner quelques exemples de la manière dont le remplacement openURL:options:completionHandler: fonctionne lorsque vous essayez d'ouvrir une URL?

406voto

Devran Cosmo Uenal Points 4480
Ainsi vous aurez juste besoin :

43voto

Nirav D Points 53910

La réponse ci-dessus est correcte, mais si vous voulez vérifier que vous canOpenUrl ou essayez pas de ce genre.

let url = URL(string: "http://www.facebook.com")!
if UIApplication.shared.canOpenURL(url) {
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
    //If you want handle the completion block than 
    UIApplication.shared.open(url, options: [:], completionHandler: { (success) in
         print("Open url : \(success)")
    })
}

Remarque: Si vous ne souhaitez pas gérer la fin, vous pouvez également écrire comme cela.

UIApplication.shared.open(url, options: [:])

Pas besoin d'écrire completionHandler il contient la valeur par défaut nil, consultez la documentation d'apple pour plus de détails.

37voto

Chetan Rajagiri Points 420

Si vous souhaitez ouvrir l'application elle-même au lieu de la quitter, vous pouvez importer SafariServices et le résoudre .

 import UIKit
import SafariServices

let url = URL(string: "https://www.google.com")
let vc = SFSafariViewController(url: url!)
present(vc, animated: true, completion: nil)
 

8voto

Demosthese Points 587

Swift 3 version

 import UIKit

protocol PhoneCalling {
    func call(phoneNumber: String)
}

extension PhoneCalling {
    func call(phoneNumber: String) {
        let cleanNumber = phoneNumber.replacingOccurrences(of: " ", with: "").replacingOccurrences(of: "-", with: "")
        guard let number = URL(string: "telprompt://" + cleanNumber) else { return }

        UIApplication.shared.open(number, options: [:], completionHandler: nil)
    }
}
 

2voto

Scott Maretick Points 17

J'utilise macOS Sierra (v10.12.1) Xcode v8.1 Swift 3.0.1 et voici ce qui a fonctionné pour moi dans ViewController.swift:

 //
//  ViewController.swift
//  UIWebViewExample
//
//  Created by Scott Maretick on 1/2/17.
//  Copyright © 2017 Scott Maretick. All rights reserved.
//

import UIKit
import WebKit

class ViewController: UIViewController {

    //added this code
    @IBOutlet weak var webView: UIWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Your webView code goes here
        let url = URL(string: "https://www.google.com")
        if UIApplication.shared.canOpenURL(url!) {
            UIApplication.shared.open(url!, options: [:], completionHandler: nil)
            //If you want handle the completion block than
            UIApplication.shared.open(url!, options: [:], completionHandler: { (success) in
                print("Open url : \(success)")
            })
        }
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


};
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X