2010-03-31 11 views

回答

0

HTML5数据库位于应用程序的沙箱外,无法直接访问。如果您可以控制在UIWebView中显示的网页,则可以构建一个相对简单的JavaScript桥来获取内容并将它们插入到您自己的SQLite数据库中。

+0

谢谢柯克和Squeegy。我一定会使用Javascript桥梁,我想我可以通过使用键值存储(localStorage对象)来简化事情。 – 2010-04-01 11:45:50

+0

我不知道这是否属实,但现在不是。请参阅下面的答案,使用db名称0000000000000001.db。我正在使用这种技术,以便javascript和obj-c可以读取/写入相同的sqlite3数据库,并且它可以工作。 – brianz 2014-06-13 23:42:11

2

我不认为它以这种方式暴露。

首先,我不认为UIWebView s将有一个客户端数据库持续跨多个会话(虽然它可能,我没有测试过)。其次,它肯定不会让你直接访问SQLite数据库文件本身。

你最好的选择将被调用JavaScript到web视图与

[webView stringByEvaluatingJavascriptFromString:@"mySqlQueryingFunction()"] 

让JavaScript中访问数据库为您服务。

+2

由于这是本线程中投票次数最多的答案,我必须通知其他用户阅读。这两种假设都是错误的(客户端本地存储仍然存在,您可以访问sqlite文件)。有关更多信息,请参阅http://stackoverflow.com/questions/9067249/how-do-i-access-html5-local-storage-created-by-phonegap-on-ios。 – db42 2014-06-15 08:26:46

0

老问题,但我发现这个问题,同时谷歌搜索主题,并认为我会更新与解决方案。

的localStorage的数据库是SQLite数据库和存储在<APPLICATION_HOME> /图书馆/ WebKit的/ localStorage的,并为您的应用程序数据库会像file__0.localstorage

您可以获取路径与一些文件像这样:

NSString * fullPath = [NSHomeDirectory()stringByAppendingPathComponent:@“Library/WebKit/LocalStorage/file__0.localstorage”];

希望这可以帮助任何正在研究此问题的人。

2

UIWebView的WebKit实例使用的SQLite数据库实际上是<Application_Home>/Library/WebKit/LocalStorage/file__0/,例如, 0000000000000001.db

相关问题