使用具有UIWebView的自定义URL方案(Using a custom URL scheme w

2019-10-19 07:42发布

我有一个黑盒子容器。 我爱黑盒子,他们混淆的东西这么好。

这个黑盒子是一个加密的ZIP(那种),有内部的一些HTML文件(这是短,不那么痛苦讲解,版本)。

这些文件需要显示在UIWebView的。 现在,最简单的方式做到这一点,解密,解压缩到文件系统从文件系统加载文件。 这是很好的,但,黑匣子中包含的秘密的东西,而不能只是躺在围绕在文件系统中,甚至没有一秒钟,所以,我做了,实际上流框的内容的C库(直接开箱) 。

现在,我有此流能力,必须以某种方式使其与UIWebView的工作。 附带在我脑海里的第一件事就是使用其中的UIWebView可以派出请求一个小型的本地HTTP服务器。 然后我会管理自己的请求,并返回一个UIWebView需要使用流的lib我所做的内容。 这将工作,我想好了,但我觉得一个小型的HTTP服务器会以某种方式,也许,是一个矫枉过正的一点点。

所以,我想知道,是有另一种方式的UIWebView和文件系统之间的干扰? 也许使用自定义模式? 像MYSCHEMA://? 而每一次的UIWebView使得以MYSCHEMA请求://myfile.html我会以某种方式干预,并返回其所需的数据?

这样的想法是否可行? 我应该在哪里看,从开始的? 也许的NSURLRequest?

编辑:我发现这个: iPhone SDK:从自定义URL方案加载的资源 。 这听起来不错,但是,如何将浏览器知道请求的大小,类型(XML /二进制/ XHTML)和所有的信息HTTP放入它的头?

Answer 1:

创建自定义NSURLProtocol子类,注册它,所以它会处理HTTP请求。 这将允许你来处理来自请求UIWebView但是您认为合适的,包括从资料库中提供的数据。 您可以检查一个执行请求的磁盘缓存通过查看允许脱机浏览的实现RNCachingURLProtocol 。 我个人使用自定义NSURLProtocol子类,我写信给处理注入一些JavaScript代码,这样在加载页面UIWebView ,它工作得很好。



文章来源: Using a custom URL scheme with UIWebView