首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单调等价于LoadDatalWithBaseURL &清空缓存

单调等价于LoadDatalWithBaseURL &清空缓存
EN

Stack Overflow用户
提问于 2012-10-20 23:13:00
回答 2查看 295关注 0票数 0

在将一些Android代码移植到iPhone上时,我遇到了两个问题。首先,我需要一些类似于LoadDataWithBaseURL的东西。问题是这个。在代码中,我生成一个网页。页面使用Javascript做了一些奇怪的事情,世界是美好的。在机器人上工作很好,我生成,发送到webview的活动,然后使用LoadDataWithBaseURL。

不幸的是,在iPhone上,它第一次工作。如果我在页面中添加了一些内容并重新发送,我将得到列表中要显示的第一件东西,而没有任何其他内容。这是和LoadHtmlString的。

代码语言:javascript
复制
string contentDirectoryPath = Path.Combine (NSBundle.MainBundle.BundlePath, "Content/");
        this.BeginInvokeOnMainThread (delegate {
            this.webView.LoadHtmlString (myGeneratedPage, new NSUrl (contentDirectoryPath, true));
        });

有一种名为LoadData的单调方法看起来很相似,但我不清楚NSData数据是否与安卓应用程序中的字符串数据相同。

一个简单的解决方案可能是清除缓存..。但是,我不知道该如何做,也不知道我是否需要做应用程序缓存或safari缓存。

我环顾四周,发现了一个解决方案,但它在目标C中,而不是单调的。与Java到C#不同的是,我没有接触obj-c,所以不知道从哪里开始。

如能在这些方面提供任何帮助,我们将不胜感激。

PFJ

EN

回答 2

Stack Overflow用户

发布于 2012-10-24 15:06:29

我一直在处理一个iPhone Monotouch项目中的缓存。

关于更简单的解决方案,为了清除应用程序缓存,我这样做:

代码语言:javascript
复制
NSUrlCache cache = NSUrlCache.SharedCache;
cache.RemoveAllCachedResponses();

我知道SharedCache这个名字似乎表明它将是一个跨应用程序缓存,但是我发现清除Safari的缓存对我的应用程序的缓存没有任何影响。另外,iPhone上的应用程序都是大量的沙箱,所以我认为你不可能清除Safari的缓存。

我使用iPhone模拟器的经验表明,行NSUrlCace.SharedCache为应用程序创建了一个缓存。通过导航到Mac上的这个文件夹就可以看出这一点:

代码语言:javascript
复制
Library/ApplicationSupport/iPhone Simulator/6.0/<your app id>/Library/Caches/

应该有一个包含包名的文件夹和一个名为"Cache.db“的文件。我认为这个文件在这个位置上的存在进一步支持了这样一个事实,即它是应用程序的缓存,所以您应该安全地清除它等等。

由于MonoTouch网站上没有太多关于NSUrlCache及其实现方法的文档,所以这是我所能做的最好的工作。

希望您能找到一些方法来使用缓存清除来解决您的问题。

票数 3
EN

Stack Overflow用户

发布于 2012-10-21 15:32:19

LoadData的参数是包含NSData内容的NSData。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12993511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档