Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 停止在UIWebView中加载图像_Javascript_Iphone_Uiwebview_Webview - Fatal编程技术网

Javascript 停止在UIWebView中加载图像

Javascript 停止在UIWebView中加载图像,javascript,iphone,uiwebview,webview,Javascript,Iphone,Uiwebview,Webview,我有一个网站,我希望在UIWebView中加载,但它充满了图片,需要花费很多时间才能加载。这些图像毫无用处,只会降低iPhone的可用性。我没有自己的网站,所以我不能改变网站的实际代码 该网页通过ASP.NET和AJAX(需要外部文件)大量链接到web,因此我认为不可能让它加载HTML字符串 我想完全停止加载图像。那么我如何阻止它们呢?以某种方式将HTML代码更改为加载,或者阻止图像加载?我有三个想法 使用代理来过滤HTML 自己过滤HTML 先下载 只需下载html并使用文件://URL加载即

我有一个网站,我希望在UIWebView中加载,但它充满了图片,需要花费很多时间才能加载。这些图像毫无用处,只会降低iPhone的可用性。我没有自己的网站,所以我不能改变网站的实际代码

该网页通过ASP.NET和AJAX(需要外部文件)大量链接到web,因此我认为不可能让它加载HTML字符串

我想完全停止加载图像。那么我如何阻止它们呢?以某种方式将HTML代码更改为加载,或者阻止图像加载?

我有三个想法

  • 使用代理来过滤HTML
  • 自己过滤HTML 先下载
  • 只需下载html并使用文件://URL加载即可。这将是最重要的 可能会阻止图像引用 从被解决-虽然它会 到处都留下丑陋的方块
  • UIWebView委托方法不起作用,你说得对!新答案:

    好的,您需要再深入一层以捕获来自UIWebViewNSURLRequest。你提到的博客使用了NSURLCache,我认为这是一个很好的起点:

    您是否尝试将NSURLCache子类化,然后覆盖-(NSURLCacheResponse*)缓存响应请求:(NSURLRequest*)请求

    如果要避免执行请求,需要返回一些内容(作为NSURLCachedResponse)。例如,您可以获取应用程序中静态定义的图像(可能是大小为0,0的PNG)

    如果返回nil,将执行请求

    我使用这种方法强制UIWebView使用本地缓存填充。请参见我的详细答案:


    错误的第一个答案:/

    将自己作为代理添加到UIWebViewUIWebView代理

    对于UIWebView尝试加载的每个图像,delagate将调用以下回调:

    -(BOOL)webView:(UIWebView*)webView应该加载请求:(NSURLRequest*)请求导航类型:(UIWebView导航类型)导航类型

    只需检查请求是否与您希望避免下载的图像相关。在这种情况下,只需将NO返回到此回调:图像将不会加载到UIWebView


    通过使用这种方法,服务器端不需要任何更改。

    我建议尝试另一种方法:


    使用webView委托的
    webView:shouldStartLoadWithRequest:navigationType:
    在尝试加载图像时返回否。

    您可以在任何时候停止webView加载时使用以下代码行


    [webView停止加载]

    问题是,它是一系列动态加载的页面,其内容基于先前页面上输入的内容。所以下载并链接它们不是一个选项。然后我会使用一个过滤代理-这非常类似于在你的网络浏览器上使用广告拦截器-我该如何实现这一点所以我发现了,但我完全被它所控制,无法让它工作……有什么帮助吗?我试过了,但它只在加载页面时调用它。没有一个页面元素(图像、JS、CSS…)你是对的,我在答案中描述了另一种方法。干杯,你的回答是真的。我的要求是,当在webview中加载任何url时,它只显示文本而不显示图像。如何在webview请求中获取图像url并停止它?您的回答是正确的。我的要求是,当在webview中加载任何url时,它只显示文本而不显示图像。如何在webview请求中获取图像url并停止它。