Есть ли опыт создания iOS приложений с использованием WebView?
Что проверяют
Работали ли вы с WKWebView дальше загрузки URL: мост с JavaScript, cookies, навигация, утечки памяти. Следом обычно спрашивают, как передать данные из веба в Swift и обратно, или когда WebView вообще не нужен.
Как отвечать
Отвечайте через свой проект: что показывали в WebView, почему не нативно, какие проблемы решили. Каркас технической части:
- компонент:
WKWebViewиз WebKit.UIWebViewдавно устарел, и App Store с 2020 года не принимает приложения, которые его используют; - мост: из JS в Swift через
WKScriptMessageHandlerиuserContentController.add(_:name:), из Swift в JS черезevaluateJavaScriptилиcallAsyncJavaScript. Скрипты при загрузке страницы внедряются черезWKUserScript; - навигация:
WKNavigationDelegateиdecidePolicyFor, чтобы открывать внешние ссылки в Safari, перехватывать deep links и не пускать на чужие домены; - сессия: cookies живут в
WKHTTPCookieStore, отдельно отHTTPCookieStorage, и авторизацию между нативной частью и вебом синхронизируют вручную; - SwiftUI: до iOS 26 WebView оборачивали в
UIViewRepresentable, теперь есть нативныеWebViewиWebPage; - отладка:
isInspectable = trueоткрывает страницу в Web Inspector из Safari.
Покажите, что знаете, где WebView не нужен: внешнюю страницу проще открыть в SFSafariViewController, а вход через OAuth делается через ASWebAuthenticationSession.
Назовите свои примеры и цифры: сколько экранов было на вебе, что ускорили, какой баг ловили. Если опыта нет, скажите честно и опишите, как подошли бы к задаче, например встроить в приложение веб-страницу оплаты.
Где спотыкаются
Регистрируют контроллер обработчиком сообщений напрямую и получают утечку: WKUserContentController держит handler сильной ссылкой, а контроллер держит WebView. Нужен слабый прокси или удаление обработчика при уходе с экрана.
Не обрабатывают webViewWebContentProcessDidTerminate. Процесс страницы система убивает при нехватке памяти, и пользователь видит белый экран.
Собирают приложение как обёртку над сайтом. Такое отклоняют на ревью по правилу о минимальной функциональности.