UIWebView ShouldStartLoadWithRequest无法goBack

时间:2013-07-25 07:27:10

标签: ios uiwebview history

我正在使用UIWebView。我将此方法添加到UIViewController

它似乎运作良好,但在用链接移动两步后,

它只是使用[myWebView goBack]

调用最后一页和前一页

[myWebView canGoForward]一直都是假的。

我能得到任何帮助吗?

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSMutableURLRequest *requestObj;

    if (navigationType == UIWebViewNavigationTypeBackForward ||
        navigationType == UIWebViewNavigationTypeLinkClicked ||
        navigationType == UIWebViewNavigationTypeReload) {

        NSURL *URL = [request URL];
        NSLog(@"url: %@", URL);
        if ([[URL scheme] isEqualToString:@"http"]) {
            requestObj = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[URL absoluteString]]];
            [requestObj addValue:@"myKey" forHTTPHeaderField:@"myHeader"];
            [_web_view loadRequest:requestObj];
        }
        return NO;
    }
    return YES;
}

添加:我无法将值放在'User-Agent'中。这就是我这样做的原因。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题。

问题是,我在点击后退按钮后再次调用loadRequest。 相反,如果你调用goBack,goForward,webview正确维护它的堆栈和canGoback和cangoforward标志。

我希望这会有所帮助。