toywar
@toywar
Сетевой инженер, системный администратор

Как добавить кастомный CSS внутрь WebView?

Суть такая: есть WebView, в который передается строка, содержащая HTML.
Выглядит так:
let newsHTML = receviedNewsText
viewNewsHTML.loadHTMLString(newsHTML, baseURL: nil)


viewNewsHTML - собственно, сам WebView;
receviedNewsText - это HTML (из тегов там только p и иногда a), который достается с сервера через JSON.
Поскольку там нет никаких стилей, то текст обычный, маленький, некрасивый.

Задача в том, чтобы внутри WebView я мог использовать стили для тега p.

Как это можно сделать? Идеально, если это будет файл .css внутри приложения, стили из которого будут подгружаться в WebView. Но может есть какой-то другой способ.

Буду признателен за советы. Спасибо!
  • Вопрос задан
  • 576 просмотров
Решения вопроса 1
toywar
@toywar Автор вопроса
Сетевой инженер, системный администратор
Решение нашлось (правда на ObjC, но переписать на Swift не составило труда):
- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSString *cssString = @"body { font-family: Helvetica; font-size: 50px }"; // 1
    NSString *javascriptString = @"var style = document.createElement('style'); style.innerHTML = '%@'; document.head.appendChild(style)"; // 2
    NSString *javascriptWithCSSString = [NSString stringWithFormat:javascriptString, cssString]; // 3
    [webView stringByEvaluatingJavaScriptFromString:javascriptWithCSSString]; // 4
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
maximglobak
@maximglobak
iOS developer
Можно создать свой файлик .css и при загрузке html преобразовать его в строку и добавить в начало строки
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы