openURL
Swift3에서는 더 이상 사용되지 않습니다. 누구나 openURL:options:completionHandler:
URL을 열려고 할 때 교체가 어떻게 작동 하는지 몇 가지 예를 제공 할 수 있습니까 ?
답변
필요한 것은 다음과 같습니다.
guard let url = URL(string: "http://www.google.com") else {
return //be safe
}
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
답변
위의 답변은 맞지만 확인하고 싶 canOpenUrl
거나 시도하지 않으려는 경우.
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)")
})
}
참고 : 완료를 처리하지 않으려면 다음과 같이 작성할 수도 있습니다.
UIApplication.shared.open(url, options: [:])
completionHandler
기본값이 포함되어 있으므로 쓸 필요가 없습니다 . 자세한 내용은 애플 설명서 를 nil
확인하십시오 .
답변
앱을 떠나지 않고 앱 자체를 열려면 SafariServices 를 가져 와서 해결할 수 있습니다 .
import UIKit
import SafariServices
let url = URL(string: "https://www.google.com")
let vc = SFSafariViewController(url: url!)
present(vc, animated: true, completion: nil)
답변
스위프트 3 버전
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)
}
}
답변
macOS Sierra (v10.12.1) Xcode v8.1 Swift 3.0.1을 사용하고 있으며 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.
}
};
답변
import UIKit
import SafariServices
let url = URL(string: "https://sprotechs.com")
let vc = SFSafariViewController(url: url!)
present(vc, animated: true, completion: nil)