Хочешь уверенно проходить IT-интервью?
Мы понимаем, как сложно подготовиться: стресс, алгоритмы, вопросы, от которых голова идёт кругом. Но с AI тренажёром всё гораздо проще.
💡 Почему Т1 тренажёр — это мастхэв?
- Получишь настоящую обратную связь: где затык, что подтянуть и как стать лучше
- Научишься не только решать задачи, но и объяснять своё решение так, чтобы интервьюер сказал: "Вау!".
- Освоишь все этапы собеседования, от вопросов по алгоритмам до диалога о твоих целях.
Зачем листать миллион туториалов? Просто зайди в Т1 тренажёр, потренируйся и уверенно удиви интервьюеров. Мы не обещаем лёгкой прогулки, но обещаем, что будешь готов!
Реклама. ООО «Смарт Гико», ИНН 7743264341. Erid 2VtzqwP8vqy
Поскольку в SwiftUI
еще нет своего элемента WebView
, мы будем использовать WKWebView
, который прекрасно справится с загрузкой веб-приложения или сайта.
В этом цикле статей мы рассмотрим следующие темы:
- Как сделать
WebView
с помощьюWKWebView
и протоколаUIViewRepresentable
вSwiftUI
. - Загрузить веб сайт или веб-приложение в
WebView
. - Взаимодействовать между нативным iOS приложением и web-приложением через функции JavaScript.
- Перехватывать каждый переход (навигацию) веб-сайта или веб-приложения в приложении iOS.
- Перезагружать WebView и осуществлять переход вперед и назад.
- Загружать локальный файл .html из iOS-проекта в WebView
Проект доступен на Github. Добавляйте его в закладки, чтобы следить за изменениями. Шаг за шагом мы будем реализовывать новую функциональность. Коммиты ответствуют заголовкам в статье, в которых приведены примеры кода.
Создаем свой WebView
Пару слов о UIViewRepresentable
Протокол UIViewRepresentable
– это обертка для UIKit View
, благодаря которой мы можем интегрировать любую View
из UIKit
.
Процесс адаптации прост и занимает четыре шага:
- Создаем структуру которая реализует протокол
UIViewRepresentable
. - Определяем необходимые свойства для своей
View
и т.п. - В функции
makeUIView()
возвращаем любойUIView
объект. - В функции
updateUIView()
обновляемView
.
Вот и все, теперь вы можете использовать свой View
в SwiftUI
.
Вот небольшой скелет обертки:
Также, для взаимодействия между UIKit
и SwiftUI View
вам может потребоваться написать класс Coordinator
.
struct WebView
Создадим структуру WebView
, но прежде проведем небольшую подготовку:
- Зададим действия для определения веб-навигации (вперед, назад и перезагрузка).
- Опишем типы загружаемых URL (локальный файл, публичный адрес).
Поскольку проект будет расти, мы сразу создадим группу Web
и будем добавлять туда все связанное с вебом. Я создал для каждого перечисления отдельный файл.
Добавим WebView
в ContentView
и протестируем созданный код.
В следующей части цикла мы научим WebView
взаимодействовать со SwiftUI
и напишем несложный интерфейс для веб-навигации, а в третьей части разберемся с JavaScript.
Happy code!
Дополнительные материалы:
Комментарии