Передача данных из JavaScript в Swift. Функция UserContentController никогда не вызывала проблемы - PullRequest
0 голосов
/ 11 января 2020

Я застреваю, функция userContentController никогда не вызывается.

userContentController функция

func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
        print("Function Called")
        let showData = message.body as? String
        print(showData ?? "No Value received")
    }

viewDidLoad

        super.viewDidLoad()

        let configuration = WKWebViewConfiguration()
        configuration.userContentController.add(self, name: "send")
        let rect = CGRect(x: 0, y: 0, width: 100, height: 100)
        let wweb = WKWebView(frame: rect, configuration: configuration)


        if let filePath = Bundle.main.url(forResource: "Script", withExtension: "html") {
            let request = NSURLRequest(url: filePath)
            wweb.load(request as URLRequest)
        }
    }

Сценарий

<html>
    <script>
        window.webkit.messageHandlers.send.postMessage("Hell from JavaScript");
    </script>
    <!--<h1><script src="http://scripts.myradiostream.com/s33/14866/status.js?online=BU RADiO OnAir&offline=BU RADiO OffAir&nosource=BU RADiO Coming OnAir Soon"></script></h1>
     -->
</html>

1 Ответ

0 голосов
/ 22 января 2020

Попробуйте передать словарь вместо строки в скрипте.

пример: window.webkit.messageHandlers.send.postMessage ({"body": "Ад из JavaScript"})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...