WKWebView
iOS उपयोग परिदृश्य के लिए, WKWebView का उपयोग करना अनुशंसित तरीकों में से एक है।
लेनदेन बनाने और लेनदेन का लिंक प्राप्त करने के बाद, निम्नलिखित इम्प्लीमेंटेशन की सलाह दी जाती है:
- अपने सामान्य फ्लो में (जिसमें कार्ड नॉट प्रेजेंट सत्यापन शामिल है), आप API के माध्यम से जनरेट किए गए लिंक के साथ WKWebView खोलेंगे;
- आप अपने ऐप की आव श्यकता के अनुसार इस ओपनिंग को कस्टमाइज़ कर सकते हैं;
- आप निगरानी करेंगे कि URL बदला है या नहीं (
redirectUrlमें) और फिर WKWebView को बंद करेंगे।
एक WKWebView खोलना काफी सरल है:
import UIKit
import WebKit
import SafariServices
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.view.backgroundColor = .white
}
@IBAction func open(_ sender: Any) {
createWKWebViewFull()
}
func createWKWebViewFull() {
webView = WKWebView(frame: self.view.bounds, configuration: getWKWebViewConfiguration())
webView.navigationDelegate = self
view.addSubview(webView)
self.loadUrl()
}
func loadUrl() {
if let url = URL(string:"<URL_TO_LOAD>") {
webView.load(URLRequest(url: url))
webView.allowsBackForwardNavigationGestures = true
}
}
private func getWKWebViewConfiguration() -> WKWebViewConfiguration {
let config = WKWebViewConfiguration()
config.allowsInlineMediaPlayback = true
config.mediaTypesRequiringUserActionForPlayback = []
return config
}
WKWebView को कब बंद करना है यह कंट्रोल करने के लिए, यह इस तरह किया जा सकता है:
func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
if let currentURL = webView.url {
print("URL changed to: \(currentURL.absoluteString)")
if currentURL.absoluteString == "<URL_TO_OBSERVER>" {
closeWebView()
}
}
}
@objc func closeWebView() {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
self.webView.removeFromSuperview()
}
}
नोट
सही ढंग से कार्य करने के लिए कुछ अनुमतियां आवश्यक हैं, जैसे कि:
- कैमरा
- जियोलोकेशन
अधिक जानने के लिए, हम आधिकारिक WKWebView दस्तावेज़ पढ़ने की सलाह देते हैं।