根据 3.5 版的 Cordova 文档:
http://cordova.apache.org/docs/en/3.5.0/cordova_events_events.md.html#Events
我使用以下代码尝试禁用后退按钮。 onDeviceReady 事件会触发,但后退按钮事件不会。
// Wait for device API libraries to load
//
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
// device APIs are available
//
function onDeviceReady() {
// Register the event listener
document.addEventListener("backbutton", onBackKeyDown, false);
}
// Handle the back button
//
function onBackKeyDown() {
}
在其他有趣的消息中,我在我的控制台中收到了这条消息:
exec() call to unknown plugin App.
我已经看到了这个问题的几个答案,包括以下内容以编辑 config.xml 文件并添加:
<feature name="App">
<param name="android-package" value="org.apache.cordova.App" />
</feature>
这些都不起作用。
最佳答案
要禁用 native 后退按钮功能,您需要调用 preventDefault()
在传递给处理程序的事件对象上:
document.addEventListener("backbutton", onBackKeyDown, false);
function onBackKeyDown(e) {
e.preventDefault();
}
如果您遇到其他错误,我建议您删除并重新添加 android 平台(确保您先安装了最新版本的 Cordova):
$ npm update cordova -g
$ cordova platform remove android
$ cordova platform add android
如果你能分享更多你的项目是最好的,这样我就可以看到哪里出了问题。您可以进行的其他检查:
确保为您可能使用的任何其他功能安装了所有插件
cordova plugin ls
将为您提供所有已安装的列表。确保引用
<script type="text/javascript" src="cordova.js"></script>
.检查是否正在触发设备就绪事件。
在运行应用程序的情况下在 Safari 开发工具中进行调试时检查没有 JavaScript 错误。
关于android - 禁用/覆盖 Cordova 3.5 中的 Android 后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25088678/