在我的應用程序中,我需要一種方法來告訴我的webview何時完成加載。如果內容是html,則很容易做到這一點。但是,我的內容源是JavaScript與iFrame裏面,它會導致UIWebView finishedLoad方法多次調用。無論如何,我可以檢查iframe是否完成加載?如何確定iFrame在UIWebView中完成加載
7
A
回答
7
我發現的唯一一個萬無一失的方法是聽三種說法即將開始加載的方法,並且它完成加載(加上等效的「失敗」),並手動維護每個方法的計數。
即是這樣的:
int outstandingRequests;
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
outstandingRequests++;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
outstandingRequests--;
if(outstandingRequests < 1)
viewLoadingPleaseWait.hidden = TRUE;
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
outstandingRequests--;
}
我也常常不得不overrid的didFail方法 - 蘋果錯誤地使用此報告,例如YouTube播放器已經接管了YouTube視頻的處理。這不是一個失敗,而是一個「頁面被不同的應用程序加載」。
例如
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
outstandingRequests--;
if([error code] == NSURLErrorCancelled)
{
NSLog(@"[%@] ...webView CANCELLED loading", [self class]);
}
else if([[error domain] isEqualToString:@"WebKitErrorDomain"]
&& [error code] == 204)
{
// no worries ... YouTube, iCal, or etc took over the page load
}
}
1
(如果它是相同的域名),你可以從iframe中調用一個函數(在父類中)。
top.iFrameLoaded();
0
判斷一個web視圖加載,你可以使用 webView.isLoading
檢查網頁視圖的所有的幀都加載完畢。不需要統計iframe的數量。簡單地檢查是否isLoading
是真實的內部webViewDidFinishLoad:
相關問題
- 1. uiwebview的nsnotification確實完成加載
- 2. 如何檢測UIWebView何時在Swift中完全加載完成
- 3. 如何知道UIWebView已完成加載
- 4. UIWebView完成加載事件
- 5. UIWebView未完成加載?
- 6. 如何知道iframe已完成加載?
- 7. UIWebView沒有完全加載完成
- 8. UIWebView何時完成圖像加載?
- 9. 我如何等待網頁每次在uiwebview中完成加載?
- 10. UIWebView中的iFrame在容器內加載iframe的內容UIWebView
- 11. 如何在iframe在jQuery中完成加載時觸發事件?
- 12. 從iframe內部,如何確定父頁面是否已完成加載?
- 13. Feed.ly如何確定iFrame加載進度?
- 14. 如何在UIWebView完成加載時強制重新佈局UITableViewCell?
- 15. uiwebview完成加載後的pushviewcontroller
- 16. 加載一個iframe一次iframe已完成加載
- 17. 如何在加載UIwebview時集成MBProgressHUD?
- 18. 確定何時jQuery加載()已完成加載多個圖像
- 19. 如何在iframe完成加載時調用javascript函數?
- 20. 如何確定UITableView何時完成加載所有行?
- 21. 如何確定Android WebView何時完成加載?
- 22. 如何確定圖像何時完成加載?
- 23. 如何確定畫布何時完成加載
- 24. 如何確定UserControl已完全加載?
- 25. IFRAME加載完成時的Javascript回調?
- 26. iframe的Javascript事件完成加載
- 27. 檢查iframe是否已完成加載?
- 28. 如何檢測何時UIWebView真的完成加載時涉及重定向?
- 29. 如何確定何時完成頁面加載以測量加載時間
- 30. 確定IFrame的內容何時加載
+1,非常有幫助的感謝!剛剛起來,我最終在' - (void)webViewDidStartLoad:(UIWebView *)aWebView'方法中增加了outstandingRequests計數器,因爲'shouldStartLoadWithRequest'不太可靠。 – Stunner 2012-04-30 23:01:13