Чтение HTML-содержимого из UIWebView в iPhone SDK
Быстрый ответ
Чтобы получить доступ к HTML-коду страницы в UIWebView
, используйте метод stringByEvaluatingJavaScript(from:)
. Пример кода для извлечения HTML посредством JavaScript:
if let htmlString = webView.stringByEvaluatingJavaScript(from: "document.documentElement.innerHTML") {
print(htmlString) // Вывод HTML-содержания намного интереснее, чем простого текста
}
Вызывайте данный код в функции-делегате webViewDidFinishLoad
. Это простой способ для извлечения HTML-содержимого без лишних хлопот.
Освоение UIWebView и HTML-содержимого
Работа с UIWebView
и HTML-содержимым была значительно упрощена благодаря возможностям WebKit, позволяющим эффективно взаимодействовать между Swift и веб-страницей.
Получение полного HTML-кода страницы
Если требуется получить полную HTML-структуру страницы, включая <head>
и <body>
, примените следующий код:
if let fullHTMLString = webView.stringByEvaluatingJavaScript(from: "document.documentElement.outerHTML") {
print(fullHTMLString) // Есть все – целиком и полностью!
}
Выделение конкретных элементов
Чтобы выделить определенные элементы по их идентификатору id
, выполните следующее:
if let elementHTML = webView.stringByEvaluatingJavaScript(from: "document.getElementById('yourElementId').innerHTML") {
print(elementHTML) // Вот что мне нужно!
}
Загрузка вашего HTML непосредственно в UIWebView
Если вы желаете загрузить свой HTML-код в UIWebView
, воспользуйтесь методом loadHTMLString:baseURL:
:
webView.loadHTMLString(yourHTMLString, baseURL: nil) // Ваши собственные страницы теперь смогут занять лидирующий экран
Тем не менее, помните, что выполнение JavaScript-скриптов в загруженном HTML может привести к техническим проблемам в работе UIWebView
. Желательно избегать таких моментов.
Бережёте ваш HTML
Загрузка HTML из Интернета может стать непростой задачей. Всегда учитывайте возможность ошибок и следуйте принципу контроля различных user-agent. Ваши HTML-данные должны сохраняться с таким же уровнем безопасности, как и другие ценные данные.
Визуализация
Возможно, удобно представить процесс извлечения HTML из UIWebView
аналогично работе усердной пчелы, собирающей нектар:
UIWebView (🌺): Дарит HTML-нектар (🍯)
let htmlNectar = uiWebView.stringByEvaluatingJavaScript(from: "document.documentElement.outerHTML")
Пчела (🐝) [Ваш код]: Задача – добывать нектар! Давайте постоянно действовать. (🔄)
Процесс сбора нектара завершён:
Ведро с нектаром (🪣): Полно до краёв HTML-богатством (🍯)
Каждая строка вашего кода аналогична усердной пчеле, целеустремлённо собирающей этот драгоценный нектар.
Умное программирование: избегая подводных камней
Мониторинг выполнения скриптов
Запуск лишних скриптов в loadHTMLString
может вызвать замедление работы вашего UIWebView
, аналогично трафику в часы пик. Сделайте контроль за выполнением JavaScript и стремитесь к его оптимизации.
Адаптация к разнообразию user-agent
При получении HTML-кода важно учитывать особенности веб-сервера. Приспосабливайте свой user agent так, чтобы получать наиболее подходящее для ваших задач содержание:
if let userAgent = webView.stringByEvaluatingJavaScript(from: "navigator.userAgent") {
// Настройте запрос так, чтобы получить наиболее корректный ответ от сервера
}
Не ущемляйте безопасность хранения данных
HTML-содержимое требует надлежащей защиты. Убедитесь, что методы хранения и обработки данных соответствуют всем необходимым нормам и стандартам.
Полезные материалы
- UIWebView | Apple Developer Documentation – официальная документация по UIWebView, который не поддерживается Apple.
- WKWebView | Apple Developer Documentation – современный аналог UIWebView.
- WKScriptMessageHandler | Apple Developer Documentation – интерфейс для взаимодействия между JavaScript и нативным кодом.
- New
<video>
Policies for iOS | WebKit – информация об особенностях политики iOS по отношению к видео и её влиянии на веб-контент. - Automatic OTP verification in iOS? – Stack Overflow – погружение в проблематику обработки мобильного веб-контента.