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

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
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Ютубе