Меню
RSS
Стрим №5: Оффлайн доступ в мобильном приложении (бонус видео)
 
Стрим №5: Оффлайн доступ в мобильном приложении (бонус видео)

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

Что бы и в таком случае отдать оффлайн страницу, добавляем плагин inappbrowser
На индексной странице добавляем:
Код
  <script>
        document.addEventListener("deviceready", onDeviceReady, false);
        function onDeviceReady() {
            document.addEventListener("offline", onOffline, false);

            function onOffline(e) {
                e.preventDefault();
                var src = '/offline.html';
                var target = '_self';
                var option = "location=no, toolbar=no, zoom=no, hidden=yes, hardwareback=no, hideurlbar=yes,hidenavigationbuttons=yes";
                var ref = cordova.InAppBrowser.open(src, target, option);
            }

            var target = "_blank";
            var options = "location=no,toolbar=no,hideurlbar=yes,hidenavigationbuttons=yes,lefttoright=yes,zoom=no";
            var opensite = cordova.InAppBrowser.open('https://ВАШ_САЙТ/', target, options);

        }
    </script>

На локальной странице offline.html делаем, собственно оффлайн странику с красивой версткой или алертом.
На нейже, можно добавить проверку события (document.addEventListener("ofnline", onOnline, false);) - появления сети и автоматически возвращать пользователя на сайт.
 
Можно вообще избавиться от страницы с ошибкой браузера?
Цитата
Цитата
написал:
На локальной странице offline.html делаем, собственно оффлайн странику с красивой версткой или алертом.На нейже, можно добавить проверку события (document.addEventListener("ofnline", onOnline, false) - появления сети и автоматически возвращать пользователя на сайт.
А можно пример проверки события (document.addEventListener("ofnline", onOnline, false) - появления сети и автоматически возвращать пользователя на сайт ))

Я на странице offline.html делаю следующую проверку:
Код
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {

document.addEventListener("online", onOnline, false);

function onOnline() {
  var networkState = navigator.connection.type;
  if (networkState !== Connection.NONE) {
    //window.location.replace('https://s-be.ru/mobileapp/');
    var ref = cordova.InAppBrowser.open('https://сайт/mobileapp/', '_blank', 'location=yes');
  }else {var ref = window.open('offline.html', '_self', 'location=yes');}
}
}
Изначально на index.html подключается js:

Код
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {

function onOffline(e) {
  e.preventDefault();
  var src = '/offline.html';
  var target = '_self';
  var option = "location=no, toolbar=yes, zoom=no, hidden=yes, hardwareback=no, hideurlbar=yes,hidenavigationbuttons=yes";
  var ref = cordova.InAppBrowser.open(src, target, option);
}

var target = "_blank";
var options = "location=yes";
var opensite = cordova.InAppBrowser.open('https://сайт/mobileapp/', target, options);
}
Т.е какая логика работает:
Если изначально нет интернета:
1. Клиент заходит в приложение видит болванку html, что нет интернета
2. Включает интернет, у него сразу страница восстанавливается
3. Снова интернет пропадает и выходит некрасивая странница (вот нужно чтобы появлялась болванка, а не ошибка браузера)

Если интернет есть изначально:
1. Клиент зашел на сайт с интернетом
2. Интернет пропал, появилась болванка
3. Интернет восстановился, страница автоматически вернулась.
4. Интернет снова пропал, появляется некрасивая странница (вот нужно чтобы появлялась болванка, а не ошибка браузера)  
 
Цитата
написал:
var opensite = cordova.InAppBrowser.open('https://ВАШ_САЙТ/&#39;, target, options)
Здесь открывает сайт без statusbar'a. Как можно снова его отобразить. Если указать var target = "_self"; то страницу приложения не открывает.
Код
 <preference name="StatusBarOverlaysWebView" value="true" />
и
StatusBar.show();


Не меняют ситуацию, StatusBar не отображается на странице... Подскажите как модно отобразить?
Изменено: Михаил Базаров - 21.02.2024 19:34:08
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 

Блог-note: заметки разработчика

Отфильтровать товары бренда и вывести по разделам каталога

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

Номера страниц в Title и Description при постраничной навигации каталога

Задача: Часто SEO-специалисты просят добавить номер страницы, из постраничной навигации, в заголовок и описание раздела ...

Вывод даты создания элемента в правильном формате в Битрикс

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

Отсортировать предложения по цене в каталоге 1С-Битрикс

Задача: в 1С-Битрикс есть настройка для вывода предложений по стоимости, но она не функционирует должным образом. Необхо...

Картинка торгового предложения вместо иконки цвета, в выборе SKU

Задача: вместо не информативных иконок цветов нужно вывести детальную картинку торгового предложения. Если картинки у пр...

Вывести дату окончания скидки в карточке товара

Если нужно вывести информацию о скидке в карточке товара, можно воспользоваться методом CCatalogDiscount::GetList. Данны...

Заменить popap "Товар добавлен в корзину" на собственное окно

Задача: заменить модальное окно, которое появляется при добавлении товара в корзину — "Товар добавлен в корзину&quo...

Настройка выгрузки товаров в Яндекс Маркет с сайта Битрикс

Настройка выгрузки в Яндекс маркет в формате yml, выполняется достаточно просто, кроме одной заморочки: в типовой постав...

Фиксированная корзина с обновлением, без перезагрузки страницы.

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