Ich habe manyquestions gesehen, die fragen (und antworten), wie Sie Anmeldeinformationen angeben, wenn Sie im Voraus wissen, dass die Anforderung sie erfordert.Wie kann ich eine Authentifizierungsanforderung von einem UIWebView erkennen?
Wenn ich eine Website laden, die eine Authentifizierungsanforderung anfordert, (reagiert mit HTTP 401), meine UIWebViewDelegate
nur folgenden Rückrufe erhält: webView:shouldStartLoadWithRequest:navigationType:
und manchmal webViewDidStartLoad:
(webViewDidStartLoad:
wenn ich direkt auf die Website navigieren genannt zu werden scheint, und es scheint nicht angerufen zu werden, wenn ich dorthin umgeleitet werde).
Durch -[NSObject respondsToSelector:]
zwingende erhält der UIWebViewDelegate
einige Anrufe zu uiWebView:resource:canAuthenticateAgainstProtectionSpace:forDataSource:
und uiWebView:resource:didReceiveAuthenticationChallenge:fromDataSource:
, die nützlich sein könnten, aber natürlich sind solche private API und wird wahrscheinlich meine App abgelehnt bekommen.
Ich habe ein paar verschiedene Mainstream-Apps mit eingebetteten UIWebView
s getestet. Bisher werden diese Authentifizierungsanforderungen nur von Chrome ordnungsgemäß verarbeitet. Ich habe sogar meinen eigenen Server eingerichtet und das Chrome nur POST
s einmal validiert. Twitter und Tweetbot scheitern einfach nur den Ladebildschirm für immer zu zeigen, genau wie meiner.
Gibt es einen anderen (wahrscheinlich sehr hacky) Weg, diese Authentifizierungsherausforderungen zu erkennen, außer mit einem zweiten spekulativen NSURLConnection
? Wenn ich eine POST
Anfrage machen, wird das alles POST
alles, was schlecht ist.
I've added a radar to request an enhancement to UIWebView for this. Bitte duplizieren Sie es.
Vielen Dank für die Radar-Anfrage - ich habe es getäuscht! –