当我加载请求身份验证质询的站点时(使用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.请复制它.