我是phonegap的新手,所以我只是尝试了一些东西,并从onDeviceReady方法开始。我遇到的问题是,该方法不会触发。
这是我的完整代码,非常基本。
<!DOCTYPE html>
<html>
<head>
<title>Splashscreen Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8" src="js/jquery-2.0.3.min.js"></script>
<script type="text/javascript" charset="utf-8">
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
$("#texttest").css("display", "none");
}
</script>
</head>
<body>
<div id="texttest" style="display:block">text</div>
</body>
</html>
现在,当应用程序启动时,文本应该隐藏吗?好吧,整个div应该,但设备仍然显示“文本”。我在那里做错了什么?我还尝试了一些其他基本方法,如
$("#texttest").hide()
但这也不起作用。这是MainActivity.java
package de.activevaluetenthousandfliesphonegap;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import org.apache.cordova.*;
public class MainActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.loadUrl("file:///android_asset/www/index.html");
}
}
答案 0 :(得分:2)
确保您拥有正在使用的平台的正确版本的cordova.js。 您还在使用什么版本的Phonegap?
答案 1 :(得分:0)
<!DOCTYPE html>
<html>
<head>
<title>Splashscreen Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8" src="js/jquery-2.0.3.min.js"></script>
<script type="text/javascript" charset="utf-8">
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
$("#texttest").css("display", "none");
}
</script>
</head>
<body onload="onLoad()">
<div id="texttest" style="display:block">text</div>
</body>
</html>
答案 2 :(得分:0)
以下是我认为您需要做的事情:
$(document).ready(function(){
document.addEventListener("deviceready", onDeviceReady, false);
}
因为当你的设备准备好触发jQuery没有加载时 - 这将确保你执行以下操作: 1.获取jQuery 2.触发PhoneGap设备
同时删除onLoad()
功能! :)
答案 3 :(得分:0)
它正在我的涟漪仿真器上工作。但我使用jquery-1.9.1.js
和cordova 2.7
?
答案 4 :(得分:0)
首先,您需要在模拟器/移动设备中将其作为应用程序进行测试,而不是在Web浏览器上进行测试。其次,如果你想使用地理位置,你可以像这样使用它
function onDeviceReady() {
console.log("we are an app");
MyApp.initialize_phonegap();
}
function onBodyLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
</script>
</head>
<body onload="onBodyLoad()">
答案 5 :(得分:0)
我使用的是我的同事,他是iOS开发人员共享的cordova.js。我用来自Cordova网站的最新cordova.js替换了它,它开始运作得很好。
答案 6 :(得分:0)
如果包含,请尝试删除font-awesome。它们与css文件有一些相容的问题。
<link rel="stylesheet" href="css/font-awesome.min.css" />
我遇到了同样的问题,当我从我的代码中删除上面一行时解决了这个问题,
答案 7 :(得分:0)
使用cordova创建应用后,index.js(或build.js)包含类似
的内容var parentElement = document.getElementById(id);
var listeningElement = parentElement.querySelector('.listening');
var receivedElement = parentElement.querySelector('.received');
listeningElement.setAttribute('style', 'display:none;');
receivedElement.setAttribute('style', 'display:block;');
在默认事件处理函数“receivedEvent”中。
这些线只适用于Cordova的Hello-World-Dummy。一旦你替换index.html的内容“parentElement”将是未定义的。这会导致javascript错误
Uncaught TypeError: Cannot read property 'querySelector' of null
at Object.receivedEvent (index.js:37)
at Object.onDeviceReady (index.js:31)
at Channel.fire (cordova.js:846)
at cordova.js:231
cordova Hello-World的index.html包含一个容器
<div id="deviceready" class="blink">
一旦你删除它,应用程序的构建就会失败,并提到了JavaScript-Error。
您可以简单地用
之类的内容替换上面的行if (id=="deviceready")
{
console.log("addEventListener for backbutton");
$("#texttest").css("display", "none");
// ... whatever
}