Почему мое приложение для iOS не получает сообщение от WKWebView - PullRequest
0 голосов
/ 24 декабря 2018

Я работаю над встраиванием своего приложения 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, если необходимо.

...