Проблема pushState Framework7 v3.5.2 не загружает представление - PullRequest
0 голосов
/ 01 декабря 2018

Я прочитал все вопросы по этой проблеме, не найдя никакого решения.

Я использую текущую последнюю версию Framework7 (3.5.2) и пытаюсь внедрить статистику pushState, чтобы включить backButton на устройствах Android.

В моем app.js я написал это:

const app = new Framework7({
    root: '#app',
    name: conf.appName,
    version: conf.version,
    id: conf.id,
    theme: 'auto',
    panel: {
        swipe: 'left',
    },
    view: {
        pushState: true,
        //pushStateRoot: '',
        //pushStateSeparator: '#!',
      }
    })

Если я установлю pushState: false, приложение будет работать без проблем.Если я установлю true , приложение выдаст мне пустую страницу (я пробовал использовать xampp, electronic и cordova, я получаю те же результаты).

Я что-то упустил?Документ Framework7 это очень сбивает с толку ..

Если pushState содержит ошибки, есть другое решение для использования backButton на Android с Framework7?

Спасибо

Ответы [ 2 ]

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

Посмотрите на это:

view: {
    pushState: true,
    pushStateSeparator: '#',
    pushStateOnLoad: false
}

Вы должны были удалить параметр pushStateRoot, это был хороший вызов.Но вы также должны вставить pushStateSeparator, это позволит вам перемещаться по нужному URL (без '#').Вам нужно использовать pushStateOnLoad тоже.Это позволит вам «отключить игнорирование парсинга состояния push-адреса и загрузки страницы при загрузке приложения».

Подробнее см. Документацию .

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

этот код даст возможность контролировать действие кнопки «назад», в этом примере вы получите действие «Назад» и выход из приложения, если находитесь на домашней странице ....

document.addEventListener("deviceready", function () {
    /* Set Android Back Button  */
    document.addEventListener("backbutton", function(){
        mainView.router.back();

        // Exit from app if user press back in home page
        if($$('.page-current').data('name') == 'home'){
            navigator.app.exitApp();
        }
    }, false);
});

Но, думаю, проблема не впри работе с кнопкой, я думаю, вам нужно выполнить некоторые из этих действий, и это может решить проблему:

1) добавить pushState к параметрам в вашем router.navigate (url, options) ИЛИ добавить data-push-state="true"к вашему виду оболочки, как это: <div class="view" ... data-push-state="true">.

2) попробуйте добавить reloadCurrent или reloadPrevious в слушателя кнопки.

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

...