1

我在我的 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 方法。这非常接近我想要的,除了我想有一种方法告诉应用程序“不,不要从那个 url 下载它,而是使用这个 url”(并指向本地文件系统)。

到目前为止,我能想到的最佳方法是简单地拥有一个指向 Android 文件系统的 .html 文件的不同副本,但我更愿意有选择地替换客户端上的资产,而不是在客户端上维护 2 个 HTML 副本服务器...

谢谢!

4

1 回答 1

1

看一下覆盖shouldInterceptRequest。这似乎是你想要的。缺点是需要 API 11+。

于 2012-08-31T00:38:41.680 回答