2013-05-06 2 views
5

Я использую UIWebView для отображения текстового содержимого в своем приложении (я сохраняю содержимое в локальном HTML файлах, которые я упаковываю вместе с приложением). Все вместе, у меня есть три веб-представления, содержимое которых меняю динамически на основе отзывов пользователей.Загрузка и общая производительность UIWebView

Хотя некоторые могут утверждать, что это не самый приемлемый способ, я считаю, что UIWebView очень удобно отображать форматированный текст и, если необходимо, изменять этот текст с помощью HTML. В то время как это работает в 99% случаев, иногда я испытываю проблемы, которые обычно относятся к одной из этих категорий:

  1. Иногда содержимое веб-контента загружается медленно и заканчивается на секунду или около того.
  2. Содержимое загружается, но не отображается. Тем не менее, пока я касаюсь вида (попробуйте прокрутить или что-то еще), содержимое появляется.
  3. Несколько раз я получал предупреждения о памяти (обычно не долго после начальной загрузки приложения), которые никоим образом не влияли на производительность мое приложение. Он зарегистрировал предупреждение о памяти, но приложение работало, как будто ничего не произошло.

Это метод я использую для загрузки контента на моем веб-просмотров:

- (void)loadSimpleDocument:(NSString*)documentName inView:(UIWebView*)webView 
{ 
NSString *path = [[NSBundle mainBundle] pathForResource:documentName ofType:@"html"]; 
NSURL *url = [NSURL fileURLWithPath:path]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:request]; 
} 

Помимо этого, метод shouldStartLoadWithRequest делегат также реализован, всегда возвращает YES.

Мой вопрос: Есть ли способ повысить надежность/производительность моих веб-просмотров (в частности, загрузка)? Есть ли что-то, что я упустил, ошибался или не знаю?

Дополнительная информация: Я нахожусь на iOS6 SDK, пользуюсь ARC и делаю все программно (не используйте IB или раскадровку).

ответ

2

У вас есть 2 варианта, чтобы проверить, что происходит:

  • Реализовать webViewDidStartLoad & webViewDidFinishLoad методы делегата, чтобы проверить, почему содержание не отображается (может быть содержание еще не загружен).

  • прочитайте содержимое html в NSString, затем используйте loadHTMLString:baseURL вместо loadRequest и проверьте, загружается ли он быстрее.

Надеюсь, это могло бы помочь.

+0

Спасибо, я изучу их! – user1799795

Смежные вопросы