4

我正在开发一个移动应用程序,为此我将 html5/js 与 Phonegap 一起使用。我使用 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);

你知道这是从哪里来的吗?我该如何解决?提前致谢。

亲切的问候,维。

4

3 回答 3

2

根据http://androidforums.com/application-development/103644-why-doesnt-work-javascript-opendatabase-android.html,Androidwindow.OpenDatabase()从一开始就对方法的支持很不稳定。您可能希望看到这个 StackOverflow 线程:Android 4.0.1 破坏 WebView HTML 5 本地存储?

于 2012-08-23T04:57:27.793 回答
0

我通过更新phonegap lib(到2.0版)解决了我的问题。我有 .jar 的 1.9 版,我总是使用 .js 文件的旧版本:1.4 版。

我在某些版本的 DroidGap.java 中发现,WebView 中的 WebSettings 配置不会激活数据库。但也许这只是因为我有一个非常旧的 .js lib 版本。

所以现在,似乎还可以。

谢谢你的帮助。

于 2012-08-23T09:50:34.993 回答
0

我对此进行了调查,发现该问题是由于尝试打开(创建)估计大小较大的数据库引起的。

只需从 5kb (5*1024) 开始,然后移动到 5Mb (5*1024*1024)

var db = window.openDatabase('mydb', '1.0', 'Test DB', 5 * 1024);

于 2016-11-15T11:21:07.520 回答