deviceready 处理程序未被调用 ios phonegap 3.3.3
Posted
技术标签:
【中文标题】deviceready 处理程序未被调用 ios phonegap 3.3.3【英文标题】:deviceready handler not being called ios phonegap 3.3.3 【发布时间】:2014-01-03 19:20:43 【问题描述】:index.html
<script>
function onDeviceReady()
alert("onDeviceReady");
var options = frequency: 500;
watchId = navigator.accelerometer.watchAcceleration(onSuccess, onFailure, options);
document.addEventListener("deviceready", onDeviceReady, false);
</script>
Phonegap 3.3.3 设备就绪处理程序未被调用。
【问题讨论】:
我觉得不错。当您说 Phonegap 3.3.3 时,您是指 Cordova 3.3.0 还是使用边缘版本。我假设你是在设备/模拟器上尝试这个,而不是通过网络浏览器。设备就绪,不会在浏览器中触发。 哎呀,3.3.3 打错了,我用的是 Cordova 3.3.0 【参考方案1】:确保您已在 html 中包含 phonegap.js(或 cordova.js)脚本。否则你的代码很好。如果问题仍然存在,请尝试评论除 onDeviceReady() 中的警报之外的所有内容。
如果仍有问题,请尝试发布带有问题的 index.html。
【讨论】:
添加<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
为我解决了这个问题。谢谢。我的印象是自动注入的,显然不是。【参考方案2】:
最好在文档加载完成后在函数中设置事件监听器。试试这样的:
<body onload="onLoad()">
function onLoad()
document.addEventListener("deviceready", onDeviceReady, false);
或使用 jquery:
$(document).ready(function()
document.addEventListener("deviceready", onDeviceReady, false);
);
【讨论】:
【参考方案3】:从脚本中删除 app.initialize()(这会弄乱事件处理程序)
【讨论】:
什么意思?您的代码中没有 app.initialize以上是关于deviceready 处理程序未被调用 ios phonegap 3.3.3的主要内容,如果未能解决你的问题,请参考以下文章
touchesBegan 在 iOS 12 中被调用,但在 iOS 13 中未被调用
boost::asio::async_accept 处理程序未被调用
Cordova iOS deviceready 永远不会触发
ATTN PhoneGap/Cordova 项目贡献者:以 2 种不同方式调用 deviceready 回调的问题