У меня есть приложение Vue Js, и я использую Cordova для его переноса в приложение для Android.
приложение содержит 2 страницы: landing page, который содержит элементы, и details page, который показывает подробную информацию об элементе. когда вы щелкаете элемент на landing page, появляется details page.
У меня есть button на details page, при нажатии на него он переходит к другому component, а этот component на событии mounted(), он отображает html-контент из локального хранилища телефона с использованием плагина inappbrowser от Кордовы.
проблема в том, что после того, как inappbrowser показывает содержимое, если я нажимаю кнопку возврата на телефоне, он перенаправляет меня на details page, затем, если я снова нажимаю кнопку возврата на телефоне, он перенаправляет меня на inappbrowser! вместо landing page. и если я нажму ее снова, он перенаправит меня на details page, затем, если я снова нажму кнопку возврата, он покажет innappbrowser и так далее ....
вот код component, который в событии mounted() показывает innappbrowser
<template>
<div>
<h1>Loading >></h1>
</div>
</template>
<script>
import Vue from 'vue'
export default
{
mounted()
{
Vue.cordova.on("deviceReady", () => {
var ref = window.open('file:///storage/emulated/0/tin/story.html', '_self');
});
}
}
</script>
<style>
</style>
Я попытался добавить hardwareback=no к опциям inappbrowser, но это не сработало.
что мне делать, чтобы удалить inappbrowser из истории стека при нажатии кнопки возврата.
@Kaddath спасибо, как мне это сделать?
никогда не делал этого с помощью cordova и inappbrowser, поэтому я не могу дать вам точный способ. Вы можете попробовать зарегистрировать объект события в window.onpopstateсм. объяснения здесь и backbutton event, чтобы увидеть, что вы получите и что с этим делать.
примечание:
hardwarebackдолжен определить, может ли пользователь перемещаться по истории inappbrowser (не в приложении) на кнопке «Назад». У вас должно быть то, что вам нужно, в состоянияхwindow.historyили событии"backbutton".