2016-04-08 7 views
0

Ich habe eine Coredova-basierte iOS-Anwendung und versuchen, eine URL auf eine UIWebView zu laden. Zum Beispiel:Problem mit dem Laden einer URL mit Beitrag in UIWebview

http://www.something.com

Diese URL Lasten ohne Problem, aber das Problem ist, wenn ich auf die Taste auf der geladenen Seite einreichen tippen, nachdem eine E-Mail in das Textfeld eingeben. Dies ist eine POST-Anfrage, aber die Anfrage erreicht niemals den Server.

Beim Senden, kommt Rückruf zurück zu Delegate-Methode mit Navigationstyp wie UIWebViewNavigationTypeFormSubmitted und die request HTTPBody enthält die vom Benutzer eingegebene E-Mail. Diese Delegiertenmethode gibt nur YES zurück.

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

Danach erhalte ich unten Erfolg Rückruf aber der Bildschirm bleibt nach wie vor in dem alten Bildschirm selbst.

- (void)webViewDidFinishLoad:(UIWebView *)webView 

Bitte helfen Sie mir den Grund für dieses Problem zu finden.

Beachten Sie auch, dass die gleiche URL funktioniert, wenn ich in einem beliebigen Browser laden.

+0

kehren Sie JA aus should Delegatmethode? – heximal

+0

Ja. Ich gebe JA zurück. – Subhash

+0

ist es klassische http-Form oder gibt es vielleicht einige Javascript-Logik auf submit? – heximal

Antwort

0

Seit iOS 9 sind alle Anfragen mit HTTP verboten und HTTPS sollte verwendet werden.

Es gibt jedoch eine Abhilfe dafür, wenn Sie wirklich HTTP verwenden müssen.

Fügen Sie diese auf Ihre .plist:

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 

Image example

+0

Der Autor sagte, dass erste Seite lädt gut ist, so ist es nicht das Problem mit der Transportsicherheit – heximal