Поделиться через


Добавление автономной синхронизации данных в приложение Apache Cordova

Заметка

Этот продукт отставлен. Сведения о замене проектов с помощью .NET 8 или более поздней версии см. вбиблиотеке Community Toolkit Datasync.

В этом руководстве рассматривается функция автономной синхронизации мобильных приложений Azure для приложения быстрого запуска Apache Cordova. Автономная синхронизация позволяет конечным пользователям взаимодействовать с мобильным приложением — просматривать, добавлять или изменять данные, даже если сетевое подключение отсутствует. Изменения хранятся в локальной базе данных. После возврата устройства эти изменения синхронизируются с удаленной серверной частью.

Перед началом работы с этим руководством необходимо выполнить краткое руководство по использованию Apache Cordova, включающее создание подходящей серверной службы.

Дополнительные сведения о функции автономной синхронизации см. в статье автономной синхронизации данных в мобильных приложениях Azure.

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

В оперативной операции вы используете getTable() для получения ссылки на таблицу в Интернете. При реализации автономных возможностей вы используете getSyncTable() для получения ссылки на автономное хранилище SQlite. Хранилище SQlite предоставляется подключаемым модулем Apache Cordova cordova-sqlite-storage.

Заметка

Автономная синхронизация доступна только для Android и iOS. Он не будет работать в спецификации платформы браузера.

В файле www/js/index.js:

  1. Обновите метод 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);
    }
    
  2. Обновите метод setup(), чтобы использовать автономную версию таблицы:

    function setup() {
        todoTable = client.getSyncTable('todoitem');
        refreshDisplay();
        addItemEl.addEventListener('submit', addItemHandler);
        refreshButtonEl.addEventListener('click', refreshDisplay);
    }
    
  3. Замените метод 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). Затем приложение запрашивает все новые элементы (вытягивание). В руководстве обновление выбрано путем нажатия значка или с помощью команды "Вытягивание для обновления".

  1. Поместите устройство или симулятор в режим самолета .
  2. Добавьте некоторые элементы Todo или пометьте некоторые элементы как завершенные.
  3. Закройте устройство или симулятор (или принудительно закройте приложение) и перезапустите приложение.
  4. Убедитесь, что изменения сохранены на устройстве.
  5. Просмотрите содержимое таблицы Azure TodoItem. Используйте средство SQL, например SQL Server Management Studio, или клиент REST, например Curl. Убедитесь, что новые элементы не были синхронизированы с сервером
  6. Включите Wi-Fi на устройстве или симуляторе.
  7. Обновите данные, выполнив команду "вытягивание для обновления" или нажав значок обновления.
  8. Снова просмотрите данные таблицы todoItem TodoItem. Теперь должны появиться новые и измененные элементы.

Дальнейшие действия

Продолжайте реализовывать проверки подлинности.