我尝试在Android上设置Phonegap,但deviceready
不会触发。原因是DeviceInfo.uuid
始终为null / undefined。
好像没有正确加载phonegap的非javascript部分,但我看不清楚到底是什么。对于www目录之外的所有内容,我正在使用phonegap下载示例目录中提供的代码。
有人知道可能导致这种情况的原因吗?
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<script type="text/javascript" charset="utf-8" src="javascripts/phonegap-1.0.0.js"></script>
<script src="http://debug.phonegap.com/target/target-script-min.js#something"></script>
<script type="text/javascript" charset="utf-8">
function onBodyLoad() {
var initialize = function() {
window.console.log("deviceready||resume");
};
document.addEventListener("deviceready", initialize);
document.addEventListener("resume", initialize);
window.console.log("onBodyLoad!");
}
</script>
</head>
<body onload="onBodyLoad()">
<h1>Herro World</h1>
</body>
</html>
答案 0 :(得分:31)
以防其他人偶然发现此问题。
我没有意识到iPhone和Android版本的phonegap-1.0.0.js有所不同。它具有相同的名称,但内容不同。因此,必须加载正确的文件。我这样解决了:
<script type="text/javascript">
// Atrocious way of loading two diffent phonegap scripts, but other loading methods won't work.
// also there shouldn't be two scripts to begin with -- so much for cross-platform.
var userAgent = navigator.userAgent.toLowerCase();
if (userAgent.match(/android/)) {
document.write("<script type='text/javascript' src='javascripts\/phonegap-android-1.0.0.js'><\/script>");
} else {
document.write("<script type='text/javascript' src='javascripts\/phonegap-iphone-1.0.0.js'><\/script>");
}
</script>
答案 1 :(得分:3)
如果您希望在设备准备就绪时执行某些功能,请执行以下操作
document.addEventListener("deviceready", onDeviceReady, true);
// PhoneGap is now ready
function onDeviceReady() {
// Write your code here
}
我不确定为什么你的代码不起作用。尝试将document.addEventListener置于函数范围之外。