如何在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. Amazon S3的iPhone SDK的下載圖像
- 2. 在Iphone sdk中重新加載UIWebview
- 3. 如何停止在UIWebView中加載圖像?
- 4. iphone SDK下載
- 5. 用於iPhone的jQuery預加載圖像
- 6. 如何立即停止UIWebView加載
- 7. 如何停止下載單個圖像
- 8. IE永不停止加載圖像
- 9. 停止延遲加載圖像?
- 10. IE8停止加載GIF圖像
- 11. 加載嵌入式Google地圖後UIWebView停止工作
- 12. UIWebView以低質量加載圖像
- 13. 預加載大量圖像,停止預加載屏幕
- 14. iphone uiwebview下載整個頁面的CSS和圖像
- 15. 使用cordova.file加載下載的圖像
- 16. iPhone SDK:告訴UIWebView不要加載圖像和CSS只是純HTML和JS?
- 17. 使用iPhone SDK創建「加載...」視圖
- 18. 下載以前的iphone sdk
- 19. 未加載UIWebView中的圖像
- 20. 加載圖像的UIWebView在Xcode
- 21. Android停止下載
- 22. iPhone多重圖像加載
- 23. 下載時停止NSThread
- 24. 要下載哪個iPhone SDK?
- 25. 下載請求 - iPhone SDK
- 26. 加載本地圖像到uiwebview
- 27. 加載圖像/標誌 - 一個UIWebView
- 28. UIWebView何時完成圖像加載?
- 29. UIWebView - 遠程HTML加載本地圖像
- 30. 如何直接使用iPhone SDK加載矢量圖像?
webView:shouldStartLoadWithRequest:navigationType:在下載發生後被調用。 – Harry 2009-05-03 09:26:27