Справочная информация: я разрабатываю приложение для чтения новостей, родное для iPhone, которое отображает многие новостные статьи в виде HTML в UIWebViews.Моя текущая цель состоит в том, чтобы в моем проекте был файл CSS, который может стилизовать html, который запрограммирован в виде сетки (статья + комментарии и т. Д.).Я сделал несколько небольших доказательств концепций, и я знаю, что могу использовать <link id=\"stylesheet\" rel=\"stylesheet\" href=\"Test.css\" type=\"text/css\" />
как часть входной строки для loadHTMLString веб-представления и добиться результата стилизации html ожидаемым образом, используя bundlepath mainbundle в качестве ввода baseUrlк этой функции.К сожалению, это не работает, когда я делаю это в моем реальном проекте.Обратите внимание, что моя проблема может быть воспроизведена с помощью простого HTML.
Вот часть, где я почесал голову: я могу использовать @ "" в качестве базового URL-адреса и отображать нестилированный HTML-код, как и ожидалось.Но если я вместо этого использую в качестве baseUrl bundlepath, UIWebView станет пустым.В дальнейшем, обратный вызов webViewDidStartLoad никогда не достигает своей точки останова (в случае @ "). Что могло бы привести к тому, что это не сработает? Из 4 обратных вызовов, единственный, который срабатывает, - mustStartLoadWithRequest, из которого я возвращаю NO.DidFailLoadWithError и webviewDidFinishLoad - это два других.
Я подозреваю, что что-то не так с mainbundle, но я понятия не имею, что.
Я получаю это сообщение в gdb иногда , хотя это может не иметь отношения: void SendDelegateMessage (NSInvocation *): делегату не удалось вернуться после ожидания 10 секунд.режим основного цикла выполнения: kCFRunLoopDefaultMode Если вы не использовали сенсорный экран в течение всего этого интервала (который может продлить это ожидание), пожалуйста, сообщите об ошибке.
Фрагменты кода: Примечание: ссылка css на самом деле не влияет наэта проблема
UIWebView* contentView = [[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
contentView.delegate = self;
NSString *htmlString = @"<html><body>Hello World</body></html>";
NSString *path = [bundle bundlePath];
NSURL *resourceBaseURL = [NSURL fileURLWithPath:path];
[contentView loadHTMLString:htmlString baseURL:resourceBaseURL];
Значения во время вызова loadHTMLString:
htmlString: "<html><body>Hello World</body></html>"
resourceBaseUrl: file://localhost/Users/U0107552/Library/Application%20Support/iPhone%20Simulator/3.1.3/Applications/D0EE8DA9-B156-47B3-BC53-9A731F813FB1/Test%20App.app/
Единственное отличие, которое я вижу между моим рабочим POC и моим приложением, состоит в том, что gdb: po htmlString возвращает "[строка выше] Текущий язык: auto; в настоящее время target-c "в POC, но только строка в моем приложении.
Извините за скучность.