Бесплатный вебинар
«как найти любимую работу»
Подарки на 150 000 ₽ за участие
Живой эфир
Записи не будет!
00:00:00:00
дн.ч.мин.сек.

Чтение HTML-содержимого из UIWebView в iPhone SDK

Быстрый ответ

Чтобы получить доступ к HTML-коду страницы в UIWebView, используйте метод stringByEvaluatingJavaScript(from:). Пример кода для извлечения HTML посредством JavaScript:

swift
Скопировать код
if let htmlString = webView.stringByEvaluatingJavaScript(from: "document.documentElement.innerHTML") {
    print(htmlString) // Вывод HTML-содержания намного интереснее, чем простого текста
}

Вызывайте данный код в функции-делегате webViewDidFinishLoad. Это простой способ для извлечения HTML-содержимого без лишних хлопот.

Кинга Идем в IT: пошаговый план для смены профессии

Освоение UIWebView и HTML-содержимого

Работа с UIWebView и HTML-содержимым была значительно упрощена благодаря возможностям WebKit, позволяющим эффективно взаимодействовать между Swift и веб-страницей.

Получение полного HTML-кода страницы

Если требуется получить полную HTML-структуру страницы, включая <head> и <body>, примените следующий код:

swift
Скопировать код
if let fullHTMLString = webView.stringByEvaluatingJavaScript(from: "document.documentElement.outerHTML") {
    print(fullHTMLString) // Есть все – целиком и полностью!
}
Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Выделение конкретных элементов

Чтобы выделить определенные элементы по их идентификатору id, выполните следующее:

swift
Скопировать код
if let elementHTML = webView.stringByEvaluatingJavaScript(from: "document.getElementById('yourElementId').innerHTML") {
    print(elementHTML) // Вот что мне нужно!
}

Загрузка вашего HTML непосредственно в UIWebView

Если вы желаете загрузить свой HTML-код в UIWebView, воспользуйтесь методом loadHTMLString:baseURL::

swift
Скопировать код
webView.loadHTMLString(yourHTMLString, baseURL: nil) // Ваши собственные страницы теперь смогут занять лидирующий экран

Тем не менее, помните, что выполнение JavaScript-скриптов в загруженном HTML может привести к техническим проблемам в работе UIWebView. Желательно избегать таких моментов.

Бережёте ваш HTML

Загрузка HTML из Интернета может стать непростой задачей. Всегда учитывайте возможность ошибок и следуйте принципу контроля различных user-agent. Ваши HTML-данные должны сохраняться с таким же уровнем безопасности, как и другие ценные данные.

Визуализация

Возможно, удобно представить процесс извлечения HTML из UIWebView аналогично работе усердной пчелы, собирающей нектар:

Markdown
Скопировать код
UIWebView (🌺): Дарит HTML-нектар (🍯)
swift
Скопировать код
let htmlNectar = uiWebView.stringByEvaluatingJavaScript(from: "document.documentElement.outerHTML")
Markdown
Скопировать код
Пчела (🐝) [Ваш код]: Задача – добывать нектар! Давайте постоянно действовать. (🔄)

Процесс сбора нектара завершён:

Markdown
Скопировать код
Ведро с нектаром (🪣): Полно до краёв HTML-богатством (🍯)

Каждая строка вашего кода аналогична усердной пчеле, целеустремлённо собирающей этот драгоценный нектар.

Умное программирование: избегая подводных камней

Мониторинг выполнения скриптов

Запуск лишних скриптов в loadHTMLString может вызвать замедление работы вашего UIWebView, аналогично трафику в часы пик. Сделайте контроль за выполнением JavaScript и стремитесь к его оптимизации.

Адаптация к разнообразию user-agent

При получении HTML-кода важно учитывать особенности веб-сервера. Приспосабливайте свой user agent так, чтобы получать наиболее подходящее для ваших задач содержание:

swift
Скопировать код
if let userAgent = webView.stringByEvaluatingJavaScript(from: "navigator.userAgent") {
    // Настройте запрос так, чтобы получить наиболее корректный ответ от сервера
}

Не ущемляйте безопасность хранения данных

HTML-содержимое требует надлежащей защиты. Убедитесь, что методы хранения и обработки данных соответствуют всем необходимым нормам и стандартам.

Полезные материалы

  1. UIWebView | Apple Developer Documentation – официальная документация по UIWebView, который не поддерживается Apple.
  2. WKWebView | Apple Developer Documentation – современный аналог UIWebView.
  3. WKScriptMessageHandler | Apple Developer Documentation – интерфейс для взаимодействия между JavaScript и нативным кодом.
  4. New <video> Policies for iOS | WebKit – информация об особенностях политики iOS по отношению к видео и её влиянии на веб-контент.
  5. Automatic OTP verification in iOS? – Stack Overflow – погружение в проблематику обработки мобильного веб-контента.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какой метод используется для получения HTML-содержимого из UIWebView?
1 / 5