簡體   English   中英

PhoneGap onDeviceReady無法觸發

[英]PhoneGap onDeviceReady not firing

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

}

確保您針對的平台具有正確的cordova.js版本。 另外,您使用的是哪個版本的Phonegap?

請嘗試刪除超贊的字體(如果包含)。 他們的css文件存在一些兼容性問題。

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

我曾經遇到過同樣的問題,並在我從代碼中刪除了以上代碼后解決了該問題,

<!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>

我認為這是您需要做的:

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

    }

因為當您的設備准備就緒時,觸發器尚未加載jQuery-這將確保您執行以下操作:1.獲取jQuery 2.觸發PhoneGap deviceready

同時刪除您的onLoad()函數! :)

它正在我的波紋模擬器上運行。 但是我使用jquery-1.9.1.jscordova 2.7嗎?

首先,您需要在模擬器/移動設備中而不是在Web瀏覽器中將其作為應用程序進行測試。 其次,如果您要使用地理位置,則可以這樣使用

function onDeviceReady() {
        console.log("we are an app");
        MyApp.initialize_phonegap();
      }

      function onBodyLoad() {   
        document.addEventListener("deviceready", onDeviceReady, false);
      }

    </script>

  </head>

  <body onload="onBodyLoad()">

我正在使用由iOS開發人員的同事共享的cordova.js。 我用Cordova網站上的最新cordova.js替換了它,它開始運行良好。

使用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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM