使用UIWebView的自定义URL方案

时间:2014-02-05 17:09:44

标签: ios http url uiwebview url-scheme

我有一个黑盒子容器。我喜欢黑盒子,它们很好地混淆了东西。

这个黑盒子是一个加密的zip(有点像)并且里面有一些html文件(这是简短的,解释不太痛苦,版本)。

这些文件需要在UIWebView中显示。现在,简单的方法,解密,解压缩到文件系统,从文件系统加载文件。这很好,除了黑盒包含秘密的东西,并且不能只放在文件系统上,甚至不是一秒钟,所以,我做了一个实际流式传输盒子内容的C库(直接开箱即用)

现在,我有这种流媒体功能,并且必须以某种方式使其与UIWebView一起使用。我想到的第一件事就是使用一个迷你本地HTTP服务器,UIWebView可以在其中发送请求。然后我会自己管理请求,并使用我已完成的流式lib返回UIWebView所需的内容。我认为这样可行,但我认为迷你HTTP服务器可能会有点过分。

所以,我想知道,是否存在另一种干扰UIWebView和文件系统的方法?也许使用自定义架构?喜欢myschema://?每当UIWebView向myschema发出请求时://myfile.html我会以某种方式干扰并返回它需要的数据?

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

编辑:我发现了这个:iPhone SDK: Loading resources from custom URL scheme。听起来不错,浏览器将如何知道请求的大小,类型(xml / binary / xhtml)以及HTTP在其标题中放置的所有信息?

1 个答案:

答案 0 :(得分:2)

创建一个自定义NSURLProtocol子类并注册它以便它将处理HTTP请求。这将允许您处理来自UIWebView但您认为合适的请求,包括从库中提供数据。您可以通过查看RNCachingURLProtocol来检查执行磁盘缓存请求的实现,以允许脱机浏览。我个人使用我编写的自定义NSURLProtocol子类来处理将一些javascript代码注入到UIWebView中加载的页面中,并且它运行良好。