在Cordova 3.5中禁用/覆盖Android返回按钮

bjp0bcyl  于 2023-05-18  发布在  Android
关注(0)|答案(2)|浏览(257)

根据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>

这些都没用

wlwcrazw

wlwcrazw1#

要禁用本机后退按钮功能,需要在传递给处理程序的事件对象上调用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错误。
a1o7rhls

a1o7rhls2#

由此错误提示:exec调用未知的插件应用程序
我检查了App.java文件,其中包含cordova构建中包含的应用程序插件,我发现了以下行:

protected static final String TAG = "CordovaApp";

这与3.5附带的cordova.js文件中相应的exec()调用不匹配。所以,我把它改成了

protected static final String TAG = "App";

现在,事件覆盖cordova所有工作的文件。
干杯。

相关问题