Я работаю над встраиванием своего приложения React.js в собственное приложение iOS с помощью WKWebView.Чтобы иметь возможность манипулировать нативной функциональностью с помощью javascript, я использовал WKScriptMessageHandler
, как описано в этой статье https://medium.com/@JillevdWeerd/creating-links-between-wkwebview-and-native-code-8e998889b503,, но мое приложение для iOS не будет получать никаких сообщений.Может кто-нибудь сказать мне, в чем может быть причина?Спасибо!
Вот быстрая сторона:
override func loadView() {
super.loadView()
let contentController = WKUserContentController()
contentController.add(self as WKScriptMessageHandler, name: "PDFPrint")
let config = WKWebViewConfiguration()
config.userContentController = contentController
webView = WKWebView(frame: self.view.bounds, configuration: config)
webView.navigationDelegate = self
view = webView
}
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if message.name == "PDFPrint", let messageBody = message.body as? String {
print(messageBody)
}
}
И сторона javascript:
try {
webkit.messageHandlers.PDFPrint.postMessage('test message');
} catch(err) {
console.log('Can not reach native code');
}
Я могу предоставить весь ViewController.swift, если необходимо.