某些AppStore浏览器应用程序如何实现“在新选项卡中打开”菜单,加载进度等功能?

时间:2010-07-10 20:14:35

标签: iphone objective-c uikit uiwebview webkit

商店里有网页浏览器应用程序可以执行许多操作,就像他们使用私有API调用一样。事情如:

  • 覆盖链接的上下文菜单,为“在新标签页中打开”(How to add an option to the popup actionsheet of iphone safari?
  • 添加菜单项
  • 报告加载进度。
  • 捕获新的“弹出窗口”窗口(其中链接目标不是'_self')并在新选项卡中打开(需要子类化UIWebView并重写私有方法。)

有没有人知道这些是以一些我不知道的聪明方式完成的,还是他们只是设法在过去的应用评论中潜入这些?这会让我感到惊讶,因为他们拥有整个自动api-use扫描仪的东西,除非它只扫描更重要的api调用......

没有任何理由我除了学者之外还要问这个问题。刚刚玩过UIWebView,并注意到与一些人设法使用它相比,功能非常有限......

有什么想法?会喜欢一些见解!

干杯

1 个答案:

答案 0 :(得分:0)

第一个可以通过Javascript实现 - 这只是我的猜测;您使用JS与Obj-C代码进行通信以显示自定义UIActionSheet。

如果你看起来足够深,那么第二种可能是可能的:

UIWebViewNSURLRequest个对象。 NSURLRequestvalueForHTTPHeaderField:,可让您获取请求的总内容大小。 NSURLRequest也有HTTPBodyStream,这是NSInputStream,它应该为您提供读取的总字节数。

最后,为了捕捉“弹出窗口”窗口,我的猜测是他们正在使用UIWebView的委托回调来实现这一点,用一些聪明的字符串来确定它是否是弹出窗口(评估Javascript等)