2010-03-31 10 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

相關問題