3

私は Sencha Touch 2.0.1 を使用しており、以下を使用して SQLite データベースを開こうとしています:

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

iPhone/IOS シミュレーターではこれが機能します。Android デバイスまたはエミュレーターで例外が発生します。

TypeError: Object[object DOMWindow] has no method 'openDatabase'

私は Sencha を使用してネイティブ アプリを構築しています (ただし、急速に信頼を失いつつあります...)。したがって、PhoneGap は使用していません。

Sencha のパッケージングは​​ AndroidManifest.xml ファイルを作成しますが、パーミッションが設定されていません

android.permission.WRITE_EXTERNAL_STORAGE

これが問題かどうかはわかりませんが!

これは私を静かに夢中にさせているので、どんな助けも大歓迎です。

編集: これが JS です - これは Sencha Touch で生成されたアプリの一部です:

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


    }

}

});

4

1 に答える 1

1

お使いの環境では利用できないようです。簡単な確認方法は次のとおりです。

if (window.openDatabase) {
    // available
} else {
    // not available
}

オフライン SQL は現在、iPhone の Safari、Google Chrome、および Palm の WebOS (アプリケーションとブラウザベースのコンテンツの両方) で利用できます。

http://creativepark.net/1191

于 2012-07-23T19:31:25.880 に答える