在Angular4 Cordova中禁用后退按钮

时间:2017-09-13 07:20:52

标签: angularjs cordova typescript

我在Cordova上使用Angular 4,所以我需要在Android中禁用手机后退按钮。任何人都可以分享如何禁用它?

2 个答案:

答案 0 :(得分:2)

你可以创建按钮事件,什么都不做,所以它不会倒退:

declare var device;
...
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
  console.log(device);
  if(device.platform == 'android' || device.platform == 'Android'){
    document.addEventListener("backbutton", onBackKeyDown, false);
  }

  function onBackKeyDown(){
    console.log("Does nothing");
  }
}

Pd:您需要安装插件cordova-plugin-device

答案 1 :(得分:1)

一种简单的方法是推送初始虚拟历史记录条目,然后覆盖窗口的onpopstate事件,以便始终再次推送虚拟条目。这样,当用户按下后退按钮时,您的应用基本上什么都不做。

// If using TypeScript:
declare var window:any;    

// In your App Boot function (for example app.component constructor):
window.history.pushState("BackLock", null, "");

window.onpopstate = (evt) => {
    // evt.preventDefault(); might work as an alternative
    window.history.pushState("BackLock", null, "");
    return; 
}