Модуль для Cordova (iOS или Android)
Мы разрабатываем клиентские приложения на базе Cordova. Таких приложений несколько десятков и на данный момент мы обновляем их по стандартной процедуре: пересборка и отправка на модерацию в магазин, что занимает много времени и создает некоторые неудобства.
Мы хотим ускорить процесс обновления и для достижения этой цели необходимо разработать плагин для Cordova, который будет обновлять файлы в www-контейнере минуя основной магазин приложений (App Store, Google Play и другие), скачивая свежую версию файлов с сервера. Плагин с подобной функциональностью уже существует, но, к сожалению, с новыми версиями iOS и Android уже не работает:
nordnet/cordova-hot-code-push.
Вариантов решения задачи может быть два: (обсудим)
- Написать новый плагин, заточенный конкретно под наши нужды (можно условно разделить на два этапа):
- Автоматическая работа
- Возможность конфигурирования поведения плагина и ручное управление
- Довести до ума уже существующий плагин cordova-hot-code-push (исправить неработающие части)
Схема работы плагина:
- В проекте приложения с данным плагином будет находится конфигурационный файл, в котором прописываются необходимые для работы настройки: см. Параметры (ниже).
- Во время запуска приложения, еще до события “device-ready”, плагин должен осуществить попытку соединения с сервером для получения команды на обновление.
- В случае получения команды на обновление, в зависимости от “Способа установки новой версии” (см. Параметры) плагин будет работать по-разному:
- При “установке сразу при получении команды” приложение скачивает и производит установку, в это время на экране продолжает показываться сплешскрин. При обрыве соединения или таймауте приложение прекращает процедуру обновления и продолжает инициализацию по стандартной схеме.
- При “установке при следующем запуске” приложение продолжает стандартную процедуру инициализации без блокировки экрана, а загрузка нового контента осуществляется в фоновом режиме. Установка же будет осуществлена уже при следующем запуске приложения. Причем уже при следующем запуске приложение блокируется на экране со сплешскрином до установки новой версии. Важное примечание: при “установке при следующем запуске” этап проверки на новую версию все равно должен быть осуществлен, и это должно произойти перед попыткой установки: если плагин обнаружит, что появилась более свежая версия, то он должен скачать с сервера новую и заменить ей ту, которая была скачана в прошлый раз, а затем уже производить установку).
- Обновление файла конфигурации. При получении ответа от сервера помимо команды на обновления, сервер может попросить обновить файл конфигурации плагина, например изменить способ установки новой версии.
- Ручной вызов различных методов из webview (условно второй этап, обсудим): запрос на проверку необходимости обновления, принудительный запуск обновления и т.п.
Параметры: (конфигурационный файл)
- URL для получения команды на обновление (структуру ответа обсудим подробнее перед началом работ)
- Исходная версия приложения (та, которая будет указана в магазине на момент загрузки сборки в стор)
- Таймаут попытки соединения
- Способ установки новой версии:
- Установка сразу при получении команды
- Установка при следующем запуске
- Отключение плагина (должна быть возможность его просто отключить)
Обработка ошибок:
- В случае нештатной работы плагина (какой-либо из этапов нарушен, что-то не получилось сделать, после обновления приложение перестало запускаться, и прочее):
- Плагин сбрасывает состояние на момент последней исправной версии и продолжает работу в штатном режиме.
- Последующие запросы к серверу на получение команды на обновление должны содержать в себе данные о произошедшем сбое. Эта информация будет слаться с каждым таким запросом до тех пор, пока плагин штатно и без ошибок не обновится до следующей версии. Структуру данных обсудим подробнее перед началом работ.
- (опционально, по согласованию) Мы используем в наших проекта Sentry, хотелось бы прикрутить к плагину SDK для работы с этой системой, чтобы мы могли отслеживать ошибки обновлений на уровне Cordova.
Требования:
- Плагин должен работать с iOS (начиная с версии iOS 11.2) и Android (начиная с версии 5.1).
- Плагин должен поддерживать версию Cordova 10 (и желательно 11).
- Плагин необходимо оформить в виде стандартного плагина для Cordova в виде репозитория.
Мы предоставим:
- Доступ к репозиторию с проектом (который нужно будет развернуть у себя)
- Быструю реакцию на уточняющие вопросы по ТЗ и во время выполнения задания (в будние дни)
- Свободу выбора решений по обмену данными с сервером и по самой реализации плагина
Moscow.media
Частные объявления сегодня
Подведены итоги конкурса «Мы верим твердо в героев спорта»
В Москве ежегодно состоялся юбилейный, всероссийский, патриотический гала-концерт «Проза и поэзия» «Россия - семья семей»
Стоит ли отдавать ребенка в частную школу?
Можно ли перевестись из одной автошколы в другую в процессе обучения?
Чемпионы Дона по киокусинкай провели турнир в Marins Park Hotel Ростов
В Москве пройдёт гастрономический фестиваль «Русская кухня»
Кристина Орбакайте ставит точку в своих отношениях с Россией
Пластический хирург Александр Вдовин: как избавиться от мешков под глазами
My mother and I were still estranged when she died in 2019. I went to a medium to connect with her and it brought me closure.
Inexperienced Secret service agent called tech support hotline for help piloting drone ahead of Trump rally shooting: bombshell report
Raging Richarlison slams ‘f***ing s***’ card as Tottenham star’s EA FC 25 rating is revealed
Every time we go on holiday my husband ogles other women on the beach
Беспроводной сканер штрих-кодов SAOTRON P05i промышленного класса
Для ремонта дорог в Петербурге в 2025 году ищут подрядчиков
Hybrid запустил онлайн-академию Hybrid Training Hub
Elgato Game Capture Neo review
Ранняя версия Mini Empire: Hero Never Cry с русским языком доступна в Google Play
Мультиплеерный данжен-кроулер Greedy Wizards: Speed Dungeon вышел в новой стране на iOS и Android
Мафия-НН: Густой аромат армянского кофе наполнил воздух старательно украшенной гостиной.
Стоит ли отдавать ребенка в частную школу?
Стоит ли отдавать ребенка в частную школу?
Фестиваль «Песня года» 2024 состоится в ДС «Мегаспорт» в Москве
Подведены итоги конкурса «Мы верим твердо в героев спорта»
Модель нового памятника для Приамурья осмотрел губернатор Василий Орлов
Подведены итоги конкурса «Мы верим твердо в героев спорта»
В России цены на линейку iPhone 16 снизились на 8-10 процентов
Подведены итоги конкурса «Мы верим твердо в героев спорта»
Певица Натали Орли вернулась к истокам
Захарова: Обязательства по расследованию теракта на «Севпотоках» не выполняются
Как кирпичные традиции Иваново вдохновляют современные проекты
ТАСС: в ходе обысков в доме Тимура Иванова найдено огнестрельное оружие
Рахимова обыграла Биррелл и вышла во второй круг WTA 1000 в Пекине
«Теннисистки заслуживают зарабатывать на равных с мужчинами». Веснина выступила за соразмерные призовые
Камилла Рахимова вышла во второй круг WTA-1000 в Пекине, обыграв Кимберли Биррелл
Сафиуллин проиграл Синнеру и не смог выйти в четвертьфинал теннисного турнира в Пекине
Захарова: Обязательства по расследованию теракта на «Севпотоках» не выполняются
Адвокат: Алексей Блиновский не вернулся в зону СВО из-за участия в следствии по делу Пашаева
Певица Натали Орли вернулась к истокам
Азербайджанца-русофоба Амида Юсубова, призывавшего ненависти к русским, приговорили к 3,5 годам заключения
Музыкальные новости
«Как здорово, что все мы здесь сегодня собрались»: Олег Митяев выступит в День тигра во Владивостоке
Депутат ЗСК Виктор Тепляков принял участие в 44-й сессии региональной Думы
Озвучено, сколько заработал музыкант Юрий Башмет на своей фирме
Подведены итоги конкурса «Мы верим твердо в героев спорта»
Фестиваль «Песня года» 2024 состоится в ДС «Мегаспорт» в Москве
Стоит ли отдавать ребенка в частную школу?
Стоит ли отдавать ребенка в частную школу?
Подведены итоги конкурса «Мы верим твердо в героев спорта»
Лукашенко назвал условие, при котором Минск применит ядерное оружие
Президент РПЛ Александр Алаев отреагировал на заявление футболиста Глушенкова
ТНТ и Кинопоиск представляют первый тизер новогоднего телефильма «Небриллиантовая рука»
На матче "ЦСКА-Динамо" родилась новая семья
Певица Натали Орли вернулась к истокам
С 1 ноября изменится стоимость парковки на ряде улиц Москвы
Автомобили с 1 октября подорожают из-за новых ставок утильсбора
Доцент Фиронов: машины резко подорожают из-за новых ставок утильсбора с октября
Американская разведка предупредила Байдена: Путин не пошутил, Зеленский тянет нас в ад
Рябков: Россия фиксирует реакцию Запада на изменения своей ядерной политики
Политический директор премьера Венгрии: наша страна сдалась бы в случае
Рябков назвал «развернутой» реакцию Запада на заявления по ядерной доктрине РФ
Педагогов обучат навыкам первой медицинской помощи
«Затруднилось дыхание, опустилось веко»: россиянка заразилась ботулизмом после приема у косметолога
Осень или организм: врач объяснил, кто виноват в усиленном выпадении волос
Кузнецов попал в больницу после матча КХЛ с «Северсталью»
Представители Росгвардии поздравили воспитанников Центра спорта и образования «Самбо-70» с принятием торжественной клятвы
Подведены итоги конкурса «Мы верим твердо в героев спорта»
Олимпийские ценности: доступное жилье в Иваново сдадут по улучшенному стандарту
Подведены итоги конкурса «Мы верим твердо в героев спорта»
Лукашенко назвал условие, при котором Минск применит ядерное оружие
«Россия за нас втягивается…» Лукашенко грозит НАТО ядерным оружием
Лукашенко дал ответ на вопрос, в каком случае Минск применит ядерное оружие
Как только НАТО нападет на Беларусь, будет применено ядерное оружие – Лукашенко
Собянин: МЦД продлят до Калужской, Смоленской, Тульской и Ярославской областей
Сергей Собянин заявил о продлении наземного метро Москвы в Тульскую область
«В ближайшие регионы»: Собянин анонсировал продление МЦД до четырёх областей
Собянин пообещал продлить скоростные диаметры Москвы в Ярославскую область
«Чистая Арктика» разработает стандарт сбора и вывоза отходов из удаленных мест
Первое армянское название в Москве
Собянин посоветовал москвичам пересаживаться на электромобили
Под Симферополем продолжается строительство нового крупного микрорайона
Как кирпичные традиции Иваново вдохновляют современные проекты
Азербайджанца-русофоба Амида Юсубова, призывавшего ненависти к русским, приговорили к 3,5 годам заключения
Певица Натали Орли вернулась к истокам
Врач Войтко рассказал, можно ли избежать рака простаты
ТСД SAOTRON RT41 GUN: практичный, производительный, надёжный
В Гидрометцентре прогнозируют температуру на 6-10°С выше нормы в нескольких регионах России
В пропавшем в Архангельской области вертолете находился депутат Сметанин
Прокуратура проверяет информацию о пропаже вертолета в Архангельской области
Прогноз погоды в Крыму на 26 сентября
Творческая композиция «Диво дивное руки творят».
В районе Симферополя появится необычный жилой квартал
В Симферополе появится новый бизнес-центр “Крымский”
Глава МИД Белоруссии: действующая модель безопасности в мире «трещит по швам»
Ефимов: неэффективно используемые участки в СВАО реорганизуют по программе КРТ
Вратарь ульяновской «Волги» Игорь Трушкин: «Сухари» - не главное»
В новый закон о такси могут внести изменения