আমি বর্তমানে আমার অ্যাপ্লিকেশনটিতে লিঙ্কটি খুলছি WebView
, তবে আমি পরিবর্তে সাফারিতে লিঙ্কটি খোলার জন্য একটি বিকল্প খুঁজছি ।
আমি বর্তমানে আমার অ্যাপ্লিকেশনটিতে লিঙ্কটি খুলছি WebView
, তবে আমি পরিবর্তে সাফারিতে লিঙ্কটি খোলার জন্য একটি বিকল্প খুঁজছি ।
উত্তর:
এটি "বেকড ইন সুইফ্ট" নয়, তবে আপনি UIKit
এটি করার জন্য মানক পদ্ধতি ব্যবহার করতে পারেন । ইউআইএপ্লিকেশন এর ( অবচয় ) এবং দেখুনopenUrl(_:)
open(_:options:completionHandler:)
।
সুইফট 4 + সুইফট 5 (আইওএস 10 এবং উপরে)
guard let url = URL(string: "https://stackoverflow.com") else { return }
UIApplication.shared.open(url)
সুইফট 3 (আইওএস 9 এবং নীচে)
guard let url = URL(string: "https://stackoverflow.com") else { return }
UIApplication.shared.openURL(url)
সুইফট 2.2
guard let url = URL(string: "https://stackoverflow.com") else { return }
UIApplication.sharedApplication().openURL(url)
আইওএস 9 এর সাথে নতুন এবং উচ্চতর আপনি ব্যবহারকারীর সাথে একটি উপস্থাপন করতে পারেন SFSafariViewController
( এখানে ডকুমেন্টেশন দেখুন )। মূলত আপনি ব্যবহারকারীকে আপনার অ্যাপটি ছেড়ে না দিয়েই সাফারিতে প্রেরণের সমস্ত সুবিধা পান। নতুন এসএফএসফারিভিউ কনট্রোলারটি কেবলমাত্র ব্যবহার করতে:
import SafariServices
এবং কোনও ইভেন্টের হ্যান্ডলারটিতে কোথাও সাফারি ভিউ কন্ট্রোলারের সাথে ব্যবহারকারীকে এইভাবে উপস্থাপন করুন:
let svc = SFSafariViewController(url: url)
present(svc, animated: true, completion: nil)
সাফারি ভিউতে এরকম কিছু দেখাবে:
sharedApplication
অ্যাপ্লিকেশন এক্সটেনশনে সম্পত্তি অ্যাক্সেস নিষিদ্ধ। আরও তথ্যের জন্য: বিকাশকারী.অ্যাপল.
সুইফট 4 এর জন্য আপডেট হয়েছে: (মার্কো ওয়েবারের ক্রেডিট)
if let requestUrl = NSURL(string: "http://www.iSecurityPlus.com") {
UIApplication.shared.openURL(requestUrl as URL)
}
অথবা আরও বেশি দ্রুতগতির স্টাইল ব্যবহার করে যান guard
:
guard let requestUrl = NSURL(string: "http://www.iSecurityPlus.com") else {
return
}
UIApplication.shared.openURL(requestUrl as URL)
সুইফট 3:
আপনি এনএসআরএলকে নিখুঁতভাবে alচ্ছিক হিসাবে এটি পরীক্ষা করতে পারেন:
if let requestUrl = NSURL(string: "http://www.iSecurityPlus.com") {
UIApplication.sharedApplication().openURL(requestUrl)
}
if let requestUrl = NSURL(string: "http://www.iSecurityPlus.com") { UIApplication.shared.openURL(requestUrl as URL) }
সুইফট 3 এবং আইওএস 10.2
UIApplication.shared.open(URL(string: "http://www.stackoverflow.com")!, options: [:], completionHandler: nil)
সুইফট 3 এবং আইওএস 10.2
আইওএস 10 এর পরে আপনার ব্যবহার করা উচিত:
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)
}
সুইফট 5
সুইফট 5: canOpneURL
বৈধ কিনা তা ব্যবহার করে তা পরীক্ষা করে তা খোলার জন্য।
guard let url = URL(string: "https://iosdevcenters.blogspot.com/") else {
return
}
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
আইওএস 11.2 সুইফট 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)
}
}