Android 4.0.3,window.openDatabase不起作用

时间:2012-08-22 15:19:58

标签: javascript android html5 cordova opendatabase

我正在开发移动应用程序,因为我使用带有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。

3 个答案:

答案 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);