大家好:
我正在开始创建一个离线Web应用程序。我希望它可以在UIWebView(iOS)或WebView(Android)中运行。我不知道它是否有效。 html和javascript文件现在工作正常,但我的应用程序需要处理一些由我自己定义的二进制文件,并且这些文件是动态创建的,因此它们不能放在离线缓存清单中。如果网页从Web服务器加载到Web浏览器中,我可以通过XMLHttpRequest读取二进制文件。但是如果浏览器将页面打开为本地文件,则无法通过http协议读取二进制文件,甚至无法通过javascript访问,我想出于安全考虑。我被困在这里,你能不能给我一些关于如何在离线网络应用程序中创建/读取/写入本地文件的提示?我尝试使用<img src="my_data_file"/>
,并希望我可以从元素中获取原始数据,但没办法。如果javascript无法执行此操作,是否有任何解决方法可以使用现有的html标记来读取原始数据?
答案 0 :(得分:2)
有本地存储,它的工作方式类似于数据库。这是一个很好的教程。
http://html5tutorial.net/tutorials/working-with-html5-localstorage.html
您必须使用Image()对象动态加载图像。浏览器应该以脱机模式缓存图像,但是......
这个问题与您正在寻找的问题非常相似:
Can you use HTML5 local storage to store a file? If not, how?
答案 1 :(得分:0)
我使用Web SQL数据库(iOS上的最大存储容量为50MB; Android中的可变容量)可用于本地映像存储。我将图像序列化为base64(在服务器端,但也可以在客户端完成)并将它们作为文本存储在sqlite db中。这不是无限存储,但它会超过5MB。
答案 2 :(得分:0)
您可能希望查看此项目http://www.phonegap.com/,作为访问设备文件问题的可能的长期解决方案。该系统的功能是为您提供一些javascript API,用于某些设备的实际硬件功能,可能包括操作大文件所需的文件IO。它是一个已经存在很长时间的开源项目,但有一些权衡,比如你必须为每个目标操作系统实际部署一个单独的二进制文件。 : - /