如何过滤掉 UIWebView 中的重复请求

Posted

技术标签:

【中文标题】如何过滤掉 UIWebView 中的重复请求【英文标题】:How to filter out duplicate requests in UIWebView 【发布时间】:2011-10-02 16:29:48 【问题描述】:

我正在编写一个通过 OAuth 与 Foursquare 集成的 iPhone 应用程序。我能够登录、获取访问令牌并使用 API 端点。我使用UIWebView 登录。

问题在于,每次点击 Web 视图(登录、允许等),都会发出两个相同的请求。因此,当我在获得访问令牌后关闭 Web 视图时,Web 视图的 didFailLoadWithError: 消息会触发,可能是针对第二个(重复)请求。这会导致崩溃和不良行为。

有什么办法可以防止重复请求的发生,或者我可以“过滤”掉它们吗?

【问题讨论】:

【参考方案1】:

过滤掉的fa解决方案:您可以在关闭之前将UIWebViewdelegate属性设置为nil

self.myWebView.delegate = nil;
self.myWebView = nil; //retain-property

编辑:但这不会真正阻止UIWebView 通过网络发送第二个请求。这只会以不被通知两次而告终。您必须找出发送第二个请求的原因。

【讨论】:

设置代理工作,谢谢。我不确定是什么导致了重复请求。我的 Facebook OAuth 代码几乎相同,我不需要在那里将委托设置为 nil。仔细检查后,Facebook 序列中也存在重复请求。与 Foursquare 的不同之处在于,最终请求永远不会重复,而 Foursquare 则始终是重复的。

以上是关于如何过滤掉 UIWebView 中的重复请求的主要内容,如果未能解决你的问题,请参考以下文章

使用 UIWebView+AFNetworking 时链接如下

php数组的重复值如何过滤掉

UIWebView 中的链接被视为 UIWebViewNavigationTypeOther

如何使用 UIWebView 获取滚动文本?

UiWebView 全屏显示

过滤掉多行中的mysql重复记录