Android 如何在cordova 4.0中仅覆盖单个页面上的后退按钮?
我有一个要求,只有在一个特定的页面上,我的意思是当用户在index.html中说,当他单击“后退”按钮时,我需要提示一个警报,说“你想退出某个应用程序吗?”。 如果他说“是”,则退出“否”。我可以通过覆盖back按钮并检查用户是否在index.html页面中来实现这一点,如下面的代码所示 代码示例:Android 如何在cordova 4.0中仅覆盖单个页面上的后退按钮?,android,cordova,plugins,Android,Cordova,Plugins,我有一个要求,只有在一个特定的页面上,我的意思是当用户在index.html中说,当他单击“后退”按钮时,我需要提示一个警报,说“你想退出某个应用程序吗?”。 如果他说“是”,则退出“否”。我可以通过覆盖back按钮并检查用户是否在index.html页面中来实现这一点,如下面的代码所示 代码示例: function onLoad() { alert("OnLoad"); document.addEventListener("deviceready", onDeviceReay,
function onLoad() {
alert("OnLoad");
document.addEventListener("deviceready", onDeviceReay, false);
}
function onDeviceReay()
{
var x = document.URL;
alert(x);
if( x.indexOf('index') >= 0)
{
document.addEventListener('backbutton', function(e){
if (confirm("Press a button!"))
{
alert("You pressed OK!");
navigator.app.exitApp();
}
else
{
alert("You pressed Cancel!");
}
}, false);
}
}
但问题是,当用户导航到另一个页面,然后单击“上一页”按钮时,它不会导航回上一页。请有人告诉我哪里出了问题。谢谢。将以下内容放在需要触发“后退”按钮的html页面中:
document.addEventListener("backbutton", leavePage, false);
function onPageLeave(buttonIndex) {
if(buttonIndex==1){
window.history.back();
}
else{
}
}
function leavePage() {
navigator.notification.confirm(
'Would you like to leave ?', // message
onPageLeave, // callback to invoke with index of button pressed
'Leaving page request', // title
['Yes','No'] // buttonLabels
);
}
请注意,您需要安装通知插件。否则,您可以用一个简单的警报()替换。单击“后退”按钮时是否会显示确认对话框?public void on backpressed(){//Your code here}是的,Sonia,它正在显示。对不起,DJphy,我没听清楚。你能详细解释一下吗?谢谢你,但我也面临同样的问题。它甚至在其他页面中也覆盖了后退按钮。我想在一个页面中覆盖,这很奇怪,因为这些代码只在我放置它的页面上对我有效。它在其他页面中不起作用。您是否在ondeviceready函数中使用它?