2015-10-18 83 views
2

我試圖通過將網址加載到屏幕外網頁視圖中並通過Javascript使用WebScriptObject及其evaluateWebScript:方法來模擬網站上的真實用戶行爲。網頁上有很多圖片,我不想加載它們中的任何一個,因爲我不需要它們,它們消耗太多帶寬並減慢加載時間。如何讓Web視圖加載所有內容以便在窗口上執行Javascript(如果存在HTML JS和CSS文件及其依賴關係),但是阻止加載任何媒體?如何僅加載HTML + CSS + JS並停止加載可可WebView上的圖像

回答

2

經過一番苦苦掙扎之後,我發現了一個非常簡單的方法來解決我的問題。這工作如果圖片網址的格式正確(如結尾)各自的擴展:

-(NSURLRequest *)webView:(WebView *)sender resource:(id)identifier willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse fromDataSource:(WebDataSource *)dataSource{ 
    BOOL isRequestImage = [self isRequestImage:request]; 
    if(isRequestImage){ 
     return nil; //don't bother loading images 
    } 
    ... 
} 

其中:

-(BOOL)isRequestImage:(NSURLRequest*)request{ 
    NSString *absoluteString = [request.URL.absoluteString lowercaseString]; 
    if([absoluteString hasSuffix:@".png"] || [absoluteString hasSuffix:@".jpg"] || [absoluteString hasSuffix:@".jpeg"]){ 
     return YES; 
    } 
    return NO; 
} 

所有我訪問要麼jpgpng擴展建立的網站上的圖像爲方便起見,我還包含了jpeg,它可以很容易地擴展到任何擴展,包括但不限於圖像。

如果在圖片網址中有查詢字符串等,您可以通過isRequestImage:方法輕鬆過濾出來,我只是沒有,所以我不需要它。