Swift에서 URL을 여는 방법
openURL
는 Swift 3에서 폐지되었습니다.
대체가 어떻게 이루어지는지 예를 들어줄 수 있는 사람이 있나요?openURL:options:completionHandler:
작동합니까?
필요한 것은 다음과 같습니다.
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
자세한 것은, Apple 의 메뉴얼을 참조해 주세요.
앱을 종료하지 않고 앱 내부에서 열고 싶다면 Safari Services를 Import하여 해결할 수 있습니다.
import UIKit
import SafariServices
let url = URL(string: "https://www.google.com")
let vc = SFSafariViewController(url: url!)
present(vc, animated: true, completion: nil)
Swift 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.
}
};
언급URL : https://stackoverflow.com/questions/39546856/how-to-open-an-url-in-swift
'programing' 카테고리의 다른 글
Swift는 String에 트리밍 방식이 있나요? (0) | 2023.04.09 |
---|---|
Swift에서 ForEach에 인덱스 가져오기UI (0) | 2023.04.09 |
데이터 테이블 에이잭스 호출 성공 시 함수를 호출한다. (0) | 2023.04.04 |
AngularJS 디렉티브 제한 A와 E (0) | 2023.04.04 |
wordpress에서 wp_mail() 함수를 사용하는 방법 (0) | 2023.04.04 |