Разрешить UIWebView загружать http://localhost: URI порта/пути без подключения к Интернету

Я работаю над iPad-приложением, в котором встроенный HTTP-сервер прослушивает высокий порт, и я загружаю страницы с этого HTTP-сервера с помощью UIWebView.

Для функциональности приложения важно, чтобы это работало, когда нет сетевого подключения.

UIWebView загружает URL-адреса формы http://localhost:port/path

Когда я отключу Wi-Fi на своем iPad и запустим приложение, делегат UIWebView получит сообщение webView:didFailLoadWithError: со следующим объектом NSError:

Error Domain=NSURLErrorDomain Code=-1009 UserInfo=0x1b4a50 "no Internet connection"

Очевидно, что SDK умеет и обнаруживает, что у него нет подключения к Интернету, но он должен иметь доступ к 127.0.0.1/localhost/::1 без подключения к Интернету. Я сообщу об ошибке Apple, но прошу здесь посоветовать о возможных обходных решениях для этой ошибки SDK. Тем временем.

Обратите внимание: изменение архитектуры приложения не подходит для этого вопроса.

Ответ 1

Возможно, вам захочется исследовать определение собственной схемы и ее реализацию с помощью NSURLProtocol вместо запуска HTTP-сервера. Это позволит вам обрабатывать загрузку URL-адресов без необходимости реализации протокола HTTP и обойти эту проблему с помощью SDK, где протокол HTTP не работает раньше, если у вас нет сетевого подключения.