【问题标题】:Android 4.0.3, window.openDatabase doesn't workAndroid 4.0.3,window.openDatabase 不起作用
【发布时间】:2012-08-18 01:37:03
【问题描述】:

我正在开发一个移动应用程序,为此我使用 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);

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

亲切的问候, 六.

【问题讨论】:

    标签: javascript android html cordova opendatabase


    【解决方案1】:

    根据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?

    【讨论】:

      【解决方案2】:

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

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

      所以现在看来​​没问题了。

      感谢您的帮助。

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-12
          • 1970-01-01
          • 2016-07-09
          • 2013-04-03
          相关资源
          最近更新 更多