[英]How to Listen to JavaScript CallBack from Swift?
I am implementing MPGS webView for payment on WKWebView
in my iOS App the backend developer send me javascript callback on myHandler object.我正在我的 iOS 应用程序中实现 MPGS webView 以在
WKWebView
上付款,后端开发人员在 myHandler ZA8CFDE6331BD4BEB2666 上向我发送 javascript 回调
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:我应该收到那个处理程序,它带有许多成功或失败的回调或取消(当用户单击 webview 中的取消按钮时触发),在 JS 中它看起来像这样:
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: WKWebview
已加载,但当我完成或取消WKScriptMessageHandler
委托中的 webview 打印语句从未执行时,我没有收到任何事件:
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
此致
You can try ( missing .messageHandlers.
)您可以尝试(缺少
.messageHandlers.
)
window.webkit.messageHandlers.MyHandler.postMessage("cancel");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.