是的,我知道UIWebView已didFinishedLoad & didStartLoad委託。iphone:我如何知道UIWebView是完全加載的?
但是,didFinishedLoad並不意味着完全完成。當UIWebView完成加載時,它可能會被調用。即,UIWebView可以在加載單個頁面的同時多次調用該代理。
那麼無論如何可以告訴我如何檢查UIWebView是否加載了完全?
由於
Ĵ
是的,我知道UIWebView已didFinishedLoad & didStartLoad委託。iphone:我如何知道UIWebView是完全加載的?
但是,didFinishedLoad並不意味着完全完成。當UIWebView完成加載時,它可能會被調用。即,UIWebView可以在加載單個頁面的同時多次調用該代理。
那麼無論如何可以告訴我如何檢查UIWebView是否加載了完全?
由於
Ĵ
http://www.codingventures.com/2008/12/using-uiwebview-to-render-svg-files/ 上的Javascript傳送回與Objective-C代碼
也許使用文檔位置散列。
,並添加web視圖HTML正文:
<body onload="document.location.hash='myapp:myobject:myfunction';">
我知道它有點哈克但工程。它可以在基於AJAX的內容中使用,因爲當你想調用你準備好的方法時它取決於你。或者它可以用作一個完整的通信方案。
你可以做的是,在狀態欄中可見的視圖上顯示一個網絡指示器。當您的頁面被加載時,指示器將繼續旋轉,直到頁面完全加載。當頁面完全加載時,指示器將停止旋轉並且不可見。
只看看這個例子:Network indicator
是的,@Nitish,我知道這個網絡指標。但我的問題是要通過代碼找出完全的UIWebView,而不是眼睛。謝謝 – 2011-05-22 21:38:39
可以查詢其可見性? – Timo 2013-08-19 15:05:18
我對DOM有很差的經驗,但經過一番搜索後,我發現document.readyState是最好的選擇。
從W3Schools的:
定義和用法 readyState屬性返回當前文檔(加載)狀態。
此屬性返回四個值之一:
初始化 - 還沒有開始加載但
裝載 - 是否加載
互動 - 裝入足夠,並且用戶可以用它
互動完成 - 滿載
所以我用這個知道什麼時候UIWebView加載文檔:
- (void)readyState:(NSString *)str
{ NSLog(@"str:%@",str);
if ([str isEqualToString:@"complete"]||[str isEqualToString:@"interactive"]) {
NSLog(@"IT HAS BEEN DONE");
[pageLoadingActivityIndicator stopAnimating];
}
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
//other code...
[self readyState:[browserWebView stringByEvaluatingJavaScriptFromString:@"document.readyState"]];
}
This Works!我將使用這個,謝謝!:) – 2013-04-15 14:58:31
if([str isEqualToString:@「complete」] || [str isEqualToString:@「interactive」])是我唯一的工作! – 2013-07-23 22:09:59
我從一個網頁獲得了「IT已完成」27次記錄。所以我不能說這是工作,因爲我期望 – 2014-04-01 08:12:36
你有沒有這樣做http://stackoverflow.com/questions/1842370/uiwebview-didfinishloading-fires-multiple-times首先? – phi 2011-05-21 13:31:13