2012-02-27 15 views
2

を使用しているとき、私はこの[resultsWebView loadRequest:searchRequest];のような要求をロードしています突然動作を停止しその後、私はこののUIWebView canGoBackはPOSTリクエスト

- (void) webViewDidFinishLoad:(UIWebView *)webView { 
    if ([resultsWebView canGoBack]) { 
     [goBackButton setEnabled:YES]; 
    } 
    else { 
     [goBackButton setEnabled:NO]; 
    } 
    if ([resultsWebView canGoForward]) { 
     [goForwardButton setEnabled:YES]; 
    } 
    else { 
     [goForwardButton setEnabled:NO]; 
    } 
} 

canGoBackは常にNOを返してください。 以前は動作していましたが、突然動作が停止しました(私はコードを変更していません)。私はこれがどのように可能なのか分かりませんか?これを解決するためにどんな成功も得られません。 stackoverflow UIWebView canGoBack and canGoForward always return NOに関する質問があります。しかし、質問者がloadDataを使用していて、彼がloadRequestを使用して問題を解決したのとは異なります。しかし、私はすでにloadRequestを使用しています。また、以前はうまくいっていましたが、突然動いていませんでした(私はコードを変更していません)。助けて。問題の

原因:

params = [NSString stringWithFormat:@"query=%@", searchTextField.text]; 
NSMutableURLRequest *searchRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://www.example.com/do/m/]]; 
[searchRequest setHTTPMethod:@"POST"]; 
[searchRequest setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]]; 

私は以下のような単純な要求を使用している場合は、それが正常に動作します。

NSURLRequest *searchRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://www.example.com/do/m/?%@", params]] ]; 

あなたが成功したWebビューでレンダリングされたページを見ることができますが、要求はしても失敗することができるおかげで

+1

何が問題なのですか?常に「いいえ」を返していますか? – Mundi

+0

はい、いつも戻っています。ありがとうございます。編集された質問も同様です。 – san

+0

私は原因を見つけましたが、なぜこれが起こっているのかわかりません。原因と私の質問を更新しました。 – san

答えて

0

最後に、loadRequestメソッドの連続したPOST要求でURLが同じ場合、canGoBackは機能しません。 URLが異なるため、単純なGETリクエストで動作していました。 この問題を解決するために、私はUIWebViewとは異なる2つのURLを持つ連続したPOSTリクエストを送信しましたが、実際にはサーバーの観点から同じでした。疑問符(?)を追加して、連続したPOST要求に対して別のURLを代わりに設定しています。

https://www.example.com/do/m/

https://www.example.com/do/m/

このように、UIWebViewcanGoBackメソッドの連続したPOST要求ではURLが異なります。

UIWebViewのバグか、UIWebViewの連続したPOSTリクエストを使用してcanGoBackメソッドを動作させることはできません。

0

、あなたも– webView:didFailLoadWithError:にそれらの前進/戻って論理を設定する必要があります。

+0

私はこれを行い、要求が失敗したかどうかをチェックするためにブレークポイントを使ってチェックしました。リクエストは失敗していません。とにかく、ありがとう。 – san