Şu anda bir WebView uygulamasında uygulamasındaki bağlantıyı açıyorum, ancak bağlantıyı Safari'de açmak için bir seçenek arıyorum.Swift Open Link in Safari
Swift'de bunu yapmanın kolay bir yolu var mı?
Şu anda bir WebView uygulamasında uygulamasındaki bağlantıyı açıyorum, ancak bağlantıyı Safari'de açmak için bir seçenek arıyorum.Swift Open Link in Safari
Swift'de bunu yapmanın kolay bir yolu var mı?
"Swift'de pişmiş" değil, ancak bunu yapmak için standart UIKit
yöntemlerini kullanabilirsiniz. UIApplication
's openUrl()
'a bir göz atın.
Swift 4
UIApplication.shared.open(URL(string : "http://www.stackoverflow.com")!, options: [:], completionHandler: { (status) in
})
Swift 3
UIApplication.shared.openURL(URL(string: "http://www.stackoverflow.com")!)
Swift 2,2
UIApplication.sharedApplication().openURL(NSURL(string: "http://www.stackoverflow.com")!)
Sen opti olarak NSURL kontrol edebilirsiniz onal dolaylı için:
Swift 1.2 ileif let requestUrl = NSURL(string: "http://www.iSecurityPlus.com") {
UIApplication.sharedApplication().openURL(requestUrl)
}
Olması gereken (requestUrl!) –
Amit, Hayır, çünkü açıkladığım gibi açık bir şekilde yapıldığından, requestUrl = request olsun, eğer requestUrl = ... – CodeOverRide
Aslında, öyle olsun. Swift 2. –
:
@IBAction func openLink {
let pth = "http://www.google.com"
if let url = NSURL(string: pth){
UIApplication.sharedApplication().openURL(url)
}
: IOS 9
UIApplication.sharedApplication().openURL(NSURL(string: "http://stackoverflow.com")!)
yeni ve daha yükseğe (belgelere bakın bir SFSafariViewController
kullanıcıya mevcut olabilir here). Temel olarak, kullanıcıyı uygulamanızı bırakmadan Safari'ye göndermenin tüm avantajlarını elde edersiniz.
let svc = SFSafariViewController(url: url)
present(svc, animated: true, completion: nil)
safari görünümü bu gibi bir şey olacaktır:
böyle safari görünümü kontrolörü ile kullanıcıya sunmakimport SafariServices
ve yerde bir olay işleyicisinde: sadece yeni SFSafariViewController kullanmak için
Swift 3 & IOS 10.2
UIApplication.shared.open(URL(string: "http://www.stackoverflow.com")!, options: [:], completionHandler: nil)
Swift 3 & IOS 10,2
Ancak, bu sürümü kullanmanın, sürümü kontrol etmediğiniz sürece iOS 9 ve önceki sürümlerde uygulamanızı durduracağını unutmayın. – CupawnTae
iOS 10 beri kullanmalıdır:
guard let url = URL(string: linkUrlString) else {
return
}
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
IOS 11.2 Swift 3.1- 4
let webView = WKWebView()
override func viewDidLoad() {
super.viewDidLoad()
guard let url = URL(string: "https://www.google.com") else { return }
webView.frame = view.bounds
webView.navigationDelegate = self
webView.load(URLRequest(url: url))
webView.autoresizingMask = [.flexibleWidth,.flexibleHeight]
view.addSubview(webView)
}
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
if navigationAction.navigationType == .linkActivated {
if let url = navigationAction.request.url,
let host = url.host, !host.hasPrefix("www.google.com"),
UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url)
print(url)
print("Redirected to browser. No need to open it locally")
decisionHandler(.cancel)
} else {
print("Open it locally")
decisionHandler(.allow)
}
} else {
print("not a user click")
decisionHandler(.allow)
}
}
}
Bu satın alma URL'sini eklediğimizde uygulama mağazasından herhangi bir şans var mı? – Jan
'' 'UIApplication.shared.openURL (URL (string:" http://www.stackoverflow.com ")!)' '' –
iOS 10.0'da artık seçenekler ve işleyici eklemeniz gerekir: UIApplication.shared.open (URL (string: "http://www.google.com") !, options: [:], completionHandler: nil) – gabicuesta