2017-06-08 55 views
1

我緊跟在Cordova docs示例代碼重寫(使用ES6)設備返回按鈕,但預期它不工作:如何覆蓋科爾多瓦的默認後退按鈕操作?

const onBackButtonPress =() => { 
    console.log('pressed'); 
}; 
document.addEventListener('backbutton', onBackButtonPress, false); 

當我在我的Android設備上運行的應用程序,我覆蓋代碼被調用,但是應用程序也會退出,就像默認的後退按鈕操作也被調用一樣。

如何防止按下後退按鈕時應用程序退出?

我已經嘗試添加e.preventDefault()回調函數addEventListener

我這樣做的deviceready事件已解僱了。

我使用的科爾多瓦7.0.1和我的平臺是科爾多瓦 - 安卓6.2.3

+0

嗨mradbourne,你是否設法解決你的問題?我在這裏得到了同樣的問題 – Kaixin

+0

@Kaixin不,我沒有找到解決方案。仍然不知道爲什麼它不起作用。 :( – mradbourne

回答

0

我使用此代碼在我的應用程序:

document.addEventListener("backbutton", function(e) { 
    e.preventDefault(); 
    return; 
}, false); 

注意,當運行此代碼device is ready

+0

感謝您的建議 - 我在'deviceready'事件發生後執行此操作。 – mradbourne

+0

仍然無法正常工作嗎?也許嘗試在cordova中刪除並添加一個android平臺,有時這會有所幫助 – 3squad

+0

我嘗試刪除平臺並做一個'cordova prepare'來重新添加正確的平臺版本。它不幸運行。 – mradbourne

0

我已經使用如下:

if(cordova.platformId === "android") { 
 
    document.addEventListener("backbutton", function (event) { 
 
    event.preventDefault(); 
 
    var confirmStatus = confirm("Do you want to exit?"); 
 
    if (confirmStatus === true) { 
 
     navigator.app.exitApp(); 
 
    } 
 
    }, false); 
 
}

相關問題