1

我正在与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;
}

补充:我不能把值放在“用户代理”中。这就是我这样做的原因。

4

1 回答 1

0

我遇到了类似的问题。

问题是,我在单击后退按钮后再次调用 loadRequest。相反,如果您调用 goBack 、 goForward ,webview 会正确维护其堆栈以及 canGoback 和 cangoforward 标志。

我希望这会有所帮助。

于 2013-10-04T08:19:17.767 回答