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

发布于 2024-12-08 03:28:03 字数 293 浏览 1 评论 0原文

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

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

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

I am writing an iPhone app that integrates with Foursquare via OAuth. I am able to log in, obtain an access token, and use the API endpoints. I do the log in with a UIWebView.

The problem is that for every tap on the web view (Login, Allow, etc.), two identical requests are made. So when I dismiss the web view after obtaining an access token, the web view's didFailLoadWithError: message fires, presumably for the second (duplicate) request. This is causing crashes and unwanted behavior.

Is there any way I can prevent the duplicate requests from happening or can I 'filter' them out?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟花易冷人易散 2024-12-15 03:28:03

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

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

编辑:但这并不会真正阻止UIWebView通过线路发送第二个请求。这样只会导致两次都没有得到通知。您必须找出发送第二个请求的原因。

fa solution for filtering out: You can set the delegate-property of UIWebView to nil before dismissing it.

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

edit: but this will not really prevent the UIWebView to send the second request over the wire. This will only end up with not being notified twice. You have to discover why the second request is sent.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文