1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/nighwyx-Cordova-SQLitePlugin

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Cordova/PhoneGap SQLitePlugin

Нативный интерфейс к SQLite в плагине Cordova/PhoneGap для Android, iOS, WP(8/8.1) и Windows (8.1), с API, аналогичным HTML5/Web SQL API.

Лицензия для версий Android, WP(8) и Windows (8.1): MIT или Apache 2.0

Лицензия для версии iOS: только MIT

Статус

  • Доступен через PhoneGap Build
  • Версия для Windows (8.1) находится в экспериментальном состоянии:
    • Отсутствует фоновое выполнение
    • Операции закрытия и удаления баз данных ещё не реализованы
    • Очень ограниченное тестирование: тесты находятся в simple-test-windows. Нельзя протестировать существующими наборами тестов QUnit в test-www, так как QUnit не может выполняться на Windows (8.1+).
    • Визуальный файл сборки C++ предоставлен только для Windows 8.1. Поддержка сборки C++ для Windows Phone 8.1 будет добавлена позже.
    • Не все цели Windows поддерживаются автоматической установкой

Объявления

  • Добавлена версия для Windows (8.1), использующая библиотеку C++ SQLite-WinRT

  • SQLCipher для Android и iOS теперь поддерживается плагином brodysoft / Cordova-sqlcipher-adaptor

  • Новый параметр location для методов openDatabase и deleteDatabase для выбора расположения базы данных (iOS только) и отключения резервного копирования в iCloud

  • Поддержка заранее заполненных баз данных для Android и iOS теперь интегрирована, описание использования приведено ниже

  • Устранены проблемы совместимости с PouchDB авторства @nolanlawson## Ключевые особенности

  • Совместим с инструментарием Cordova 3.x и доступен через PhoneGap Build

  • Прямое замещение API SQL HTML5, единственное изменение должно быть window.openDatabase() --> sqlitePlugin.openDatabase()

  • Безопасные вложенные транзакции с оптимизациями для пакетной обработки

  • Как указано в этой записи:

    • Сохраняет базу данных SQLite в известном месте данных пользователя, которое можно переопределить; база данных iOS будет резервироваться в iCloud.
    • Отсутствуют ограничения размера в 5МБ, более информации доступно по адресу: http://www.sqlite.org/limits.html
  • Поддерживает Android начиная с SDK 10 (т.е. Gingerbread, Android 2.3.3); поддержка старых версий доступна по запросу.

  • Возможность использовать заранее заполненные базы данных (описание использования приведено ниже).

Некоторые приложения, использующие Cordova/PhoneGap SQLitePlugin

Известные проблемы- Отчет о проблемах с гидратацией в PhoneGap Build.

  • Использование Web Workers в настоящее время не поддерживается и известно, что он сломан на Android.

  • Триггеры поддерживаются только для iOS и известны как сломанные на Android.

  • Вставка данных, которая влияет на несколько строк (например, в результате SELECT cause или использования триггеров), не сообщает правильное количество затронутых строк на Android.## Другие ограничения

  • Значения версии базы данных, имя базы данных и параметр размера не поддерживаются и будут проигнорированы.

  • SQLite плагин не будет работать до вызова обратного вызова события deviceready, как указано в разделе Использование.

  • Версия Android не может работать с более чем 100 открытыми файлами базы данных из-за модели многопоточности.

  • UNICODE разделитель строк (\u2028) в настоящее время не поддерживается и известен как сломанный в версии для iOS.

  • UNICODE символы не работают с версией WP(8).

Ограниченная поддержка (тестирование требуется)

  • Приложения с несколькими страницами на WP(8)
  • Триггеры базы данных (как указано выше — известны как сломанные для Android)

Другие версии

ИспользованиеОсновная идея — имитировать HTML5/API Web SQL как можно ближе. Единственное существенное изменение заключается в использовании window.sqlitePlugin.openDatabase() (или sqlitePlugin.openDatabase()) вместо window.openDatabase(). Если вы заметите какие-либо другие существенные изменения, пожалуйста, сообщите об этом, так как это, вероятно, является ошибкой.

Открытие базы данных

Существует два способа открытия базы данных:

  • Рекомендовано: var db = window.sqlitePlugin.openDatabase({name: "my.db", location: 1});
  • Классический: var db = window.sqlitePlugin.openDatabase("myDatabase.db", "1.0", "Demo", -1);

Новый параметр location используется для выбора расположения подкаталога базы данных (только для iOS) с помощью следующих вариантов:

  • 0 (по умолчанию): Documents - будет виден через iTunes и будет резервирован копия в iCloud
  • 1: Library - резервируется копия в iCloud, не виден через iTunes
  • 2: Library/LocalDatabase - не виден через iTunes и не резервируется копия в iCloud

ВАЖНО: Пожалуйста, подождите за событием "deviceready", как показано ниже примером:

// Ждать загрузки Cordova
document.addEventListener("deviceready", onDeviceReady, false);

// Cordova готов
function onDeviceReady() {
  var db = window.sqlitePlugin.openDatabase({name: "my.db"});
  // ...
}

ЗАМЕЧАНИЕ: Имя файла базы данных должно включать расширение, если требуется.

Обходной путь для проблемы блокировки базы данных на AndroidПроблема была отмечена. Как было замечено несколькими пользователями, на некоторых новых версиях Android, если приложение останавливается или прерывается без закрытия базы данных, то:

  • (иногда) возникает непредвиденная блокировка базы данных,
  • данные, вставленные до этого, теряются.Предполагается, что эта проблема вызвана этим коммитом Android sqlite, который ссылается и включает коммит sqlite по адресу: http://www.sqlite.org/src/info/6c4c2b7dba

Существует обязательный обходной путь, который просто закрывает и заново открывает файл базы данных в конце каждого завершённого транзакта. Обходной путь активируется путём открытия базы данных следующим образом:

var db = window.sqlitePlugin.openDatabase({name: "my.db", androidLockWorkaround: 1});

ЗАМЕЧАНИЕ: Этот обходной путь применяется только при использовании db.transaction() или db.readTransaction(), не применяется при выполнении executeSql() на объекте базы данных.

Предварительно заполненная база данных

Для Android и iOS (только): поместите файл базы данных в директорию www и откройте его следующим образом:

var db = window.sqlitePlugin.openDatabase({name: "my.db", createFromLocation: 1});

или чтобы отключить резервное копирование iCloud:

db = sqlitePlugin.openDatabase({name: "my.db", location: 2, createFromLocation: 1});

ВАЖНЫЕ УКАЗАНИЯ:- Поместите предварительно заполненный файл базы данных в поддиректорию www. Это должно работать корректно при использовании Cordova CLI для поддержки как Android, так и iOS версий.

  • Имя файла предварительно заполненной базы данных должно точно совпадать с именем файла, указанным в openDatabase. Полное автоматическое расширение было полностью удалено.
  • Предварительно заполненный файл базы данных будет игнорирован, если файл базы данных с таким же именем уже существует в вашей локации базы данных.СОВЕТ: Если вы не видите данные из предварительно заполненного файла базы данных, полностью удалите приложение и попробуйте снова!

Взаимодействие в фоновом режиме

Модель многопоточности зависит от используемой версии:

  • Для Android и WP(8), один фоновый поток на каждую базу данных;
  • для iOS, фоновое выполнение задач с использованием пула потоков;
  • для Windows, нет фонового взаимодействия (будет добавлено позже).

Пример использования функции PRAGMA

Это довольно сильный тест: сначала создаем таблицу и добавляем одну запись, затем выполняем запрос на количество записей, чтобы проверить, была ли запись успешно добавлена. Обратите внимание, что новый транзакционный процесс создаётся в середине первого обратного вызова.

// Ждём загрузки Cordova
document.addEventListener("deviceready", onDeviceReady, false);

// Cordova готов
function onDeviceReady() {
  var db = window.sqlitePlugin.openDatabase({name: "my.db"});
  
  db.transaction(function(tx) {
    tx.executeSql('DROP TABLE IF EXISTS test_table');
    tx.executeSql('CREATE TABLE IF NOT EXISTS test_table (id integer primary key, data text, data_num integer)');
    
    // Демонстрация PRAGMA:
    db.executeSql("pragma table_info(test_table)", [], function(res) {
      console.log("PRAGMA res: " + JSON.stringify(res));
    });
    
    tx.executeSql("INSERT INTO test_table(data, data_num) VALUES (?, ?)", ["test", 100], function(tx, res) {
      console.log("insertId: " + res.insertId + " -- вероятно 1");
      console.log("rowsAffected: " + res.rowsAffected + " -- должно быть 1");
    });
  });
}

Пример с вложенным уровнем транзакцийВ этом случае та же самая транзакция внутри первого вызова executeSql() повторно используется для выполнения executeSql() еще раз.

// Ждём загрузки Cordova
document.addEventListener("deviceready", onDeviceReady, false);

// Cordova готов
function onDeviceReady() {
  var db = window.sqlitePlugin.openDatabase("Database", "1.0", "Demo", -1);

  db.transaction(function(tx) {
    tx.executeSql('DROP TABLE IF EXISTS test_table');
    tx.executeSql('CREATE TABLE IF NOT EXISTS test_table (id integer primary key, data text, data_num integer)');
    
    tx.executeSql("INSERT INTO test_table (data, data_num) VALUES (?,?)", ["test", 100], function(tx, res) {
      console.log("insertId: " + res.insertId + " -- вероятно 1");
      console.log("rowsAffected: " + res.rowsAffected + " -- должно быть 1");

      tx.executeSql("SELECT COUNT(id) AS cnt FROM test_table;", [], function(tx, res) {
        console.log("res.rows.length: " + res.rows.length + " -- должно быть 1");
        console.log("res.rows.item(0).cnt: " + res.rows.item(0).cnt + " -- должно быть 1");
      });
      
    }, function(e) {
      console.log("ОШИБКА: " + e.message);
    });
  });
}

Этот случай также будет работать с Safari (WebKit), предположив, что вы замените window.sqlitePlugin.openDatabase на window.openDatabase.

Удаление базы данных

window.sqlitePlugin.deleteDatabase({name: "my.db", location: 1}, successcb, errorcb);

location, как указано выше для openDatabase (только для iOS)

Примечание: пока не реализовано для Windows (8.1).

Установка

Целевая платформа Windows

**ПРЕДУПРЕЖДЕНИЕ:** Этот вариант находится всё ещё в экспериментальном состоянии. Пожалуйста, внимательно прочитайте и следуйте этим пунктам.- Убедитесь, что ваша среда разработки Cordova обновлена: npm update -g cordova cordova-windows

  • Для создания нового проекта: cordova create MyProjectFolder com.my.project MyProject (и затем выполните команду cd для перехода в директорию вашего проекта)

  • Чтобы добавить плагин: cordova plugin add https://github.com/brodysoft/Cordova-SQLitePlugin

  • Чтобы добавить целевую платформу Windows (если она еще не существует): cordova platform add windows

  • Если вы используете Visual Studio Express (2013), возможно, вам придется удалить сборку Windows 8.0 из решения Visual Studio.

  • Если вы используете Cordova CLI для полностью автоматической установки (как это описано здесь), вы не сможете запустить проект для "Any CPU". Пожалуйста, укажите тип процессора (например, x86 или x64). Чтобы использовать все доступные CPU: создайте клон этого проекта и в вашем клоне удалите (или закомментируйте) элемент, который включает проект SQLite3-Windows8.1.vcxproj:```xml --- a/plugin.xml +++ b/plugin.xml @@ -79,8 +79,6 @@

  •    <!-- Спасибо за предоставленный проект от AllJoyn-Cordova / cordova-plugin-alljoyn: -->
  •    <framework src="src/windows/SQLite3-WinRT/SQLite3/SQLite3-Windows8.1.vcxproj" custom="true" type="projectReference" target="windows" />

Затем:
- Установите плагин из расположения вашего клона (может находиться в вашей файловой системе);
- Добавьте целевую платформу Cordova `windows`;
- Откройте решение для целевой платформы Windows, и добавьте проект `SQLite3-Windows8.1.vcxproj` (расположенный в `path.to.plugin/src/windows/SQLite3-WinRT/SQLite3`) в ваше решение приложения.

## Легкий способ установки с помощью инструмента plugman

```shell
plugman install --platform MYPLATFORM --project path.to.my.project.folder --plugin https://github.com/brodysoft/Cordova-SQLitePlugin

где MYPLATFORM может быть android, ios, или wp8.

Публикация, как начать разработку на хосте Windows без использования инструмента Cordova CLI (только для целевой платформы Android), доступна здесь.

ОБСЛУЖИВАНИЕ: Автоматическая установка для целевой платформы Windows не поддерживается инструментом plugman.

Легкий способ установки с помощью инструмента Cordova CLI

npm install -g cordova # если у вас нет cordova
cordova create MyProjectFolder com.my.project MyProject && cd MyProjectFolder # если вы только начинаете
cordova plugin add https://github.com/brodysoft/Cordova-SQLitePlugin

**ВНИМАНИЕ:** Для целевой платформы Windows прочтите раздел выше.

**ВАЖНО:** Иногда вам потребуется обновить версию для платформы перед сборкой, например: `cordova prepare ios`

**ОБСЛУЖИВАНИЕ:** Если вы не можете собрать для платформы после `cordova prepare`, возможно, вам придется удалить платформу и снова её добавить, например:

cordova platform rm ios cordova platform add ios


## Исходное дерево

- `SQLitePlugin.coffee.md`: независимый от платформы (литературный кофейный скрипт, который может быть прочтен современным компилятором CoffeeScript)
- `www`: `SQLitePlugin.js` теперь независим от платформы
- `src`: Java-код плагина для Android; Objective-C-код плагина для iOS; C#-код и DLL для WP(8)
- `simple-test-windows`: простой набор тестов для версии Windows с использованием Jasmine (1.3.1)
- `test-www`: простое тестирование в `index.html` с использованием qunit 1.5.0 (не работает на целевой платформе Windows)
- `Lawnchair-adapter`: адаптер Lawnchair, основанный на версии из репозитория Lawnchair, с базовым набором тестов Lawnchair в подпапке `test-www`

## Ручная установка — версия для Android

Эти инструкции по установке основаны на примере проекта для Android из Cordova/PhoneGap 2.7.0. Для первой установки распакуйте архив PhoneGap 2.7 и используйте подпапку `lib/android/example`. - Установите `www/SQLitePlugin.js` из этого репозитория в подпапку `assets/www`
 - Установите `src/android/org/pgsqlite/SQLitePlugin.java` из этого репозитория в подпапку `src/org/pgsqlite`
 - Добавьте элемент плагина `<plugin name="SQLitePlugin" value="org.pgsqlite.SQLitePlugin"/>` в `res/xml/config.xml`Пример изменения файла `config.xml` для Cordova/PhoneGap 2.x:

```diff
--- config.xml.orig	2013-07-23 13:48:09.000000000 +0200
+++ res/xml/config.xml	2013-07-23 13:48:26.000000000 +0200
@@ -36,6 +36,7 @@
     <preference name="useBrowserHistory" value="true" />
     <preference name="exit-on-suspend" value="false" />
 <plugins>
+    <plugin name="SQLitePlugin" value="org.pgsqlite.SQLitePlugin"/>
     <plugin name="App" value="org.apache.cordova.App"/>
     <plugin name="Geolocation" value="org.apache.cordova.GeoBroker"/>
     <plugin name="Device" value="org.apache.cordova.Device"/>

Перед первым сборкой проекта вам нужно обновить проект до нужной версии Android SDK командой типа:

android update project --path $(pwd) --target android-17

(предполагается использование Android SDK Yöntem 17, замените номер SDK на нужный)

ПРИМЕЧАНИЕ: использование этого плагина в Cordova до версии 3.0 требует следующего изменения в SQLitePlugin.java:```diff --- src/android/org/pgsqlite/SQLitePlugin.java 2013-09-10 21:36:20.000000000 +0200 +++ SQLitePlugin.java.old 2013-09-10 21:35:14.000000000 +0200 @@ -17,8 +17,8 @@

import java.util.HashMap;

-import org.apache.cordova.CordovaPlugin; -import org.apache.cordova.CallbackContext; +import org.apache.cordova.api.CordovaPlugin; +import org.apache.cordova.api.CallbackContext;

import android.database.Cursor;


## Руководство по установке вручную — версия для iOS

### Библиотека SQLite

В разделе "Project Build Phases", выберите первый выпадающий список "Link Binary with Libraries" и добавьте библиотеку `libsqlite3.dylib` или `libsqlite3.0.dylib`.

**ЗАМЕЧАНИЕ:** В разделе "Build Phases" может быть несколько выпадающих списков "Link Binary with Libraries". Пожалуйста, выберите первый, иначе это не будет работать.

### Плагин SQLite

Перетяните файлы .h и .m в папку Plugins вашего проекта (в Xcode) — я всегда просто выбираю опцию "Создать ссылки".

---

**ПРИМЕЧАНИЕ:** использование этого плагина в Cordova до версии 3.0 требует следующего изменения в `SQLitePlugin.java`.Используйте заранее скомпилированный файл JavaScript из папки build/, либо скомпилируйте файл CoffeeScript из папки src/ в JavaScript с использованием опции обёртки функцией на уровне верхнего уровня (по умолчанию).

Используйте полученный файл JavaScript в вашем HTML.

Включите плагин SQLitePlugin в файле `config.xml` (Cordova/PhoneGap 2.x):

```diff
--- config.xml.old	2013-05-17 13:18:39.000000000 +0200
+++ config.xml	2013-05-17 13:18:49.000000000 +0200
@@ -39,6 +39,7 @@
     <content src="index.html" />

     <plugins>
+        <plugin name="SQLitePlugin" value="SQLitePlugin" />
         <plugin name="Device" value="CDVDevice" />
         <plugin name="Logger" value="CDVLogger" />
         <plugin name="Compass" value="CDVLocation" />

Руководство по установке вручную — версия для Windows

TODO

Руководство по установке вручную — версия для WP(8)

TODO

Быстрый тест установки```diff

--- index.html.old 2012-08-04 14:40:07.000000000 +0200 +++ assets/www/index.html 2012-08-04 14:36:05.000000000 +0200 @@ -24,7 +24,35 @@ <title>PhoneGap</title> <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>

  •  <script type="text/javascript" charset="utf-bk" src="main.js"></script>
  •  <script type="text/javascript" charset="utf-8" src="SQLitePlugin.js"></script>
  •  <script type="text/javascript" charset="utf-8">
  •  document.addEventListener("deviceready", onDeviceReady, false);
  •  function onDeviceReady() {
  •    var db = window.sqlitePlugin.openDatabase("Database", "1.0", "Демонстрация", -1);
  •    db.transaction(function(tx) {
  •      tx.executeSql('DROP TABLE IF EXISTS test_table');
  •      tx.executeSql('CREATE TABLE IF NOT EXISTS test_table (id integer primary key, data text, data_num integer)');
  •      tx.executeSql("INSERT INTO test_table (data, data_num) VALUES (?,?)", ["test", 100], function(tx, res) {
  •      console.log("insertId: " + res.insertId + " -- возможно 1"); // проверка #18/#38
  •      alert("insertId: " + res.insertId + " -- должно быть валидным");
  •        db.transaction(function(tx) {
  •          tx.executeSql("SELECT data_num FROM test_table;", [], function(tx, res) {
  •            console.log("res.rows.length: " + res.rows.length + " -- должно быть 1");
  •            alert("res.rows.item(0).data_num: " + res.rows.item(0).data_num + " -- должно быть 100");
  •          });
  •        });
  •      }, function(e) {
  •        console.log("Ошибка: " + e.message);
  •      });
  •    });
  •  }
  •  </script>

# Общие ловушки и проблемы- Имя плагина начинается с "SQL" в верхнем регистре, но имя объекта `sqlitePlugin` в JavaScript начинается с "sql" в нижнем регистре.
- Попытка открыть базу данных до получения обратного вызова события "deviceready".

# Поддержка

## Отчет о проблемах

Если у вас возникли проблемы с плагином, пожалуйста, проверьте следующее:
- Вы используете последнюю версию JavaScript плагина и платформенно-специфического Java или Objective-C из этого репозитория.
- Вы правильно установили JavaScript и платформенно-специфический Java или Objective-C.
- Вы указали правильную версию JavaScript Cordova и SQLitePlugin.js и правильно указали пути.
- Вы правильно зарегистрировали плагин в `config.xml`.

Если вы всё ещё не можете решить проблему:
- Создайте самый простой тестовый проект, чтобы продемонстрировать проблему, включая следующие характеристики:
  - он полностью самодостаточен, то есть использует только библиотеки Cordova и SQLitePlugin.js;
  - если проблема связана с добавлением данных в таблицу, что тестовый проект включает в себя запросы, использованные для открытия базы данных и создания таблицы;
  - если проблема связана с извлечением данных из таблицы, что тестовый проект включает в себя запросы, использованные для открытия базы данных, создания таблицы и внесения данных, которые вы пытаетесь получить.Затем вы можете [создать новый отчет о проблеме](https://github.com/brodysoft/Cordova-SQLitePlugin/issues/new).

## Контактное сообщество

Если у вас есть вопросы по поводу плагина, пожалуйста, опубликуйте их на [форуме Cordova-SQLitePlugin](http://groups.google.com/group/Cordova-SQLitePlugin).

**Примечание:** Пожалуйста, отправляйте все ошибки на [brodysoft / Cordova-SQLitePlugin / issues](https://github.com/brodysoft/Cordova-SQLitePlugin/issues), чтобы они могли быть правильно отслежены.

# Единичные тесты

Единичные тесты выполняются в `test-www/`.

## Запуск тестов из командной строки

Чтобы запустить тесты из командной строки \*nix, просто выполните одно из следующих действий:

```bash
./bin/test.sh ios

или для Android:

./bin/test.sh android

Чтобы запустить тесты из командной строки Windows PowerShell, выполните одно из следующих действий:

.\bin\test.ps1 android

или для Windows Phone 8:

.\bin\test.ps1 wp8

Адаптеры

Адаптер Lawnchair

Общий адаптер

Пожалуйста, просмотрите дерево Lawnchair-adapter, которое содержит общий адаптер, который также должен работать с версией Android, а также директорию test-www.

Включаемые файлы

Включите следующие JavaScript-файлы в ваш HTML:

  • cordova.js (не забудьте!)
  • lawnchair.js (вы предоставляете)
  • SQLitePlugin.js (в случае Cordova до версии 3.0)
  • Lawnchair-sqlitePlugin.js (обязательно следует за SQLitePlugin.js в случае Cordova до версии 3.0)

Пример

Параметр name определяет имя файла базы данных SQLite, без автоматически добавляемого расширения. По желанию вы можете изменить его с помощью параметра db.В этом примере вы будете использовать/создавать базу данных с именем файла kvstore:

kvstore = new Lawnchair({name: "kvstore"}, function() {
    // выполняйте действия
});

С использованием параметра db можно указать имя файла с требуемым расширением и создать несколько хранилищ в одном файле базы данных. (Будут созданы одна таблица на каждое хранилище.)

recipes = new Lawnchair({db: "cookbook", name: "recipes", ...}, myCallback());
ingredients = new Lawnchair({db: "cookbook", name: "ingredients", ...}, myCallback());

ИЗВЕСТНАЯ ПРОБЛЕМА: новые параметры базы данных не поддерживаются адаптером Lawnchair. Обходной путь — открыть файл базы данных с помощью sqlitePlugin.openDatabase().

PouchDB

Адаптер теперь является частью PouchDB благодаря @nolanlawson, см. PouchDB FAQ.

УчастиеВНИМАНИЕ: Пожалуйста, не предлагайте изменения из вашей master ветки. Общепринятое правило — изменения будут переформированы с помощью git rebase или git cherry-pick, а не объединены.

Отзывы от приложений, использующих этот плагин, будут особенно полезны.
Донесение проблем в разделе brodysoft / Cordova-SQLitePlugin / issues поможет улучшить качество этого плагина.
Корректировки с исправлением ошибок полезны, особенно если они сопровождаются тестовым кодом.
Любые улучшения приветствуются, когда они сопровождаются тестовым кодом и работают для всех поддерживаемых платформ. Увеличение сложности следует избегать.
Все вклады могут быть переиспользованы @brodybits (Крис Броди) под другим лицензионным соглашением в будущем. Будут предприняты усилия, чтобы присвоить заслугу за значительные вклады, но это не гарантируется.
Перестроение проекта, то есть перемещение файлов и/или директорий, следует избегать, если возможно. Если вы видите необходимость в перестроении, лучше всего спросить сначала на форуме Cordova-SQLitePlugin forum, где альтернативы можно обсудить до принятия решения. Если вы хотите предложить изменения в структуре проекта:
Создайте специальную ветку внутри вашего форка, откуда вы можете отправить предлагаемое переустройство; - Всегда используйте git mv, чтобы переместить файлы и директории;

  • Никогда не смешивайте операцию перемещения/переименования и любые другие изменения в одном коммите. ## Основные ветки- common-src - исходный код для версий Android и iOS
  • new-src - исходный код для версий Android, iOS и Windows (8.1)
  • new-rc - предварительная версия для Windows (8.1), включает исходный код библиотеки SQLite-WinRT C++
  • master-src - исходный код для версий Android, iOS и WP(8)
  • master-rc - предварительная версия, включает исходный код классов библиотеки CSharp-SQLite
  • master - версия для выпуска, будет включена в сборку PhoneGap.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Плагин Cordova/PhoneGap для открытия и использования баз данных sqlite на Android/iOS/Windows(8.1)/WP(8) с помощью HTML5 Web SQL API. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/nighwyx-Cordova-SQLitePlugin.git
git@api.gitlife.ru:oschina-mirror/nighwyx-Cordova-SQLitePlugin.git
oschina-mirror
nighwyx-Cordova-SQLitePlugin
nighwyx-Cordova-SQLitePlugin
master