委托将特定资源(图像等)加载到Android WebView中的本地文件系统?

时间:2012-08-30 20:11:09

标签: android webview

我在Android应用中使用WebView来加载我们的Web应用程序,例如......

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    _web_view = (WebView) findViewById(R.id.web);
    _web_view.loadUrl(R.strings.url);
}

到目前为止,非常好。

我想要做的是有选择地选择在WebView请求时从本地Android文件系统加载可用资产。我的想法是,通过将静态图像资源打包到Android中并从文件系统提供服务来节省大量的加载时间和带宽,而不是从Web服务器请求它们。

我看到WebViewClient类有一个onLoadResource方法。这非常接近我想要的,除了我想有办法告诉应用程序“不,不要从这个网址下载它,改为使用这个网址”(并指向本地文件系统)。

到目前为止,我能想到的最好方法是简单地使用指向Android文件系统的.html文件的不同副本,但我更愿意选择性地替换客户端上的资产而不是保留2个副本。服务器上的HTML ...

谢谢!

1 个答案:

答案 0 :(得分:1)

请改为考虑覆盖shouldInterceptRequest。这似乎是你想要的。缺点是需要API 11 +。