Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про IOS: wkscriptmessagehandler

Какие способы взаимодействия iOS-кода с WebView существуют?

Вопрос проверяет знание способов двустороннего общения между нативным кодом и веб-контентом.

Короткий ответ

iOS-код может взаимодействовать с WebView через JavaScript, message handlers и навигационные делегаты. Можно выполнять JS-код, получать сообщения из HTML и отслеживать переходы. Эти механизмы покрывают большинство сценариев интеграции. Выбор зависит от сложности взаимодействия.

Длинный ответ

Для интеграции веб-контента с нативным приложением WebKit предоставляет несколько механизмов взаимодействия.

Выполнение JavaScript из iOS

Используется для:

  • изменения DOM

  • получения данных

  • вызова JS-функций

webView.evaluateJavaScript("getUserId()")

Получение сообщений из WebView

Определение:
Message handler — это канал передачи данных из JavaScript в iOS.

JS-код:

window.webkit.messageHandlers.event.postMessage("data")

iOS-код:

userContentController.add(self, name: "event")

Делегаты навигации

Через WKNavigationDelegate можно:

  • отслеживать загрузку страниц

  • блокировать переходы

  • анализировать URL

Когда что использовать

Обычно:

  1. JS ↔ iOS — для данных и событий

  2. Делегаты — для навигации

  3. URL-схемы — для простых сценариев

Вывод

WKWebView предоставляет гибкий набор инструментов для двустороннего взаимодействия между вебом и нативным кодом.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • IOS

    IOS

Ключевые слова

#wkscriptmessagehandler

Подпишись на iOS Developer в телеграм