Добавление автономной синхронизации данных в приложение Apache Cordova
Заметка
Этот продукт отставлен. Сведения о замене проектов с помощью .NET 8 или более поздней версии см. вбиблиотеке
В этом руководстве рассматривается функция автономной синхронизации мобильных приложений Azure для приложения быстрого запуска Apache Cordova. Автономная синхронизация позволяет конечным пользователям взаимодействовать с мобильным приложением — просматривать, добавлять или изменять данные, даже если сетевое подключение отсутствует. Изменения хранятся в локальной базе данных. После возврата устройства эти изменения синхронизируются с удаленной серверной частью.
Перед началом работы с этим руководством необходимо выполнить краткое руководство по использованию Apache Cordova, включающее создание подходящей серверной службы.
Дополнительные сведения о функции автономной синхронизации см. в статье автономной синхронизации данных в мобильных приложениях Azure.
Обновление приложения для поддержки автономной синхронизации
В оперативной операции вы используете getTable()
для получения ссылки на таблицу в Интернете. При реализации автономных возможностей вы используете getSyncTable()
для получения ссылки на автономное хранилище SQlite. Хранилище SQlite предоставляется подключаемым модулем Apache Cordova cordova-sqlite-storage
.
Заметка
Автономная синхронизация доступна только для Android и iOS. Он не будет работать в спецификации платформы браузера.
В файле www/js/index.js
:
Обновите метод
initializeStore()
, чтобы инициализировать локальную базу данных SQlite:function initializeStore() { store = new WindowsAzure.MobileServiceSqliteStore(); var tableDefinition = { name: 'todoitem', columnDefinitions: { id: 'string', deleted: 'boolean', version: 'string', Text: 'string', Complete: 'boolean' } }; return store .defineTable(tableDefinition) .then(initializeSyncContext); } function initializeSyncContext() { syncContext = client.getSyncContext(); syncContext.pushHandler = { onConflict: function (pushError) { return pushError.cancelAndDiscard(); }, onError: function (pushError) { return pushError.cancelAndDiscard(); } }; return syncContext.initialize(store); }
Обновите метод
setup()
, чтобы использовать автономную версию таблицы:function setup() { todoTable = client.getSyncTable('todoitem'); refreshDisplay(); addItemEl.addEventListener('submit', addItemHandler); refreshButtonEl.addEventListener('click', refreshDisplay); }
Замените метод
syncLocalTable()
, который синхронизирует данные в автономном хранилище с интернет-магазином:function syncLocalTable() { return syncContext.push().then(function () { return syncContext.pull(new WindowsAzure.Query('todoitem')); }); }
Создание приложения
Выполните следующие команды, чтобы создать приложение Android:
cordova clean android
cordova build android
Вы можете запустить приложение:
cordova run android
Тестирование в Visual Studio Code
Вы можете использовать отладчик в Visual Studio Code, если установлено расширение Cordova Tools. Щелкните отладчик, а затем создайте файл launch.json
. При появлении запроса выберите Cordova, а затем выберите конфигурации (например, запустить Android в эмуляторе). После создания конфигурации запуска можно запустить приложение в отладчике. Он запустится в выбранном эмуляторе. Однако теперь вы сможете просмотреть выходные данные отладки в консоли отладки.
Тестирование приложения
В этом разделе проверьте поведение с wi-fi, а затем отключите WiFi, чтобы создать автономный сценарий.
Элементы в списке дел хранятся в базе данных SQLite на устройстве. При обновлении данных изменения отправляются в службу (push). Затем приложение запрашивает все новые элементы (вытягивание). В руководстве обновление выбрано путем нажатия значка или с помощью команды "Вытягивание для обновления".
- Поместите устройство или симулятор в режим самолета .
- Добавьте некоторые элементы Todo или пометьте некоторые элементы как завершенные.
- Закройте устройство или симулятор (или принудительно закройте приложение) и перезапустите приложение.
- Убедитесь, что изменения сохранены на устройстве.
- Просмотрите содержимое таблицы Azure
TodoItem. Используйте средство SQL, например SQL Server Management Studio, или клиент REST, например Curl. Убедитесь, что новые элементы не были синхронизированы с сервером - Включите Wi-Fi на устройстве или симуляторе.
- Обновите данные, выполнив команду "вытягивание для обновления" или нажав значок обновления.
- Снова просмотрите данные таблицы todoItem
TodoItem. Теперь должны появиться новые и измененные элементы.
Дальнейшие действия
Продолжайте реализовывать проверки подлинности.