0

私はPhonegapが初めてです。Phonegap Androidにアプリケーションを実装しようとしています。過去 2 日間、データベースにアクセスして同じデータベースから取得する適切な方法を探しています。質問に対する答えが見つかりませんでした。

Phonegap は SQLLITE をサポートしていませんが、W3C Web SQL データベース仕様と W3C Web Storage をサポートしていることを知りました。

同時に、現在存在しない Phonegap 1.5 用のプラグインがいくつかあることに気付きました。同時に、W3c データベースがiOS 用に 5MB の限られたストレージを提供することがわかりました。

この SQL プラグイン for Phonegap Android PhoneGap-SQLitePlugin-Android を見つけました。これまたは他の方法を使用することをお勧めします。どうか、私を導いてください。

したがって、従うことができるデータベースへのアクセスの例があれば、それを共有してください。

4

1 に答える 1

1

最近、Android と iOS をターゲットにして、これを必要とするアプリを作成しました。次の組み合わせを使用できます::

1. ローカルストレージ ::

localStorage を確認する

function supports_html5_storage() {
  try {
    return 'localStorage' in window && window['localStorage'] !== null;
  } catch (e) {
    return false;
  }
}

項目を LocalStorage に設定する

localStorage.setItem("bar", foo);

また

localStorage["bar"] = foo;

LocalStorage からアイテムを取得する

var foo = localStorage.getItem("bar");

また

var foo = localStorage["bar"];

2. SQLite データベース (より便利で永続的)

DB をセットアップする

var shortName = 'BHCAppDB'; 
var version = '1.0'; 
var displayName = 'BHCAppDB'; 
var maxSize = 65535; 
if (!window.openDatabase){ 
     alert('!! Databases are not supported in this Device !! \n\n We are sorry for the inconvenience and are currently working on a version that will work on your phone'); 
}
db = openDatabase(shortName, version, displayName,maxSize);
createAllTables(db);

テーブルを作成する

function createAllTables(db){
    db.transaction(function(transaction){
        transaction.executeSql("CREATE TABLE IF NOT EXISTS Profile(id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT, gender TEXT,age INTEGER)");
}

SQL クエリを実行する

transaction(function(transaction){
        var rowCount = 'SELECT * FROM Profile';
        transaction.executeSql(rowCount,[],function(transaction,result){
            if(result.rows.length == 0){
                var sqlString = 'INSERT INTO Profile (name,gender,age) VALUES("自己","Female",18)';
                transaction.executeSql(sqlString);

            }
        });
    });

3. すべてのデバイスのネイティブ ストレージ

これは、Phonegap の最良の部分です。Phonegap プラグイン呼び出しを使用して、すべてのデバイスでネイティブ プラグイン クラスを呼び出すことができます。呼び出し中に、パラメーターをクラスに渡すことができ、ネイティブ クラスはデータを OS 自体に格納できます。

たとえば、:: iOS では、プラグイン .h & .m クラスを作成し、それを Cordova.plist ファイルに登録します。それが完了したら、Phonegap を使用して JavaScript からクラスに呼び出しを送信する必要があります。NSDictionary またはその他の NSArray タイプを使用してパラメーターを受け取ったら、CoreData クラスを呼び出して無制限の量のデータを保存できます。メモリ不足になることはありません。

これは、残りのすべてのOSでも同様の方法で実行できます:)

暗号化については、次を試してください :: SQLCipher

以下は、既存の SQLite データベースの操作に関する追加情報です。この例の encrypted.db は、作成した新しいデータベースとプラグマです。

ATTACH DATABASE 'encrypted.db' AS encrypted KEY 'secret'; -- create a new encrypted database
CREATE TABLE encrypted.t1(a,b); -- recreate the schema in the new database (you can inspect all objects using SELECT * FROM sqlite_master)
INSERT INTO encrypted.t1 SELECT * FROM t1; -- copy data from the existing tables to the new tables in the encrypted database
DETACH DATABASE encrypted;
于 2013-05-20T15:15:17.290 に答える