有什么方法可以从Xamarin ios的Web视图中清除缓存?

时间:2019-10-22 16:23:06

标签: c# xamarin xamarin.forms xamarin.ios embedio

我已经使用embedio(外部软件包)开发了混合式xamarin ios移动应用程序。 我在ios项目资源下添加了前端资源文件(html和javascript文件)。 然后,我们通过在resources文件夹中使用embedio运行静态文件服务器。 Web视图正在从嵌入式服务器加载内容。

我还从应用程序内部实施了应用程序内更新。 我们正在通过从应用程序打开外部URL来更新我们的应用程序。 例如:  itms-services://?action = download-manifest; url = {https://demo-application/download/1.0.1/plist

然后ios开始更新,因为应用程序捆绑包ID和更新plist捆绑包ID相同。

问题是网络视图html内容未更新。

但是,如果我直接安装最新版本,则Web视图将加载更新的内容。

我已经厌倦了将静态文件服务器的位置从捆绑包资源更改为Environment.SpecialFolder.Personal,并且在资源文件夹中添加了特定于版本的html内容。还尝试通过清除Web视图的cookie。

//嵌入式服务器

var staticFilesWebServer = new WebServer(XamarinConstants.XamarinConstants.FrontEndServerUrl);
                staticFilesWebServer.RegisterModule(new StaticFilesModule(location));
                staticFilesWebServer.Module<StaticFilesModule>().UseRamCache = true;
                staticFilesWebServer.Module<StaticFilesModule>().DefaultExtension = ".html";
                staticFilesWebServer.Module<StaticFilesModule>().UseGzip = false;

// main page where i have the web view 
WebView.BaseUrl = XamarinConstants.XamarinConstants.FrontEndServerUrl;
WebView.Source = XamarinConstants.XamarinConstants.FrontEndServerUrl + url;
//url for deepli`enter code here`nk 
WebView.ContentType = WebViewContentType.Internet;

网络视图应加载更新的html内容。

1 个答案:

答案 0 :(得分:0)

这应该为您解决问题:

NSHttpCookieStorage CookieStorage = NSHttpCookieStorage.SharedStorage;

        foreach (var cookie in CookieStorage.Cookies)
            CookieStorage.DeleteCookie(cookie);

链接提供了更多信息here