У меня есть контейнер черного ящика. Мне нравятся черные ящики, они так хорошо запутывают.Использование специальной схемы URL с UIWebView
Этот черный ящик является зашифрованным почтовым индексом (вроде) и имеет внутри некоторые html-файлы (это короткая, не столь болезненная для объяснения, версия).
Эти файлы должны отображаться в UIWebView. Теперь, простой способ сделать это, дешифровать, распаковать в файловую систему, загрузить файл из файловой системы. Это хорошо, за исключением того, что черный ящик содержит секретные вещи и не может просто лежать на файловой системе, даже не секунду, поэтому я создал библиотеку C, которая фактически передает содержимое окна (прямо из коробки) ,
Теперь у меня есть эта возможность потоковой передачи данных и вам нужно как-то заставить ее работать с UIWebView. Первое, что приходит мне на ум, - это использовать мини-локальный HTTP-сервер, на котором UIWebView может отправлять свои запросы. Затем я сам обработал запросы и вернул содержимое, которое требуется UIWebView, используя потоковый lib, который я сделал. Это будет работать, я полагаю, хорошо, но я думаю, что мини-HTTP-сервер каким-то образом, может быть, немного переборщил.
Итак, мне было интересно, есть ли другой способ вмешаться между UIWebView и файловой системой? Может быть, используя пользовательскую схему? Как myschema: //? И каждый раз, когда UIWebView делает запрос к myschema: //myfile.html, я каким-то образом вмешивался и возвращал нужные ему данные?
Является ли такая идея жизнеспособной? С чего я должен начать? Может быть, NSURLRequest?
EDIT: Я нашел это: iPhone SDK: Loading resources from custom URL scheme. Звучит неплохо, однако, как браузер узнает размер запроса, тип (xml/binary/xhtml) и всю информацию HTTP помещает в свой заголовок?
Единственное, что я не могу понять, - как я могу отправить обратно данные UIWebView относительно размера файла, типа файла (что обычно входит в заголовок при использовании HTTP). – Meda
Кроме этого, ваше предложение кажется определенно звук! – Meda
Вы создадите 'NSURLResponse' с этой информацией и отправите его клиенту протокола (' NSURLProtocolClient'), используя '-URLProtocol: didReceiveResponse: cacheStoragePolicy:'. –