首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >window.openDatabase抛出TypeError: Object[object DOMWindow]在Android上没有“openDatabase”方法

window.openDatabase抛出TypeError: Object[object DOMWindow]在Android上没有“openDatabase”方法
EN

Stack Overflow用户
提问于 2012-07-23 19:00:20
回答 1查看 4.4K关注 0票数 3

我正在使用Sencha 2.0.1,并试图使用以下方法打开一个SQLite数据库:

代码语言:javascript
复制
var db = window.openDatabase("mydatabase", "1.0", "mydatabase", 2000000);

在iPhone/IOS模拟器上,这是可行的。在Android设备或模拟器上,我得到一个例外:

代码语言:javascript
复制
TypeError: Object[object DOMWindow] has no method 'openDatabase'

我正在使用Sencha来构建本地应用程序(尽管我正在迅速失去信心.)所以我不使用PhoneGap。

Sencha的打包创建和AndroidManifest.xml文件,但我看不到设置为

代码语言:javascript
复制
android.permission.WRITE_EXTERNAL_STORAGE

但我不确定这是不是问题所在!

任何帮助都是非常感谢的,因为这正悄悄地把我逼疯。

编辑:这是JS --它是由Sencha Touch生成的应用程序的一部分:

代码语言:javascript
复制
Ext.application({
name: 'MyApp',

requires: [
    'Ext.MessageBox'
],

views: ['Main'],

icon: {
    '57': 'resources/icons/Icon.png',
    '72': 'resources/icons/Icon~ipad.png',
    '114': 'resources/icons/Icon@2x.png',
    '144': 'resources/icons/Icon~ipad@2x.png'
},

isIconPrecomposed: true,

startupImage: {
    '320x460': 'resources/startup/320x460.jpg',
    '640x920': 'resources/startup/640x920.png',
    '768x1004': 'resources/startup/768x1004.png',
    '748x1024': 'resources/startup/748x1024.png',
    '1536x2008': 'resources/startup/1536x2008.png',
    '1496x2048': 'resources/startup/1496x2048.png'
},

launch: function() {
    // Destroy the #appLoadingIndicator element
    Ext.fly('appLoadingIndicator').destroy();

    // Initialize the main view
    Ext.Viewport.add(Ext.create('MyApp.view.Main'));
    //

    try {

        var db = window.openDatabase("mydatabase", "1.0", "mydatabase", 2000000);

        if ( !db ) {
            var m3 = new Ext.MessageBox(); 
            m3.alert("db test!", "openDatabase failed!");

        } else {
           var m3 = new Ext.MessageBox(); 
           m3.alert("db test!", "openDatabase ok!");
        }
    }
    catch(err){

        var m2 = new Ext.MessageBox(); 
        m2.alert("db test!", "exception caught: " + err.name + ":" + err.message);


    }

}

});

EN

回答 1

Stack Overflow用户

发布于 2012-07-23 19:31:25

看起来不适合你的环境。下面是一个简单的检查方法:

代码语言:javascript
复制
if (window.openDatabase) {
    // available
} else {
    // not available
}

离线SQL目前在iPhone和Palm的WebOS上的Safari、Google中可用(既适用于其应用程序,也适用于基于浏览器的内容)。

http://creativepark.net/1191

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11618747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档