Tro*_*ott 13 html5 application-cache uiwebview ios html5-appcache
是否可以创建一个预先填充了HTML5离线appcache的UIWebView,这样即使是用户第一次访问UIWebView,它也可以脱机工作?
如果是这样,怎么样?
我知道我可以通过其他机制实现这一目标,但以上是我的首选.如果可能的话,我只是很好奇.
我在文档中看不到任何相关内容.
您要查找的是缓存文件夹中的两个文件.
ApplicationCache.db和cache.db
它们都位于您具有完全访问权限的应用程序的Library/Caches/[您的包标识符]文件夹中.您可以将预先填充的缓存数据添加到捆绑包中,只需将其复制到应用程序启动时的缓存文件夹即可.
顺便说一句,你可以轻松地使用它们,因为它们很简单,SQLITE数据库.
我希望这有帮助
我认为这可能会减少到一个问题:您是否可以以编程方式写入 UIWebView 的缓存文件(也就是说,UIWebView 缓存是否驻留在您的应用程序的沙箱内) \xe2\x80\x93 如果可以的话\t,然后游戏结束。如果可以,那么问题就变成了将预填充的缓存文件放入到位后会发生什么,以及 UIWebView 是否被“欺骗”认为它已经下载并缓存了您的 HTML5 内容。
\n\n如果您使用 iPhone 模拟器来测试您的应用程序,请查看~/Library/Application Support/iPhone Simulator/5.0/Applications(如有必要,请将“5.0”替换为您的 iOS 版本)。对于在模拟器中编译的每个应用程序,您应该会看到一长串十六进制数字;找到与您的应用程序相对应的文件,然后在子Library/Caches/[your app\'s identifier]文件夹中查找名为Cache.db.
这可能是 UIWebView 存储其缓存数据的地方。如果不是,游戏结束,您的问题的答案是“不,那不可能”。如果这是UIWebView 缓存数据的地方,那么可以在模拟器中填充此Cache.db文件,抓取该文件,将其存储在您的应用程序包中,然后在需要预先准备时将缓存写入适当的位置。填充缓存。
无论如何,这就是我用来确定是否可能的攻击线 \xe2\x80\x93 我非常有信心答案将是“不,不可能”,除非事实证明,UIWebView 缓存确实驻留在您应用程序的沙箱中,您可以写入,并且您可以通过替换其缓存文件来欺骗 UIWebView。
\n