老实说,我不确定我是否应该这样写;不管怎样,让我们互相帮助。
我正在构建一个网络应用程序,我定期检查我的Android手机,在这一点上。我没有一直把它上传到Phonegap或其他地方,而是配置了一个简单的页面,其中一个iFrame指向web应用程序(在线托管)的内容。
不好的是:为了看到变化,我必须清理应用程序缓存。否则,“以前的”版本仍在显示(因为它卡在缓存中)。
因此,我希望在关闭所有对象和文件缓存的页面中是否有一个选项可以打开/关闭Android/Configure?
多谢各位!
想知道我是怎么工作的..。
-------------------------------------------------
| My Phone |
| With a |
| |
| ----------------------------------------- |
| | Cordova/Phonegap | |
| | Application which | |
| | loads a | |
| | | |
| | -------------------------------- | |
| | | Website with | | |
| | | iFrame | | |
| | | height:100% | | |
| | | width:100% | | |
| | | | | |
| | | ------------------------- | | |
| | | | | | | |
| | | | HTML5 | | | |
| | | | Responsive | | | |
| | | | Webpage | | | |
| | | | (The WebApp itself) | | | |
| | | | | | | |
| | | ------------------------- | | |
| | | | | |
| | | | | |
| | --------------------------------- | |
| | | |
| ---------------------------------------- |
| |
-------------------------------------------------
发布于 2014-03-06 05:08:05
在Cordova/Phonegap应用程序上有两种禁用缓存的方法。
我将详细描述这两种选择。
第一解
新版本的Cordova (5.3.3)
添加以下进口
import android.webkit.WebSettings;
import android.webkit.WebView;
像这样覆盖onResume -
@Override
protected void onResume() {
super.onResume();
// Disable caching ..
WebView wv = (WebView) appView.getEngine().getView();
WebSettings ws = wv.getSettings();
ws.setAppCacheEnabled(false);
ws.setCacheMode(WebSettings.LOAD_NO_CACHE);
loadUrl(launchUrl); // launchUrl is the default url specified in Config.xml
}
=======
用于Cordova的旧版本
假设您正在将内容加载到Activity
类中。
您可以在将are视图加载到活动类时配置它。
下面是示例代码片段,您可以了解如何在Phonegap/Cordova
应用程序中禁用浏览器缓存。
public class MainActivity extends DroidGap {
@Override
protected void onResume() {
super.onResume();
// Disable caching ..
super.appView.getSettings().setAppCacheEnabled(false);
super.appView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
super.loadUrl("http://blabla.com");
}
}
如您所见,每当触发onResume()
事件时,此代码块将加载内容,这意味着您的web内容将在应用程序处于前台时重新加载。
下面的代码防止在webview上缓存。
super.appView.getSettings().setAppCacheEnabled(false);
super.appView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
第二解
这个解决方案确实很傻,但其行为与预期一致。对于你的处境来说,这可能是有帮助的。
您可以简单地在url末尾添加时间戳值。下面是示例代码片段。
public class MainActivity extends DroidGap {
@Override
protected void onResume() {
super.onResume();
StringBuilder urlBuilder = new StringBuilder("http://blabla.com");
urlBuilder.append("?timestamp=");
urlBuilder.append(new Date().getTime());
super.loadUrl(urlBuilder.toString());
}
}
它每次都在url末尾追加时间戳值,并在新的时候加载内容。
这是避免在Phonegap/Cordova
中的web应用程序中缓存的两种方法。
希望这会有帮助。
https://stackoverflow.com/questions/22221395
复制相似问题