Запрос в автономном режиме (Cordova-Framework7) - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть проект, в котором требуется реализовать что-то, что сохраняет запрос, если соединение каким-то образом потеряно, поэтому он может отправить его, как только снова вернется в оперативный режим.Я не знаком с Cordova / Framework 7, поэтому буду очень признателен за любые предложения.

1 Ответ

0 голосов
/ 11 декабря 2018

Вы можете обработать это, используя онлайн и офлайн-события, например:

document.addEventListener("deviceready", function () {
    var initNetworkCheck = checkConnectionType();
    if(initNetworkCheck.status == Connection.NONE){
        onOffline();
    }

    /*
    * Add offline connection behavier
    */
    document.addEventListener("offline", onOffline, false);

    function onOffline() {
        networkScreenAction();
    }

    /*
    * Add offline connection behavier
    */
    document.addEventListener("online", onOnline, false);

    function onOnline() {
         networkScreenAction();
    }
});

function checkConnectionType() {
    var networkState = navigator.connection.type;
    var states = {};

    states[Connection.UNKNOWN]  = 'Unknown connection';// For Browser
    states[Connection.ETHERNET] = 'Ethernet connection';
    states[Connection.WIFI]     = 'WiFi connection';
    states[Connection.CELL_2G]  = 'Cell 2G connection';
    states[Connection.CELL_3G]  = 'Cell 3G connection';
    states[Connection.CELL_4G]  = 'Cell 4G connection';
    states[Connection.CELL]     = 'Cell generic connection';
    states[Connection.NONE]     = 'No network connection';

    return {"status": networkState, 'label': states[networkState]};
}

function networkScreenAction()
{
   // Do Somthing
}

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

Примечание: для запроса на повторную отправку вы можете сохранить данные / информацию о неудачном запросе в localalstorage, а когда вы вернетесь в сеть, вы сможете получить его и повторно отправить запрос ... или вы можете использовать localforage, или любой другойдругой метод, который вам нравится .....

...