我正在开发移动应用程序,因为我使用带有Phonegap的html5 / js。 我使用window.openDatabase(...)将一些数据存储在本地数据库中。
这对Android 2.x运行良好但是当我尝试Android 4.0.3时,我发现以下错误:
D/CordovaLog(698): Uncaught TypeError: Object [object DOMWindow] has no method 'openDatabase'
我的代码是:
if (!window.openDatabase)
alert("Error: can't open local database");
if (!localStorage)
alert("Error: localstorage not usable");
var db = window.openDatabase("Database", "1.0", "DatabaseName", 200000);
你知道它来自何处以及如何解决它?提前谢谢。
亲切的问候, VI。
答案 0 :(得分:2)
根据http://androidforums.com/application-development/103644-why-doesnt-work-javascript-opendatabase-android.html,Android从一开始就支持window.OpenDatabase()
方法。您可能希望看到此StackOverflow线程:Android 4.0.1 breaks WebView HTML 5 local storage?
答案 1 :(得分:0)
我通过更新phonegap lib(版本2.0)解决了我的问题。我的.jar版本为1.9,我总是使用.js文件的旧版本:版本1.4。
我发现在某个版本的DroidGap.java中,WebView的WebSettings配置不会激活数据库。但也许只是因为我有一个非常旧版本的.js lib。
现在,似乎没问题。
感谢您的帮助。
答案 2 :(得分:0)
我对此进行了调查,发现问题是由于尝试打开(创建)具有较大估计大小的数据库而引起的。
从5kb(5 * 1024)开始,然后移至5Mb(5 * 1024 * 1024)
var db = window.openDatabase('mydb', '1.0', 'Test DB', 5 * 1024);