Pat*_*cow 18 javascript jquery android cordova
我有一个简单的PhoneGap应用程序作为休闲:
<!DOCTYPE HTML>
<html>
<head>
<title>PhoneGap powered App</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/jquery.mobile-1.0.min.css" />
<script type="text/javascript" charset="utf-8" src="phonegap-1.3.0.js"></script>
<script src="js/jquery-1.7.1.min.js"></script>
<script src="js/jquery.mobile-1.0.min.js"></script>
<script type="text/javascript" charset="utf-8">
document.addEventListener("deviceready", onDeviceReady, true);
function onDeviceReady() {
alert ('123');
}
</script>
</head>
<body onload="onDeviceReady()">
<div data-role="page">
<div data-role="header">
<h1>title</h1>
</div><!-- /header -->
<div data-role="content">
<h2>Begin by inserting your credentials.</h2>
...
</div><!-- /content -->
</div><!-- /page -->
<script type="text/javascript" charset="utf-8">
$(document).ready(function () {
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这里发生的是警报alert ('123');
永远不会被解雇.但是,如果我取出其他JavaScript代码并仅保留警报就会被解雇.
如果我使用$(document).ready(function () { alert ('123'); }
我得到警报.
这里发生了什么,为什么deviceready
不被解雇?
有任何想法吗?
gpr*_*our 17
试试这种方式:
document.addEventListener("deviceready", function(){
alert("123");
},true);
Run Code Online (Sandbox Code Playgroud)
God*_*a74 16
@GPRathour提供的功能是因为document.addEventListener()
正在侦听deviceready
,如果是,则运行警报功能.由于两个原因,我没有按你的方式工作:
1)当DOM加载并下载到你的body标签时,它调用OnDeviceReady()并且监听器从未接到调用,因此phonegap不知道它已准备好运行.
2)你必须在函数内调用你的监听器并使用'false':
function init(){
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady(){
alert('123');
}
<body onload="onDeviceReady()"></body>
Run Code Online (Sandbox Code Playgroud)
查看phonegap API,了解为什么在监听器中使用false而不是true,与默认设置有关,但值得阅读以了解phonegap监听器的工作原理.
Jos*_*ita 10
如果您遇到与我相同的问题,我不知道是否需要在index.html中包含cordova.js脚本,您不必提供文件或引用,只需包含以下行:
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
Run Code Online (Sandbox Code Playgroud)
然后Cordova将在编译时使用该库,之后将调度该事件.
这段代码对我有用
<body onload="init()"></body>
function init() {
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
// Now safe to use the Cordova API
}
Run Code Online (Sandbox Code Playgroud)
快乐的编码.......
当使用带有WP8的PhoneGap 3.0时,Device Ready将无法正常工作,因为Visual Studio解决方案中不包含Phonegap.js.
解决方案是暂时手动包含它.
归档时间: |
|
查看次数: |
73726 次 |
最近记录: |