Обработчик сообщений не работает в WKWebView в iOS 9 - PullRequest
0 голосов
/ 08 апреля 2019

Я создал приложение, которое использует WKWebView для отображения HTML-страницы. Я встроил кнопку, которая вызывает функцию javascript для отправки сообщения в мой код. Это прекрасно работает на iOS 12, но когда я отлаживаю для iOS 9, это вообще не работает. Обработчик сообщений не вызывается.

Я пробовал несколько разных способов сделать это для iOS 9, но, похоже, ничего не работает.

Это мой быстрый код:

let config = WKWebViewConfiguration()
let content = WKUserContentController()

content.add(self, name: "callback")
config.userContentController = content

page = WKWebView(frame: self.WKBaseView.bounds, configuration: config)

Вот как я обрабатываю сообщение:

func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {

        dump(message.body)

}

Это то, что я называю из JS:

try {
      webkit.messageHandlers.callback.postMessage("test");
    } catch(err) {
      console.log('Can not reach app');
    }

Так как это отлично работает на iOS 12, это ошибка в iOS 9 или есть какой-то другой способ сделать это?

1 Ответ

0 голосов
/ 08 апреля 2019

Я исправил проблему. Оказывается, это была ошибка JavaScript. Очевидно, iOS <12 не поддерживает «let» при объявлении переменных. </p>

...