как определить кнопку возврата Android в framework7

#html-framework-7

#html-framework-7

Вопрос:

Недавно я создаю приложение с использованием framework7. Мое приложение состоит из HTML-файла, в котором содержатся все представления. Для навигации между представлениями внизу страницы присутствует кнопка возврата.

для кнопки возврата я использую код

 var myView = app.view.current;

myView.router.back();
  

Если я нажимаю кнопку возврата на устройстве Android, приложение закрывается

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

Я использую pushState: true, но у меня это не работает.

ниже мой app.js файл

     // Dom7
    var $ = Dom7;

    // Theme
    var theme = 'auto';
    if (document.location.search.indexOf('theme=') >= 0) {
    theme = document.location.search.split('theme=')[1].split('amp;')[0];
    }

    // Init App
    var app = new Framework7({
    id: 'io.framework7.testapp',
    root: '#app',
    theme: theme,
    on:{
    pageInit : function(page){
       console.log("page init function called aakash");
       document.addEventListener("backbutton", app.methods.onBackKeyDown, 
    false);
    }
     },
    pushState:true,
    data: function () {
    return {
      user: {
        firstName: 'John',
        lastName: 'Doe',
      },
    };
    },
   methods: {
     helloWorld: function () {
      console.log('dfvdfv')
      app.dialog.alert('Hello World!');
     },
     onDeviceReady: function() {


     },

    onBackKeyDown: function() {

       console.log("back button pressed");


      }
   },
    routes: routes,
    vi: {
      placementId: 'pltd4o7ibb9rc653x14',
     },

});
  

Ответ №1:

Что ж, у меня есть решение!! У меня это сработало

 var app = new Framework7({
  initOnDeviceReady:true,
  view:{
     pushState:true,

    } 
});
  

Комментарии:

1. У меня тоже сработало! Спасибо, что поделились. Единственная проблема заключается в том, что если я нахожусь на главной странице и нажимаю кнопку возврата Android, иногда это выдает мне страницу «страница не найдена».

2. у меня не работает в Android 10, framework7 v6

Ответ №2:

Я столкнулся с этой проблемой и решил ее с помощью метода

(Если вы используете webview)

Собственный код Android Java:

 @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        myWebView.evaluateJavascript("javascript:goBack();", null);
    }
    return true;
}
  

javascript в вашем фреймворковом приложении js

 function goBack() {
   myView.router.back();
}
  

Или

 function goBack() {
$('.back').trigger('click')
}
  

Попробуйте это в функции jquery

Комментарии:

1. Добавить в основное действие

2. Итак, это platform/android/app/src/main/java/com/appName/app/MainActivity.java я полагаю, файл, и я должен добавить его после успешного запуска cordova build Android . Я попробую это — через пару дней мне это понадобится 🙂

3. Мне нужно, чтобы мой текущий вид возвращался при нажатии моей аппаратной кнопки возврата на телефоне Android. Это работает, если я нажимаю на кнопку возврата страницы в framework7