6

我正在使用phonegap并且我正在注册onDeviceReady后退按钮功能,但是在单击设备的后退按钮时会调用函数。我添加了

<script src="lib/cordova-2.6.0.js"></script>

document.addEventListener("backbutton", onBackClickEvent, false);

function onBackClickEvent() {
    alert("back onBackClickEvent");     
}

这个onBackClickEvent()函数没有被调用,我从未见过弹出警报。我也收到 Uncaught ReferenceError 的错误:未定义cordova

可能是什么错误请建议我。提前致谢。

4

5 回答 5

6

不要忘记调用“ deviceready ”事件。

来自 phonegap 文档:

这是每个 Cordova 应用程序都应该使用的非常重要的事件。

Cordova 由两个代码库组成:native 和 JavaScript。在加载本机代码时,会显示自定义加载图像。但是,只有在 DOM 加载后才会加载 JavaScript。这意味着您的 Web 应用程序可能会在加载之前调用 Cordova JavaScript 函数。

一旦 Cordova 完全加载,就会触发 Cordova deviceready 事件。设备启动后,您可以安全地调用 Cordova 函数。

尝试这个

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady()
{
    document.addEventListener("backbutton", onBackClickEvent, false);
}

function onBackClickEvent()
{
    alert("back onBackClickEvent");     
}
于 2013-06-14T14:31:06.840 回答
4

升级到cordova 3.1后我遇到了这个错误。事实证明,这必须在 config.xml phonegap 3.* 以后显式添加。

<feature name="App">
        <param name="android-package" value="org.apache.cordova.App" />
    </feature>

看到这个链接

于 2013-11-08T14:01:17.787 回答
4

我得到了我的问题的答案。我一直在苦苦挣扎,许多开发人员试图解决它,当我发现愚蠢的错误时,我发现自己很愚蠢。

我在写

document.addEventListener("deviceready", onDeviceReady(), false);

代替

document.addEventListener("deviceready", onDeviceReady, false);

这就是为什么我收到错误科尔多瓦未定义并且没有其他听众正在注册的原因。

于 2013-06-17T06:24:39.997 回答
3

对于后退按钮,我使用这个

//Android back button handler methods
$(document).ready(function()
{
document.addEventListener("deviceready", setOverrideBackbutton, false);
});

/**
* Allow override of the back button on Android platforms
*/
function setOverrideBackbutton()
{
if (typeof device != "undefined" && device.platform == "Android")
{
    navigator.app.overrideBackbutton(true);
}
document.addEventListener("backbutton", backButtonTap, true);
}

/**
 * Callback after a backbutton tap on Android and windows platforms.
 * Do nothing.
 */
function backButtonTap()
{
//Do not remove
}
于 2013-06-14T07:18:49.110 回答
1

请检查您的 cordova.js 的路径和文件名是否正确。确保您在项目属性-> Java 构建路径-> 订购和导出中检查了真正的 cordova.jar 文件和 Android 私有库。

有关更多信息,请查看此链接

如果您导入多个文件,则将 cordova.js 文件放在 other.js 文件之前,它应该可以工作。

并且只需使用

<script src="cordova-2.6.0.js"></script>

代替

并检查此链接1链接2

于 2013-06-14T07:53:00.617 回答