2011-10-10 36 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

相關問題