2009-07-02 65 views
2

我想假装是CocoaTouch的新手,但是由于我已经使用了一年多,所以我只是直接跳出来声明stoopidity。是否有一种简单/优雅的方式来拦截CocoaTouch中的HTTP调用并通过自定义类路由它们。在Java中,我可以实现自定义协议处理程序,并将URL协议从“http:”更改为“myproto:”之类的内容。 ObjC中有类似的东西吗?CocoaTouch相当于Java自定义协议处理程序

回答

4

你能解释一下你的意思吗?你是说你想要:

  1. 监视系统进行的所有HTTP连接?
  2. 监控您应用程序内的所有HTTP通信?
  3. 为您完全控制的数据加载实现自定义URL方案?

如果3号,你想看看NSURLProtocol

+0

是的,NSURLProtocol是我一直在寻找的东西。类似于Java协议处理程序,它允许我实现自定义URL方案/协议来加载我控制的数据。 – Cliff 2009-07-21 12:39:05

0

你可以有一个应用程序注册来处理URL方案。这是设置在该应用程序的条目的Info.plist:

CFBundleURLTypes(URL类型):URL类型的应用程序可以 手柄的数组 。每个URL类型是一个字典 ,它定义了应用程序可以处理的方案(例如http 或mailto)。该属性允许 应用程序注册自定义URL 方案。

这是用于应用程序之间的通信。如果你想拦截来自应用程序内部的请求并重写URL,我相当确信在UIWebView委托方法中做相对容易。