我在我的UWP应用程序中使用WebView,我想在closures应用程序时清除caching,有没有办法? 我知道我可以通过添加头文件到我的HttpRequestMessage来禁用caching, 如此链接中所述。 不过,我希望能够在应用程序退出时清除caching。
我没有任何成功的尝试WebView.ClearTemporaryWebDataAsync()。 一旦有东西被caching,它通常保持在整个应用程序。 任何帮助表示赞赏,谢谢。
编辑:添加代码片段
var webView = new WebView(); webView.Navigate(new Uri("http://refreshyourcache.com/en/cache-test/")); await WebView.ClearTemporaryWebDataAsync(); //static method webView.Navigate(new Uri("http://refreshyourcache.com/en/cache-test/"));
我期望静态方法来清除caching,当我再次导航到同一页时,它的caching应该被清除。 我在这里做错了什么?
在UWP(XAML)中有ClearTemporaryWebDataAsync
方法,它允许webview的缓存和IndexedDB数据。 MSApp中的JavaScript也有类似的方法 – clearTemporaryWebDataAsync
。
这里是代码示例(基于你的)适用于我:
XAML:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <StackPanel> <WebView x:Name="webView" Width="800" Height="600"></WebView> <Button x:Name="refreshBtn" Content="Refresh" ></Button> </StackPanel> </Grid>
C#:
public MainPage() { this.InitializeComponent(); refreshBtn.Tapped += RefreshBtn_Tapped; webView.Navigate(new Uri("http://refreshyourcache.com/en/cache-test/")); } private async void RefreshBtn_Tapped(object sender, TappedRoutedEventArgs e) { await Windows.UI.Xaml.Controls.WebView.ClearTemporaryWebDataAsync(); webView.Navigate(new Uri("http://refreshyourcache.com/en/cache-test/")); }
当我点击刷新按钮,缓存被清除 – 我看到绿色的图像。
根据8.1,没有可能
关于WebView需要了解的十件事 – Windows 8.1的更新
您现在可以使用的最接近的方法是WebView.Refresh ,它通过向服务器发送“Pragma:no-cache”头来重新加载文件,而不强制进行缓存验证。
…或只是在资源管理器中清除缓存