2013-07-26 143 views
7

我正在使用PhoneGap的android应用程序。我需要通过使用下面的代码来处理设备后退按钮功能:Android - 禁用设备后退按钮

import com.phonegap.DroidGap; 
public Class MyClass extends DroidGap { 
appView.setOnKeyListener(new OnKeyListener() { 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) { 
       finish(); 
       return true; 
      } 
      return onKeyDown(keyCode, event); 
     } 
    }); 
    } 

通过使用上面的代码,应用程序获得退出,因为我已经使用finish();但我想应该没有什么设备上的后退按钮的点击来发生的事情。我该如何实现这个目标?请帮帮我。

+3

删除结束通话使用JavaScript实现这一点,或者我不明白你的问题...... –

+0

后退按钮不能在无根设备,安全问题被禁用.. – g00dy

+0

选中此发布: http://stackoverflow.com/questions/15834629/android-droidgap-disabling-back-button?rq=1 – Tinus81

回答

23

为什么您需要在Java级别执行此操作?您可以使用的PhoneGap的Event API

document.addEventListener("backbutton", onBackKeyDown, false); 
function onBackKeyDown(e) { 
    e.preventDefault(); 
} 
+1

是的,我知道如何使用'Phonegap' ...但问题是在服务器中有100多个HTML页面,我没有机会处理/修改HTML内容..所以,我试图完成它在Java级别..无论如何我不能通过Java获得...? –

+2

e.preventDefault();不管用。我试图从Android设备后退按钮中删除默认事件,我尝试了上面的代码,但没有运气应用程序仍然从前一页返回 – GianFS

+0

此代码必须在“deviceready”事件侦听器中。如果您直接将其写入HTML,请检查default-src中是否存在'unsafe-inline'以允许javascript内联。 – Honza