PhoneGap - onDeviceReady()没有触发 [英] Phonegap - onDeviceReady() wasn't fired
本文介绍了PhoneGap - onDeviceReady()没有触发的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
请查看并帮助我解决此问题。我已经花了2天的头痛。函数onDeviceReady从不被调用。
这是我的代码:
Please have a look and helps me resolve this issue. I have spent 2 days of headache. The function onDeviceReady never be called. Here is my codes:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>DemoSimpleControls</title>
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
<link rel="shortcut icon" href="images/favicon.png">
<link rel="apple-touch-icon" href="images/apple-touch-icon.png">
<link href="jqueryMobile/jquery.mobile-1.3.0.css" rel="stylesheet">
<link rel="stylesheet" href="css/DemoSimpleControls.css">
<script src="jqueryMobile/jquery.mobile-1.3.0.js"></script>
<script src="../js/jquery-1.9.1.min.js"></script>
< script type="text/javascript" charset="utf-8" src="../cordova-2.5.0.js"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
// Handler for .ready() called.
document.addEventListener("deviceready", onDeviceReady, true);
});
$(function() {
document.addEventListener("deviceready", onDeviceReady, true);
});
function onDeviceReady(){
alert("ready");
$("#mysavedData").html("XYZ");
$("#mysavedData").html(window.localStorage.getItem("data"));
}
</script>
</head>
<body id="content" onLoad="onLoad();" >
<div data-role="page" id="page">
<div data-role="header" >
<a data-rel="back" href="#" >Back</a>
<h1>My page</h1>
</div>
<div data-role="content" style="padding: 15px" data-theme="e">
<div id="mysavedData">My data</div>
</div>
</div>
</body>
</html>
推荐答案
这个事件是可怕的,有很多问题值得使用它。相反,只需通过检查 window.device
轮询PhoneGap是否准备就绪。
That event is horrible and has so many issues it's not worth using it. Instead, just poll until PhoneGap is ready by checking for window.device
.
演示: strong>
function initializePhoneGap( success, failure ) {
var timer = window.setInterval( function () {
if ( window.device ) {
window.clearInterval( timer );
success();
};
}, 100 );
window.setTimeout( function () { //failsafe
if ( !window.device ) { //phonegap failed
window.clearInterval( timer );
failure();
};
}, 5000 ); //5 seconds
};
window.onload = function () {
initializePhoneGap( function success() {
//start app
document.getElementById( 'result' ).textContent = 'phonegap: success';
}, function failure() {
//phonegap failed
document.getElementById( 'result' ).textContent = 'phonegap: failure';
} );
};
HTML:
HTML:
should fail on desktop after 5 seconds
<div id="result">phonegap:</div>
这篇关于PhoneGap - onDeviceReady()没有触发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文