Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

Обновить страницу Inapbrowser в приложении Apache Cordova, при выходе из фона

Просмотров: 1684 Задача: Мобильное приложение, созданное на Apache Cordova должно перезагрузить текущую страницу, открытую с помощью плагина inappbrowser.
Обновить страницу Inapbrowser в приложении Apache Cordova, при выходе из фона

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

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

Реализация события onResume в Cordova

В Apache Cordova есть встроенное событие resume, которое срабатывает, когда приложение возвращается из фонового режима. Мы будем использовать его.

На сайте, который загружается в приложение, необходимо добавить скрипт, который просто обновит текущую страницу по событию resume. Скрипт подключается глобально на всем сайте, чтобы он был доступен на всех страницах.

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
	document.addEventListener("resume", onResume, false);
	function onResume() {
	     setTimeout(function() {
		location.reload;
	    }, 2);
        }
}

Здесь мы отслеживаем готовность устройства с помощью onDeviceReady, который существует только в мобильном приложении и не сработает, если сайт будет открыт в обычном браузере. С использованием таймаута в две миллисекунды мы обновляем страницу.

Без таймаута событие может не сработать на устройствах iOS, а две миллисекунды почти не заметны для пользователя.

Проброс API Cordova в InAppBrowser

Обратите внимание: все API Apache Cordova не будут работать внутри InAppBrowser просто так. Для того чтобы "пробросить" работу всех плагинов и событий Cordova в InAppBrowser, не забудьте установить соответствующий плагин.

cordova plugin add cordova-plugin-remote-injection

Также открытие сайта внутри приложения должно быть выполнено в режиме _self. Пример открытия сайта из одного из реальных проектов, код в index.html:

document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady() {
    ref = cordova.InAppBrowser.open(
        'https://ВАШ_САЙТ_ПРИЛОЖЕНИЕ.ru/',
        '_self',
        'location=no, zoom=no, toolbar=no'
    );
}

Услуги Стоимость разработки на 1С-Битрикс

Стоимость разработки сайта зависит от объёма и сложности проекта. Ниже приведены ориентировочные цены, как правило не выходят за обозначенные рамки. Срок разработки зависит от сложности проекта: как правило называю сроки с запасом.
Финальная стоимость и сроки разработки обговариваются на этапе обсуждения. Скачайте опросник на разработку, заполните как можно подробнее и вышлите удобным способом. После ознакомления смогу задать уточняющие вопросы и оценить проект.
Индивидуальная разработка магазина
от 300 000 руб. от 5-ти недель

Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Подробнее
Сайт на готовом решении 1С-Битрикс
от 70 000 руб. от 5-ти дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Подробнее
Мобильное приложение
от 300 000 руб. от 4-х недель

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Подробнее
Сайт компании
от 150 000 руб. от 2-х недель

Корпоративный сайт с информационными разделами, каталогом товаров или услуг. Включает формы обратной связи карточек каталога, любое количество статичных и динамичных разделов.

Подробнее
Инфоресурс
от 170 000 руб. от 3-х недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

Подробнее
Поддержка и доработки проектов
от 3 000 руб. от 1 часа

Выполнение доработок любой сложности. Поддержка, модернизация и расширение функционала существующих проектов. Решение задач: от мелких правок вёрстки до разработки новых модулей.

Подробнее

Включено в стоимость разработки:

  • Лицензия на 1С-Битрикс необходимой редакции, дополнительные модули, для реализации функционала и видео-инструкции по работе с готовым проектом
  • Оптимизация программной части проекта и конфигурации сервера под максимальную скорость работы. Базовая СЕО оптимизация и добавление сайта в поисковые системы.

Блог-note Заметки по 1С-Битрикс