如何从代码中清除Windows 8.1 WebView的缓存?

时间:2014-07-10 04:00:52

标签: c# webview windows-runtime microsoft-metro windows-8.1

我正在为客户开发基于webview的应用程序。它基本上是一个自助服务终端应用程序。可以配置哪个网站将在webview中。现在,当网站更新时,更改不会反映在网站上。 webview使用网站的缓存版本。谷歌搜索问题导致我的结论是,我需要从INetCache删除%localappdata%\Packages\PACKAGE_ID_OF_APP\AC文件夹的内容。我知道在WinRT中访问此文件夹是不可能的。所以任何人都知道如何清除缓存?

我认为使用powershell我可以删除该文件夹。我的应用程序不会在商店发布。应用程序使用企业密钥进行侧载。因此可以从WinRT应用程序调用powershell脚本吗?

3 个答案:

答案 0 :(得分:0)

powershell命令删除项删除文件或文件夹。要阻止它提示确认删除,请在emd。添加-recurse。

Remove-Item c:\appdata\local\microsoft\windows\inetcache -recurse

Reference

答案 1 :(得分:0)

我知道这个解决方案不是“来自代码”,尽管我只花了半天时间尝试通过Visual Studio解决此问题。我希望这能节省一些时间和头痛。

在我当前版本的Visual Studio 2015 CTP中,我也遇到了同样的问题。我正在调试js,Webview Facade不会重新加载新的js文件以进行调试。为了强制它这样做,在Solution-> Properties-> Debug->中有一个设置。选中"Uninstall and then re install my package. All information about the application state is deleted"框。然后执行以下步骤:

1.Build -> Clean
2.Build -> Rebuild Solution
3.Build -> Deploy Solution
4.Finally F5 re run your test on the remote machine. 

希望您加载到Webview会话中的JavaScript文件能够反映您的更改。

答案 2 :(得分:0)

您可以通过注入一些Javascript来执行等效的<CTRL + F5>

MyWebView.InvokeScriptAsync("eval", new string[] { "location.reload(true)" });

传递true会绕过缓存。请参阅docs