如何清除Windows Phone 8上Cordova WebView的缓存?

4
我正在为Windows Phone 8开发Cordova 2.9.0应用程序。该应用程序大量利用外部内容,使用从另一个源提供的JS和HTML内容。一切正常,但浏览器组件缓存严重。
我发现清除缓存的唯一方法是卸载并重新安装应用程序才能生效。这样做的缺点是我的localStorage也会被清除,减慢我的周期。
我认为可以通过在我使用的Cordova模板they serve中编写额外的C#代码来清除缓存。

1
一个简单的解决方案是在调试或想要刷新缓存时,为每个资源添加一个唯一值到查询字符串中。例如,只需使用当前时间戳:/MyAPI.js?ts=126454637。这将使浏览器将其视为新内容。或者,更改服务器以包括头文件以不缓存内容。 - WiredPrairie
2个回答

1
所以虽然这不是十分关键,但我还是找到了一个可行的答案。WebBrowser 类确实有适合调用的方法:ClearInternetCacheAsync
由于 CordovaBrowser 继承自 WebBrowser,所以只需要在 MainPage.xaml.cs 中添加一行代码即可,在那里进行起始页面的 C# 初始化。
namespace FooBarApp
{
    public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            InitializeComponent();
            this.CordovaView.Loaded += CordovaView_Loaded;
            // blammo!
            this.CordovaView.CordovaBrowser.ClearInternetCacheAsync();
        }

0
  • Phonegap Cookies Plugin可以在这里找到

  • 一个简单、轻量级的jQuery插件,用于读取、写入和删除cookie,可以在这里找到

希望这能解决你的问题。谢谢!


2
清除Cookie如何解决清除缓存的问题? - WiredPrairie
抱歉,这并没有完全回答我的问题。首先,这里甚至没有 WP 平台的代码;只有 iOS 和 Android。其次,@WiredPrairie 说得对。 - mike3996
@progo 那我是应该删除它还是像往常一样保留它?如果不是正确的答案,请给我建议。 - ChenSmile
@ImranKhan:我认为把它留在这里没有任何问题。 - mike3996
@progo 感谢您的建议...我会像往常一样保留它,有时对iOS和Android开发人员可能会有帮助。 - ChenSmile

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接