0

我是 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");
}

}
4

8 回答 8

2

确保您的目标平台具有正确版本的 cordova.js。另外你使用的是什么版本的Phonegap?

于 2013-10-15T13:24:02.590 回答
1

Please try removing the font-awesome, if included. They have some compatibily issues with its css file.

<link rel="stylesheet" href="css/font-awesome.min.css" />

I had the same problem once and solved when I removed the above line from my code,

于 2015-06-27T07:39:15.540 回答
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>
于 2013-10-15T13:47:16.967 回答
0

我正在使用我的 iOS 开发人员同事共享的 cordova.js。我用来自 Cordova 站点的最新 cordova.js 替换了它,它开始工作得很好。

于 2014-12-04T05:31:23.597 回答
0

它正在我的波纹模拟器上工作。但我使用jquery-1.9.1.jsand cordova 2.7?

于 2013-10-15T17:11:56.443 回答
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()">
于 2013-10-16T15:43:46.057 回答
0

这是我认为你需要做的:

        $(document).ready(function(){
document.addEventListener("deviceready", onDeviceReady, false);

    }

因为当您的设备就绪触发 jQuery 尚未加载时 - 这将确保您执行以下操作: 1. 获取 jQuery 2. 触发 PhoneGap 设备就绪

也删除你的onLoad()功能!:)

于 2013-10-15T14:49:29.233 回答
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 错误。

您可以简单地用类似的东西替换上面的行

if (id=="deviceready")
{
    console.log("addEventListener for backbutton");
    $("#texttest").css("display", "none");
    // ... whatever
}
于 2017-04-18T13:49:27.163 回答