2011-11-08 82 views
2

我發現了一個bug在iOS的5iOS 5的漏洞:一個UIWebView和GoBack的和goForward

當您使用一個UIWebView並訪問一些網站,您將創建歷史鏈接,看起來像其他任何瀏覽器。

如果你喜歡用navegation欄,可以使用的功能goBackgoForward

在的iOS 4.3及以下,當你調用這個函數的程序中調用委託函數

webView:shouldStartLoadWithRequest:navigationType: 

但在這可能會發生或不。如果該站點在緩存中,則不調用該函數。我看到這種情況只發生在1級(1次點擊goBack或1次goFoward),第二次點擊它傳遞函數。

他們爲什麼改變它?即使它在緩存中,程序也必須要求我。現在如何解決這個問題:我正在嘗試使用瀏覽器歷史記錄堆棧,並檢查網址。但我有問題;(

有沒有其他辦法

  • 我看不到瀏覽器歷史記錄我要創造我的流量清單
  • 我不能清理緩存??迫使它傳遞的功能?

任何sugest?

+0

這不是在iOS中雖然這不加載錯誤,所以它不會給你那個回調。如果您想構建一堆用戶歷史記錄,那麼當他們轉到「前進」時,您需要將Web視圖外部的請求保存起來。 – Jessedc

+0

這對我來說是一個bug,因爲我必須檢查一些頁面而不是進行一些操作。但是因爲它沒有給我一個回調,我該怎麼做? – Rodrigo

+0

如果你真的覺得這是一個bug報告bugr​​eport.apple.com –

回答

3

這是不是一個錯誤,如果在設備上有足夠的可用RAM,然後它會保留一些在內存中的頁面,因此它們當你回去時沒有被「加載」。

您應該將自己的控制器上創建自己的goBack:goForward:行動,並鏈接GoBack的/ goForward按鈕對他們說:

- (IBAction)goBack:(id)sender 
{ 
    [self doStuff]; 

    [self.webView goBack:sender]; 
} 
+0

偉大的答案,給我一個好主意。 – Rodrigo