如何在Webview中加载缓存页面

时间:2018-01-19 12:03:11

标签: android webview cache-manifest

我在HTML页面上应用了缓存清单。

在Chrome浏览器上,当Internet连接关闭时,它会重定向到缓存模式。 嗯,这不是Android-Webview的情况。它给出了以下错误:

  

无法加载网页

     

净:ERR_NAME_NOT_RESOLVED

经历过各种资源但似乎没有任何帮助。

以下是我正在使用的代码:

services.AddScoped<IRepository<IPersonDto>>((services) => {
   var testRepo = new SetupRepo();
   var personRepository= new Repository<PersonDto>(testRepo.PersonRepo);
   return personRepository;
});

3 个答案:

答案 0 :(得分:1)

{{1}}

这将告诉WebView从缓存加载页面,但是如果它需要缓存中的任何内容,它会查找网络,当你没有连接时,它只会给你& #34;页面无法加载错误。&#34;这是因为遗憾的是并非所有内容都存储在缓存中,即使使用此设置,您也会注意到浏览器正在使用网络。

使用WebSettings.LOAD_CACHE_ONLY

{{1}}

答案 1 :(得分:0)

更改此行:

mWebview.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);

要:

mWebview.getSettings().setCacheMode( WebSettings.LOAD_CACHE_ELSE_NETWORK)

答案 2 :(得分:0)

只需包含enableHTML5AppCache()

即可
private void enableHTML5AppCache() {
        mWebview.getSettings().setDomStorageEnabled(true);
        mWebview.getSettings().setAppCachePath("/data/data/" + getPackageName() + "/cache");
        mWebview.getSettings().setAppCacheEnabled(true);
        mWebview.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
    }