gpt4 book ai didi

objective-c - 如何在 Cocoa WebView 上仅加载 HTML+CSS+JS 并停止加载图像

转载 作者:行者123 更新时间:2023-12-03 16:35:18 24 4
gpt4 key购买 nike

我试图通过将 URL 加载到屏幕外 Web View 中并使用 WebScriptObject 及其 evaluateWebScript: 方法通过 Javascript 进行交互,来模仿网站上的真实用户行为。网页上有很多图像,我不想加载任何图像,因为我不需要它们,而且它们消耗太多带宽并减慢加载时间。如何让 Web View 加载所有内容以便在窗口上执行 Javascript(HTML JS 和 CSS 文件及其依赖项,如果有),但阻止加载任何媒体?

最佳答案

经过一番努力,我找到了一个非常简单的方法来解决我的问题。如果图像 URL 的格式正确(例如以以下结尾)及其各自的扩展名,则此方法有效:

-(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 > 显然,它可以轻松扩展为任何扩展,包括但不限于图像。

如果图像 URL 中有查询字符串等,您可以在 isRequestImage: 方法中轻松过滤掉它,我只是没有,所以不需要它。

关于objective-c - 如何在 Cocoa WebView 上仅加载 HTML+CSS+JS 并停止加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33197028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com