如何在Xcode中使用UIWebView,以便在加載頁面時不會下載圖像(導致更快的加載頁面)?iPhone SDK:用於停止加載/下載圖像的UIWebView
回答
UIWebView
是WebKit完整的WebView
蒼白,可憐的小陰影,爲此很容易。 -webView:shouldStartLoadWithRequest:navigationType:
只會被調用導航。它不會在mac上爲每個請求調用WebPolicyDelegate
。與UIWebView
,這裏是我將如何攻擊這個問題:
執行-webView:shouldStartLoadWithRequest:navigationType:
並將其設置爲始終返回NO
。但你也會接受請求併產生一個NSURLConnection
。當NSURLConnection
完成提取數據時,您將通過它查看任何IMG標記並將其修改爲任何您想要的佔位符。然後,您將使用-loadHTMLString:baseURL:
將結果字符串加載到UIWebView
中。
當然在iPhone上解析HTML並不是一件簡單的事情,Javascript的載入器會給你帶來麻煩,所以這不是一個完美的答案,但它是我所知道的最好的。
是在UIWebView的委託,然後截取電話:navigationType的
– webView:shouldStartLoadWithRequest:navigationType:
檢查值的文檔。我相信你會得到最好的回報NO
在navigationType == UIWebViewNavigationTypeOther
。
這實際上是否導致頁面加載速度更快? 它聽起來像圖像仍在下載,但我們只是沒有餵它們到UIWebView。
還是shouldStartLoadWithRequest只是首先加載HTML文本?
擴展Rob的答案。 我注意到,當loadHTMLString:baseURL:並且總是返回NO時,該webView:shouldStartLoadWithRequest:navigationType:只是不停地被調用。 (我懷疑loadHTMLString調用另一個shouldStartLoadWithRequest)。
所以我不得不做回之間是交替YES/NO ,我用NSScanner解析HTML和變化SRC = 「HTTP:// ......」 爲src = 「」
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if (pageHasNoImages==YES)
{
pageHasNoImages=FALSE;
return YES;
}
NSString* newHtml;
NSString* oldHtml;
NSData *urlData;
NSURLResponse *response;
NSError *error;
urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
oldHtml=[[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];
newHtml=[self.detail scannerReplaceImg:oldHtml]; // my own function to parse HTML
newHtml=[self.detail scannerReplaceAds:newHtml]; // my own function to parse HTML
if (newHtml==nil)
{
NSLog(@"newHtml is nil");
newHtml=oldHtml;
}
[oldHtml release];
pageHasNoImages=TRUE;
[web loadHTMLString:newHtml baseURL:request.URL];
return NO;
}
- 1. 從iPhone SDK的UIWebView中下載文件
- 2. Amazon S3的iPhone SDK的下載圖像
- 3. 停止UIWebView從使用其'id'加載特定圖像
- 4. 在Iphone sdk中重新加載UIWebview
- 5. 加載圖像 - UIWebView的
- 6. 如何停止在UIWebView中加載圖像?
- 7. iphone SDK下載
- 8. IE9在x圖像加載後停止加載圖像
- 9. 用於iPhone的jQuery預加載圖像
- 10. 如何立即停止UIWebView加載
- 11. 如何停止下載單個圖像
- 12. 停止UIWebView每次加載設置的URL時,它被加載
- 13. 防止用UIWebView重新加載視圖
- 14. 加載圖像停止問題
- 15. IE8停止加載GIF圖像
- 16. 停止延遲加載圖像?
- 17. IE永不停止加載圖像
- 18. 加載UIWebview中的圖像/鏈接
- 19. 如何在加載時停止圖像的加載
- 20. 加載嵌入式Google地圖後UIWebView停止工作
- 21. UIWebView以低質量加載圖像
- 22. UIWebView使用回調加載圖像
- 23. iphone uiwebview下載整個頁面的CSS和圖像
- 24. 預加載大量圖像,停止預加載屏幕
- 25. iPhone SDK:告訴UIWebView不要加載圖像和CSS只是純HTML和JS?
- 26. 圖片無法在UIWebView中加載iphone
- 27. 在iPhone中加載圖片和CSS UIWebView
- 28. 使用iPhone SDK創建「加載...」視圖
- 29. 下載以前的iphone sdk
- 30. 使用cordova.file加載下載的圖像
webView:shouldStartLoadWithRequest:navigationType:在下載發生後被調用。 – Harry 2009-05-03 09:26:27