ios – 如何从UIWebView检测身份验证质询?

前端之家收集整理的这篇文章主要介绍了ios – 如何从UIWebView检测身份验证质询?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经看到 many questions在您事先知道请求需要它们时询问(​​并回答)如何提供凭据.

当我加载请求身份验证质询的站点时(使用HTTP 401响应),我的UIWebViewDelegate只接收以下回调:webView:shouldStartLoadWithRequest:navigationType:有时webViewDidStartLoad :(如果我直接导​​航到站点,似乎会调用webViewDidStartLoad:,如果我被重定向,似乎没有被调用.

通过重写 – [NSObject respondsToSelector:],UIWebViewDelegate接收一些对uiWebView的调用:resource:canAuthenticateAgainstProtectionSpace:forDataSource:和uiWebView:resource:didReceiveAuthenticationChallenge:fromDataSource :,这可能很有用,但当然那些是私有API,可能会得到我的app拒绝了.

我用嵌入式UIWebViews测试了一些不同的主流应用程序.到目前为止,只有Chrome正确处理这些身份验证挑战.我甚至设置了自己的服务器并验证了Chrome只有一次POST. Twitter和Tweetbot失败只是永远显示加载屏幕,就像我的.

除了使用第二个推测的NSURLConnection之外,还有另一种(可能非常hacky)方法来检测这些身份验证挑战吗?如果我发出一个POST请求,那将会对所有内容进行双重POST,这很糟糕.

I’ve added a radar to request an enhancement to UIWebView for this.请复制它.

解决方法

Apple now has sample code that solves this problem.它看起来也是如何正确实现NSURLProtocol的最完整的文档.

猜你在找的iOS相关文章