Я использую UIWebView
для отображения некоторого контента. В этом контенте пользователь может перемещаться по множеству сайтов, которые загружаются с использованием AJAX. Один шаг на этом сайте требует довольно много времени. Поскольку я не нашел ничего о timeoue для UIWebView
, я попытался установить его на начальный NSURLRequest
, который он загружает.
К сожалению, это, похоже, ничего не делает. Я не совсем уверен, должен ли я сам устанавливать тайм-аут? Я что-то пропустил? UIWebView
отменяет мой тайм-аут? Я немного запутался в этом, поэтому любая помощь будет оценена. :)
Лучший
-f
Обновление
Я создал тестовый проект, чтобы проверить свою «теорию» о том, как UIWebView
работает с таймаутами. Вот настройки:
- PHP-файл с именем sleep.php, в котором есть параметр, с помощью которого я могу настроить время до тех пор, пока он не отправит результат
маленький проект Xcode с одним представлением, который представляет собой веб-представление, которое загружает sleep.php следующим образом:
NSURLRequest * request = [NSURLRequest requestWithURL: url cachePolicy: NSURLCacheStorageAllowed timeoutInterval: 10];
[webView loadRequest: запрос];
Итак, играя с параметром секунд, я мог видеть, что UIWebView
работает как надо. Я получаю webViewDidFinishLoad:
или webView:didFailLoadWithError:
в зависимости от времени ожидания.
После проверки того, что timeoutInterval
работает так, как объявлено, я ввел proxy.php (который имеет две ссылки на sleep.php, настроенный на 5 и 15 секунд), чтобы проверить, действительна ли моя конфигурация запроса для новых запросов. Я изменил начальный NSURLRequest
, чтобы использовать proxy.php, но оставил 10-секундную конфигурацию для тайм-аута.
Когда я запускаю приложение, теперь отображаются две ссылки. Когда я нажимаю первый, он загружается, как и ожидалось, через 5 секунд. К сожалению, вторая ссылка также загружается через 15 секунд.
Итак, моей первой попыткой перенастроить NSURLRequest
было бы изменить его на webView:shouldStartLoadWithRequest:navigationType:
. К сожалению, снова веб-сервис работает с AJAX, поэтому метод делегата не вызывается.
Есть еще предложения? Есть ли способ глобально настроить значение времени ожидания для всего UIWebView
?
Лучший
-f