【问题标题】:How to disable webview cache for Windows Phone 8.1 Runtime universal app?如何禁用 Windows Phone 8.1 运行时通用应用程序的 webview 缓存?
【发布时间】:2015-03-02 23:37:04
【问题描述】:

是否可以为 Windows Phone 8.1 运行时通用应用程序禁用 Webview 控件的缓存?我的应用程序似乎记住了它第一次收到的信息。我的应用程序将我登录到服务中,当我返回在模拟器中重新运行应用程序时(未完成关闭模拟器),它会自动登录,而不是给我提示。如果这有助于解释我遇到此问题的位置,则此行为在 NavigationCompleted 处理程序中。

如果我要完全关闭模拟器然后重新启动它,那么系统会再次提示我输入登录名和密码。当我在应用程序的其他部分使用 HttpClient 时,我已经解决了这个缓存问题,方法是在标头中发送 no-cache 为:

client.DefaultRequestHeaders.Add("Cache-Control", "no-cache");

我可以为 webview 控件做类似的事情吗?

谢谢!

【问题讨论】:

    标签: caching webview windows-phone-8.1 win-universal-app


    【解决方案1】:

    这是我用来清除解决我的问题的 cookie 的代码:

    Windows.Web.Http.Filters.HttpBaseProtocolFilter myFilter = new Windows.Web.Http.Filters.HttpBaseProtocolFilter(); 
    var cookieManager = myFilter.CookieManager; 
    HttpCookieCollection myCookieJar = cookieManager.GetCookies(new Uri("target URI for WebView")); 
    foreach (HttpCookie cookie in myCookieJar) 
    { 
        cookieManager.DeleteCookie(cookie); 
    }

    【讨论】:

      【解决方案2】:

      没有办法以编程方式进行。

      但对于 Windows 应用程序的测试目的,您可以手动进行 - http://blogs.msdn.com/b/wsdevsol/archive/2012/10/18/nine-things-you-need-to-know-about-webview.aspx#AN7

      【讨论】:

      • 谢谢,但我使用的是 Windows Phone 应用程序,无法访问提示以手动执行此操作。
      • @mujno,这就是我提到 Windows 应用程序的原因。
      • 谢谢@khamitimur,有没有其他方法可以代替webview?
      • @mujno,我没有找到可以替换 WebView 的东西。
      • 我实际上找到了一种方法来清除我的 webview cookie 并解决了我的问题。不过感谢您的帮助。
      猜你喜欢
      • 1970-01-01
      • 2015-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-25
      相关资源
      最近更新 更多