我正在加载这样的请求[resultsWebView loadRequest:searchRequest];
然后我这样做
- (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]] ];
由于
答案 0 :(得分:0)
即使您可以在Web视图中看到成功呈现的页面,该请求也可能失败,您还需要将这些返回/转发逻辑设置为– webView:didFailLoadWithError:
。
答案 1 :(得分:0)
最后,我发现,如果loadRequest
方法的连续POST请求中的URL相同,则canGoBack
不起作用。它适用于简单的GET请求,因为URL不同。
为了解决这个问题,我使用两个URL发送了连续的POST请求,这两个URL与UIWebView
透视图不同,但从服务器角度来看实际上是相同的。我通过添加问号(?)来为连续的POST请求设置不同的URL。
https://www.example.com/do/m/?
通过这种方式,对于UIWebView
和canGoBack
方法的连续POST请求,网址会有所不同。
我仍然不知道这是UIWebView
中的错误,还是我们无法使用UIWebView
的连续POST请求来使canGoBack
方法有效。