我有一个可以想象的最简单的PhoneGap应用程序!
我要做的就是在设备准备事件上显示警告消息。
HTML CODE
<!DOCTYPE HTML>
<html>
<head>
<title>PhoneGap</title>
<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
<script type="text/javascript" charset="utf-8" src="common.js"></script>
</head>
<body>
<div data-role="page" id="index-page">
<h1>Hello World!</h1>
</body>
</html>
common.js代码
var isPhoneGapReady = false;
function init() {
document.addEventListener("deviceready",
onDeviceReady, false);
// Older versions of Blackberry < 5.0 don't support
// PhoneGap's custom events, so instead we need to
// perform an interval check every 500 milliseconds
// to see if PhoneGap is ready. Once done, the
// interval will be cleared and normal processing
// can begin
var intervalID = window.setInterval(function() {
if (PhoneGap.available) {
onDeviceReady();
}
}, 500);
}
function onDeviceReady() {
window.clearInterval(intervalID);
// set to true
isPhoneGapReady = true;
alert("The device is now ready");
}
// Set an onload handler to call the init function
window.onload = init;
我正在使用云服务获取APK文件,我在ANdroid模拟器版本4.0.3中运行它。
控制台上的错误:
init
Ignote this event
W/webcore(6387): java.lang.Throwable: EventHub.removeMessages(int what = 107) is not supported before the WebViewCore is set up.
at android.webkit.WebViewCore$EventHub.removeMessages(WebViewCore.java:1683)
如果有人可以指出需要采取哪些措施来纠正错误,我将不胜感激。
谢谢,
答案 0 :(得分:1)
我认为您遇到的问题是intervalID
的范围未达到您的onDeviceReady()
功能。您需要在init()
函数中创建该函数,如此 -
var isPhoneGapReady = false;
function init() {
document.addEventListener("deviceready", onDeviceReady, false);
// Older versions of Blackberry < 5.0 don't support
// PhoneGap's custom events, so instead we need to
// perform an interval check every 500 milliseconds
// to see if PhoneGap is ready. Once done, the
// interval will be cleared and normal processing
// can begin
var intervalID = window.setInterval(function() {
if (PhoneGap.available) {
onDeviceReady();
}
}, 500);
// REMOVE THIS
// }
function onDeviceReady() {
window.clearInterval(intervalID);
// set to true
isPhoneGapReady = true;
alert("The device is now ready");
}
// PUT THIS HERE
}
// Set an onload handler to call the init function
window.onload = init;