如何禁用cordova android app中的缓存

时间:2016-07-05 06:27:07

标签: android cordova caching cordova-3

我曾使用Cordova 3.6.3版本来构建我的Android应用程序,并且我想在cordova webview中禁用URL的缓存,我正在使用默认的cordova项目并使用index.html文件。 我尝试了这个,但它崩溃了我的应用

public class MyClass extends CordovaActivity
{
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
    mwebview=(WebView) findViewById(R.id.appView);
    WebSettings ws=mwebview.getSettings();
    ws.setAppCacheEnabled(false);
    ws.setCacheMode(WebSettings.LOAD_NO_CACHE);
    // Set by <content src="index.html" /> in config.xml
    loadUrl(launchUrl);
    }
}

4 个答案:

答案 0 :(得分:1)

Cordova(由于在webview上运行)尊重nocache标头,如果你能够在服务器中设置它,它应该给你相同的结果。此外,您可以通过到期等控制缓存本身的使用。

答案 1 :(得分:1)

<强>科尔多瓦-禁用-HTTP-缓存

Cordova插件可完全禁用HTTP请求和响应的缓存。

只需在Cordova CLI中输入以下命令:

cordova plugin add cordova-disable-http-cache

这将通过npm获取插件“cordova-disable-http-cache”并为android安装“cordova-disable-http-cache”。

它解决了我在应用程序中禁用缓存的问题。 我的cordova版本是6.5.0。

答案 2 :(得分:0)

我建议您使用以下插件:

https://github.com/moderna/cordova-plugin-cache

document.addEventListener('deviceready', onDeviceReady);
function onDeviceReady() {
    var success = function(status) {
        alert('Message: ' + status);
    }
    var error = function(status) {
        alert('Error: ' + status);
    }
    window.cache.clear( success, error );
}

每次启动时,都会清除应用程序的缓存。

您可以在回调中评论提醒。

答案 3 :(得分:0)

hdezela's答案对我有用,因此我在下面提供了我的工作 PHP解决方案

header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');

将此代码放在服务器端代码的顶部,关闭仿真器,然后使用 AVD Manager 从其擦除数据,然后重新运行应用程序。