2017-06-08 33 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); 
 
}

相关问题