Цель этой статьи — показать нам, как создать интерфейс для получения сообщений от JavaScript в WebKit.

WKScriptMessageHandler использует протокол, когда вашему приложению требуется способ ответа на сообщения JavaScript в веб-представлении. Когда код JavaScript отправляет сообщение, специально предназначенное для вашего обработчика сообщений, WebKit вызывает метод вашего обработчика userContentController(_:didReceive:).

Идем начинать.

  1. Создайте класс для обработки сообщений:

Создание отдельного класса, покрывающего логические задачи, — это гораздо лучший способ, чем делать это внутри ViewController.

Нажмите Command + N, чтобы создать новый файл Swift и вызвать ScriptMessageHandler. Таким образом, вам нужно объявить класс с тем же именем, после чего вам нужно создать подкласс NSObject.

NSObject – это так называемый универсальный базовый класс для всех классов Cocoa Touch.

2. соответствует протоколу WKScriptMessageHandler:

Теперь класс ScriptMessageHandler соответствует WKScriptMessageHandler , поэтому необходимо реализовать userContentController.

3. Объявите протокол для сообщений сценария:

Теперь нам нужно объявить протокол для отправки сообщений в ViewController.

4. Разобрать сообщение и отправить его в viewController:

мы получаем сообщение в func userContentController, после этого проверяем имя и анализируем тело и отправляем его делегатом.

5. подготовьте конфигурацию для WKWebView:

убедитесь, что имя сообщения в javaScript совпадает с именем конфигурации, в этом примере мы использовали логин.

наконец, в коде javascript:

заканчивать. теперь вам нужно реализовать ScriptMessageHandler в ViewController.

Заключение:

WKScriptMessageHandler позволяет легко общаться с помощью JavaScript

Исходный код доступен на Github

Спасибо, что прочитали эту статью. Если вам понравилось, поделитесь с другими😊.

Я жду ваших комментариев или рекомендаций.

Свяжитесь со мной через LinkedIn