访问时重新加载特定页面?

时间:2011-10-10 20:55:12

标签: iphone xcode uiwebview refresh back

我正在尝试找出在xcode中使用后退按钮时重新加载特定页面的最佳方法。这就是我现在所拥有的

-(IBAction)backButton {
 [webView goBack];
 [webView reload];

 }

我想要发生的一切,不是在点击后退按钮时刷新每一页,我只希望我的本地html被刷新,所以像

 -(IBAction)backButton {
 [webView goBack];
 if ("url matches localHTML"){
 [webView reload];
 }
 }

我想要刷新的localHTML只是主页。我知道解决方案不会像上面那么简单,但我只是想告诉你我在寻找什么。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您是否检查过委托方法[UIWebViewDelegate webView:shouldStartLoadWithRequest:navigationType:]?

如果请求中的网址与您要允许的网址不匹配,您似乎可以返回NO(即不加载)。

http://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UIWebViewDelegate/webView:shouldStartLoadWithRequest:navigationType

如果您只想刷新本地HTML,请执行以下操作:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL * urlWeAreConsidering = [request URL];
    if([urlWeAreConsidering isFileURL] == NO)
    { 
        // sends off a separate request
        [webView loadRequest: [NSURL URLWithString: @"file://LocalURL"]];
        return NO;
    }
    return YES;
}

如果您还在使用其他域名,那么您可以使用我在其中编写的代码段来处理该域名,以允许从该域名进行初始提取。