// whenever I load any URL in my webview , then this callbackhadler must work when called by javascript in loaded website/URL, but it doesn't get called, in my case, I m working on payment portal and after success/failed payment website must call this callbackHandler
// view did load
override func viewDidLoad() {
super.viewDidLoad()
let contentController = WKUserContentController()
contentController.add(self, name: "callbackHandler")
contentController.add(self, contentWorld: .defaultClient, name:
"callbackHandler")
let config = WKWebViewConfiguration()
config.ignoresViewportScaleLimits = true
config.userContentController = contentController
config.preferences.javaScriptCanOpenWindowsAutomatically = true
config.defaultWebpagePreferences.allowsContentJavaScript = true
self.webView = WKWebView( frame: .zero, configuration: config)
}
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {// edit: changed fun to func
if (message.name == "callbackHandler"){
print("with boby mesage \(message.body)")
}
}
here is the article provided by payment company which suggested this method in the first place,