我正在建立一个网络应用程序,我定期在我的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) | | | | | | | | | | | | | | | ------------------------- | | | | | | | | | | | | | | | | | --------------------------------- | | | | | | | ---------------------------------------- | | | -------------------------------------------------
解决方法
>首先是在加载内容时配置webview设置.
>第二个是每次要刷新页面时为您的URL添加时间戳值.这更可能是一种解决方法.
我将详细描述这两个选项.
第一解决方案
适用于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类上加载内容.
您可以在将Web视图加载到Activity类时配置它.
以下是您可以了解如何在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);
二解决方案
这个解决方案真的很傻,但表现得像预期的那样.对于您的情况,它可能会有所帮助.
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()); } }
这些是避免在Phonegap / Cordova中的Web应用程序中缓存的两种方法.
希望这可能会有所帮助.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。