我正在使用phonegapand我正在注册后退按钮onDeviceReady
功能,但在点击设备的后退按钮时调用函数。我添加了
<script src="lib/cordova-2.6.0.js"></script>
document.addEventListener("backbutton", onBackClickEvent, false);
function onBackClickEvent() {
alert("back onBackClickEvent");
}
这个onBackClickEvent()
函数没有被调用,我从来没有看到过警报。我也收到了Uncaught ReferenceError错误:cordova未定义
可能是什么错误请建议我。提前谢谢。
答案 0 :(得分:6)
不要忘记调用“ deviceready ”事件。
来自phonegap doc:
每个Cordova应用程序都应该这是一个非常重要的事件 使用
Cordova由两个代码库组成:native和JavaScript。虽然 正在加载本机代码,显示自定义加载图像。然而, 只有在DOM加载后才会加载JavaScript。这意味着您的网站 应用程序可能会调用Cordova JavaScript函数 在它加载之前。
当Cordova满载时,Cordova deviceready事件将会激活。 设备触发后,您可以安全地拨打Cordova电话 功能
试试这个
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady()
{
document.addEventListener("backbutton", onBackClickEvent, false);
}
function onBackClickEvent()
{
alert("back onBackClickEvent");
}
答案 1 :(得分:4)
我得到了问题的答案。我很挣扎,许多开发人员试图解决它,当我发现这个愚蠢的错误时,我发现自己很傻。
我在写
document.addEventListener("deviceready", onDeviceReady(), false);
而不是
document.addEventListener("deviceready", onDeviceReady, false);
这就是为什么我收到错误cordova没有定义,没有其他听众登记。
答案 2 :(得分:4)
升级到cordova 3.1后我遇到了这个问题。事实证明,这必须在config.xml phonegap 3. *中明确添加。
<feature name="App">
<param name="android-package" value="org.apache.cordova.App" />
</feature>
请参阅此link
答案 3 :(得分: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
}
答案 4 :(得分:1)