Android应用程序中的后退按钮无法退出应用程序

Posted

技术标签:

【中文标题】Android应用程序中的后退按钮无法退出应用程序【英文标题】:Back button in Android App not working to exit the application 【发布时间】:2014-11-29 09:04:30 【问题描述】:

我正在使用 Cordova 3.6 版 创建我的第一个移动应用程序。我想在到达主页时使用设备的后退按钮退出应用程序。我浏览了以下资源,但无法达到目的。

http://cordova.apache.org/docs/en/3.6.0/cordova_events_events.md.html#backbutton

PhoneGap - android exit on backbutton

backbutton confirm exit app android + phonegap + jquery

我的代码:

Js:

function onLoad() 
        document.addEventListener("deviceready", onDeviceReady, false);
    

function onDeviceReady() 
// Register the event listener
document.addEventListener("backbutton", onBackKeyDown, false);


function onBackKeyDown() 
document.addEventListener("backbutton", function(e)
if($('body').is('#main')) //main is the home page id.. 
    e.preventDefault();
    navigator.app.exitApp();    
 else 
    navigator.app.backHistory()

, false);

HTML:

感谢您的时间和努力。

【问题讨论】:

【参考方案1】:

在事件处理程序中再次向后退按钮添加侦听器没有多大意义。所以从onBackKeyDown() 中删除document.addEventListener。并将事件传递给函数。

function onBackKeyDown(e) 
  if($('body').is('#main')) //main is the home page id.. 
    e.preventDefault();
    navigator.app.exitApp();    
   else 
    navigator.app.backHistory()
  

【讨论】:

究竟是什么不起作用?按键时是否触发onBackKeyDown? 当我按下键时,它会返回上一页并且不会退出应用程序。 OK,但是按键的时候会触发onBackKeyDown吗?将警报或 console.log 放入其中进行检查。 不,警报也没有出现。根据以下答案,可能是因为cordova.js。但是,由于有基于平台的 cordova.js 文件;我不太确定如何将其包含到代码中。【参考方案2】:

您必须添加

给你的 html 文件。为您的路径输入真实地点

【讨论】:

是的,不包括cordova.js;但是我在项目目录中找不到它。 index.js 和 cordova.js 是一样的吗? 没有 cordova.js 是 Cordova SDK 提供的其他文件。它在 www 目录内 它在 www 文件夹中丢失,但是我在某处读到它位于 android 和相应平台目录的 platforms\android\platform_www 中。我可以在那里看到它。但是现在我很困惑是否需要将其粘贴到主 www 目录中并包含在 index.html 中或给出整个路径?在前一种情况下,如果我构建一个 iphone 应用程序,两个 cordova.js 文件之间不会有冲突吗?感谢您的宝贵时间。

以上是关于Android应用程序中的后退按钮无法退出应用程序的主要内容,如果未能解决你的问题,请参考以下文章

当我将片段添加到我的视图寻呼机时(在嵌套滚动视图中),我无法从具有设备后退按钮的应用程序退出

在android qtquick中单击后退按钮时应用程序退出

如何在主页中打开后退按钮 android 以退出应用程序并关闭反应本机导航侧菜单

如何在一个页面上禁用 Android 后退按钮并在所有其他页面上更改为退出按钮

如何处理后退按钮android以退出应用程序并在首页中打开时关闭本机导航侧菜单

为什么Android应用程序在退出带有后退按钮的应用程序时显示空白屏幕React Native Navigation?