2017-09-13 101 views
0

我在Cordova上使用Angular 4,所以我需要在Android中禁用手機後退按鈕。任何人都可以分享如何禁用它?禁用Angular4中的後退按鈕Cordova

+0

可能[在cordova中禁用硬件後退按鈕]的副本(https://stackoverflow.com/questions/31427115/disable-hardware-back-button-in-cordova) – bennygenel

回答

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; 
} 
1

您可以創建按鈕事件,什麼事都不做,所以它不會走回頭路:

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:您需要安裝插件科爾多瓦 - 插件設備