2011-10-10 37 views
0

我想弄清楚在xcode中使用后退按钮时重新加载特定页面的最佳方式。以下是我现在所拥有的每次访问时都重新载入特定页面?

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

} 

所有我想有发生,是不是叩击背部按钮时刷新每一页,我只希望我的本地HTML被刷新,所以像

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

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

+0

是否在此webview中查看的所有页面都将位于设备上的相同域中或本地? –

+0

@MichaelDautermann主页将是我想重新加载的localHTML,其余的将位于不同的域中。 – davis

回答

0

你检出了委托方法[UIWebViewDelegate webView:shouldStartLoadWithRequest:navigationType:]?

好像你可以返回NO(即不加载),如果请求中的URL与你想允许的URL不匹配。

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; 
} 

如果你也有不同的域时,您也许可以使用和围绕着我在那里写的代码片段来允许来自该域的初始提取。

+0

我最终使用了这种变体,uiwebview委托方法非常有用 – davis

相关问题