1

I am implementing MPGS webView for payment on WKWebView in my iOS App the backend developer send me javascript callback on myHandler object.

I should receive that handler which carry many callback for success or failure Or cancel (triggered when user click on cancel button in the webview) and in JS it look like this:

window.webkit.MyHandler.postMessage('cancel');
window.MyHandler.cancelCallback();

I implement the receiving of that callbacks using:

override func viewDidLoad() {
    super.viewDidLoad()
    let contentController = WKUserContentController()
    contentController.add(self, name: "MyHandler")
    let configuration = WKWebViewConfiguration()
    configuration.userContentController = contentController
    configuration.preferences = WKPreferences()
    configuration.preferences.javaScriptEnabled = true
    let url = URL(string: NetworkManager.mpgsBaseUrl + "/" + (MPGSWebView.url ?? ""))!
    let urlRequest = URLRequest(url: url)
    wkWebView = WKWebView(frame: .zero,configuration: configuration)
    wkWebView.navigationDelegate = self
    wkWebView.uiDelegate = self
    wkWebView.load(urlRequest)
    delegate = self.checkOutViewController
    view = wkWebView
}

The WKWebview is loaded but I am not receiving any events when I complete or cancel the webview print statement in the WKScriptMessageHandler delegate never executed:

func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
    print(message.name,"fff",message)
}

If anyone have an idea of how to receive that events I will be thankful. Best regards

1 Answer 1

1

You can try ( missing .messageHandlers. )

window.webkit.messageHandlers.MyHandler.postMessage("cancel");
Sign up to request clarification or add additional context in comments.

1 Comment

Thank you for your support...best regards

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.