Handling හෙළPay Links
Setup
Clone this repo.
git clone https://github.com/PayHereDevs/helapay-link-handler.git
To properly handle හෙළPay Links in your iOS WebView project, you will need the following helper class.
helapay-links/HelaPayLinkHandler.swift
Copy it into your Xcode project. Follow one of the following steps, depending on whether you use UIWebView
or WKWebView
.
For UIWebView
1. Set the web view delegate
class ViewController: UIViewController{
override func viewWillAppear(_ animated: Bool) {
// ...
webView.delegate = self
}
}
2. Implement the shouldStartLoadWith
method
extension ViewController: UIWebViewDelegate{
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebView.NavigationType) -> Bool {
// Important check for external suffix
if let url = request.url, url.absoluteString.hasSuffix("#HKexternal") {
HelaPayLinkHandler().handleHelaPayLink(url)
return false
}
else{
return true;
}
}
}
For WKWebView
1. Set the web view navigation delegate
class ViewController: UIViewController{
override func viewWillAppear(_ animated: Bool) {
// ...
webView.navigationDelegate = self
}
}
2. Implement the decidePolicyFor
method
extension ViewController: WKNavigationDelegate{
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
// Important check for external suffix
if let url = navigationAction.request.url, url.absoluteString.hasSuffix("#HKexternal") {
HelaPayLinkHandler().handleHelaPayLink(url)
decisionHandler(.cancel)
}
else{
decisionHandler(.allow)
}
}
}