Как получить доступ к базе данных, используя разрыв телефона - PullRequest
2 голосов
/ 23 февраля 2012

Я новичок в Android PhoneGap.Я храню и извлекаю данные, используя нативное приложение.я не знаю, как отобразить извлеченные данные с нативной страницы на телефонную пробку (HTML).

Может кто-нибудь, пожалуйста, подскажите, как получить доступ к sqlite с помощью phonegap .?

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 24 февраля 2012

Сначала необходимо создать плагин Android для Phonegap, с помощью которого вы сможете получить доступ к собственному коду и, следовательно, к собственной БД, например

public class SqlitePlugin extends Plugin {

private static final String TAG = "SqlitePlugin";
private static final String CREATE_DB_ACTION = "createDatabase";
private static final String SHOW_DB_VALUES_ACTION = "showValues";

@Override
public PluginResult execute(String action, JSONArray data, String callbackId) {
    Log.i(TAG, "Plugin Called");
    PluginResult result = null;

    if (CREATE_DB_ACTION.equals(action)) {
        Log.d(TAG, "CREATE_DB_ACTION");
        DB _db = new DB(ctx);
        _db.insertValues();
    }
    else if (SHOW_DB_VALUES_ACTION.equals(action)) {
        Log.d(TAG, "SHOW_DB_VALUES_ACTION");

        JSONObject DBInfo = null;
        try {
            DBInfo = getDBValuesListing();

        } catch (JSONException e) {
            e.printStackTrace();
        }

        result = new PluginResult(Status.OK, DBInfo);

    }       
    else {
        result = new PluginResult(Status.INVALID_ACTION);
        Log.d(TAG, "Invalid action : " + action + " passed");
    }

    return result;
  }
}

. После этого создайте файл sqlite.js, подобный этому.

    function SqlitePlugin() {
};

SqlitePlugin.prototype.createDatabase = function(successCallback, failCallback) {

return PhoneGap.exec(successCallback, failCallback, "SqlitePlugin",
        "createDatabase", [ null ]);
};

SqlitePlugin.prototype.showValues = function(params, successCallback, failCallback) {
return PhoneGap.exec(successCallback, failCallback, 'SqlitePlugin', 'showValues',
        [ params ]);
};

PhoneGap.addConstructor(function() {
PhoneGap.addPlugin("SqlitePlugin", new SqlitePlugin());
});

Импортируйте этот sqlite.js на свою страницу (index.html) и затем, наконец, используйте плагин, подобный этому

function showValues() {
    window.plugins.SqlitePlugin.showValues('showValues',
            showValuesSuccessCallBack, showValuesFailCallBack);

}
function showValuesSuccessCallBack(e) {
    if (e.Rows.length > 0) {
        alert("Success");
        for (i = 0; i < e.Rows.length; i++) {
            alert("Id = " + e.Rows[i].id);
            alert("Number = " + e.Rows[i].number);
        }
    } else {
        alert("No values in Database");
    }
}

function showValuesFailCallBack(f) {
    alert("Failure");
}

Дайте мне знать, сработало ли это для вас

0 голосов
/ 23 февраля 2012

Что ж, вам, вероятно, следует использовать функции HTML5 для хранения и извлечения данных из базы данных sqlite.Однако, если вы настроены делать это с собственным кодом, вы должны взглянуть на нашу реализацию, которая использовалась для старых устройств Android, которые не поддерживают sqlite.

https://github.com/cordova/cordova-android/blob/master/framework/assets/js/storage.js https://github.com/cordova/cordova-android/blob/master/framework/src/com/phonegap/Storage.java

0 голосов
/ 23 февраля 2012

Напишите плагин phonegap для передачи данных с нативной стороны в html (js) http://wiki.phonegap.com/w/page/36753494/How%20to%20Create%20a%20PhoneGap%20Plugin%20for%20Android

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...