windows – 如何清除UWP WebView缓存?

前端之家收集整理的这篇文章主要介绍了windows – 如何清除UWP WebView缓存?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的UWP应用程序中使用WebView,我想在关闭应用程序时清除缓存,有没有办法?我知道我可以通过在 this链接中提到的HttpRequestMessage中添加标头来禁用缓存.但是,我希望能够在应用程序退出时清除缓存.

我没有成功尝试过WebView.ClearTemporaryWebDataAsync().
一旦缓存了某些内容,它通常会保留在整个应用中.
任何帮助表示赞赏,谢谢.

编辑:添加代码

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/"));

我希望静态方法可以清除缓存,当我再次导航到同一页面时,应该清除缓存.我在这里做错了吗?

解决方法

在UWP(XAML)中有 ClearTemporaryWebDataAsync方法,它允许webview的缓存和IndexedDB数据.在MSApp – clearTemporaryWebDataAsync中有类似的JavaScript方法.

以下是适合我的代码示例(基于您的代码示例):

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/"));
    }

当我单击刷新按钮时,缓存被清除 – 我看到绿色图像.

猜你在找的Windows相关文章