我在一個普通的Objective-C iPhone應用程序中使用UIWebView。顯示在UIWebView中的網頁通過javascript寫入HTML5客戶端SQL數據庫。我想打開這個數據庫來讀取和寫入iPhone應用程序。這可能嗎?如果是這樣,我怎麼找到數據庫,我可以使用SQLite框架來打開它們?我可以通過iPhone應用程序(objective-C)打開HTML5客戶端數據庫嗎?
回答
HTML5數據庫位於應用程序的沙箱外,無法直接訪問。如果您可以控制在UIWebView中顯示的網頁,則可以構建一個相對簡單的JavaScript橋來獲取內容並將它們插入到您自己的SQLite數據庫中。
我不認爲它以這種方式暴露。
首先,我不認爲UIWebView
s將有一個客戶端數據庫持續跨多個會話(雖然它可能,我沒有測試過)。其次,它肯定不會讓你直接訪問SQLite數據庫文件本身。
你最好的選擇將被調用JavaScript到web視圖與
[webView stringByEvaluatingJavascriptFromString:@"mySqlQueryingFunction()"]
讓JavaScript中訪問數據庫爲您服務。
由於這是本線程中投票次數最多的答案,我必須通知其他用戶閱讀。這兩種假設都是錯誤的(客戶端本地存儲仍然存在,您可以訪問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
老問題,但我發現這個問題,同時谷歌搜索主題,並認爲我會更新與解決方案。
的localStorage的數據庫是SQLite數據庫和存儲在<APPLICATION_HOME> /圖書館/ WebKit的/ localStorage的,併爲您的應用程序數據庫會像file__0.localstorage
您可以獲取路徑與一些文件像這樣:
NSString * fullPath = [NSHomeDirectory()stringByAppendingPathComponent:@「Library/WebKit/LocalStorage/file__0.localstorage」];
希望這可以幫助任何正在研究此問題的人。
UIWebView
的WebKit實例使用的SQLite數據庫實際上是<Application_Home>/Library/WebKit/LocalStorage/file__0/
,例如, 0000000000000001.db
。
- 1. 通過遠程應用程序打開客戶端應用程序
- 2. HTML5客戶端應用程序打開文件對話框
- 3. 如何通過瀏覽器打開客戶端應用程序?像Secondlife.com它打開第二生命客戶端
- 4. 我可以通過服務器實現客戶端 - 客戶端通信嗎?
- 5. iPhone應用程序:我可以通過網站中的鏈接打開應用程序嗎?
- 6. 我可以在C++ 11客戶端應用程序庫中使用C++ 14嗎?
- 7. 我可以通過我的應用程序使用SharePoint 2010 SQL數據庫嗎?
- 8. 我在哪裏可以瞭解如何將html5用於客戶端數據庫應用程序?
- 9. 通過AppStore發佈iPhone應用程序的客戶端
- 10. 我可以通過iPhone應用程序調用Web服務而不是從數據庫中獲取數據嗎?
- 11. 以編程方式打開iPhone的iPhone郵件客戶端
- 12. 我可以使用HTML5發送客戶端電子郵件嗎?
- 13. 我可以讓我的應用程序在yahoo郵件或Gmail客戶端中打開一封新郵件嗎?
- 14. 可以通過.Net安裝打開Access數據庫嗎?
- 15. 我可以通過Dropbox共享一個MS-Access數據庫應用程序嗎?
- 16. 使用Javascript打開客戶端程序
- 17. Flex應用程序可以成爲Websockets客戶端嗎?
- 18. HTML5/Js客戶端數據庫
- 19. 我可以使用cakePHP開發Android,Iphone,Windows應用程序嗎?
- 20. 我可以使用java開發iPhone應用程序嗎?
- 21. Web應用程序是否可以打開客戶端存在的pdf文件
- 22. 我可以從我的應用程序打開設置應用程序嗎?
- 23. 我可以在iPhone中使用URL方案打開手機應用程序嗎?
- 24. 我可以在Windows客戶端應用程序中使用Mongo DB嗎?
- 25. iPhone應用程序:可以通過應用程序設置語音消息嗎?
- 26. 我可以根據我的iPhone應用程序訂閱嗎?
- 27. 通過WFC數據服務客戶端應用程序刪除數據
- 28. 我可以先開發mac/iphone/ipad應用程序嗎?
- 29. DB2應用程序開發客戶端
- 30. 在iPhone上的Flash CS5 - 開發客戶端/服務器數據應用程序
謝謝柯克和Squeegy。我一定會使用Javascript橋樑,我想我可以通過使用鍵值存儲(localStorage對象)來簡化事情。 – 2010-04-01 11:45:50
我不知道這是否屬實,但現在不是。請參閱下面的答案,使用db名稱0000000000000001.db。我正在使用這種技術,以便javascript和obj-c可以讀取/寫入相同的sqlite3數據庫,並且它可以工作。 – brianz 2014-06-13 23:42:11