2013-07-09 33 views
3

我從PhoneGap的文檔該代碼在http://docs.phonegap.com/en/2.9.0/cordova_accelerometer_accelerometer.md.html#Accelerometer爲什麼Phonegap加速度計示例應用程序無法在諾基亞5800上顯示手機加速度計數據?

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Acceleration Example</title> 

    <script type="text/javascript" charset="utf-8" src="cordova-x.x.x.js"></script> 
    <script type="text/javascript" charset="utf-8"> 

    // The watch id references the current `watchAcceleration` 
    var watchID = null; 

    // Wait for device API libraries to load 
    // 
    document.addEventListener("deviceready", onDeviceReady, false); 

    // device APIs are available 
    // 
    function onDeviceReady() { 
     startWatch(); 
    } 

    // Start watching the acceleration 
    // 
    function startWatch() { 

     // Update acceleration every 3 seconds 
     var options = { frequency: 3000 }; 

     watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options); 
    } 

    // Stop watching the acceleration 
    // 
    function stopWatch() { 
     if (watchID) { 
      navigator.accelerometer.clearWatch(watchID); 
      watchID = null; 
     } 
    } 

    // onSuccess: Get a snapshot of the current acceleration 
    // 
    function onSuccess(acceleration) { 
     var element = document.getElementById('accelerometer'); 
     element.innerHTML = 'Acceleration X: ' + acceleration.x   + '<br />' + 
          'Acceleration Y: ' + acceleration.y   + '<br />' + 
          'Acceleration Z: ' + acceleration.z   + '<br />' + 
          'Timestamp: '  + acceleration.timestamp + '<br />'; 
    } 

    // onError: Failed to get the acceleration 
    // 
    function onError() { 
     alert('onError!'); 
    } 

    </script> 
    </head> 
    <body> 
    <div id="accelerometer">Waiting for accelerometer...</div> 
    </body> 
</html> 

我用build.phonegap.com這個代碼,以使一個應用程序,並下載諾基亞5800(塞班)的.wgz文件。該應用程序已安裝,併成功加載。但它只顯示「Waiting for accelerometer...」。也就是說,<div>標籤的內容不會改變。這是爲什麼?

回答

3

我在Phonegap論壇得到了答案。在行:

<script type="text/javascript" charset="utf-8" src="cordova-x.x.x.js"></script> 

src應設置爲"cordova.js"

+0

它可以設置爲任何你想要的!最重要的部分是,如果你通過PhoneGap Build編譯(它會爲你注入所有必要的文件),並且只有**離開引用**,你才能刪除文件**。所以,在你的情況下,不是'src =「cordova-x.x.x.js」'會導致這個問題,但事實是,你(可能)有文件'cordova-x.x.x.js'包含在你的項目中。您更改了引用,因此對於編譯器,它將提供與刪除文件相同的結果。 – trejder

+0

我沒有上傳任何'.js'文件到build.phonegap.com。我只上傳了上面的HTML文件。它沒有提前工作,但是當我將'src'設置爲'「cordova.js」'時,它開始工作。一個有趣的觀察是,如果我將'src'設置爲'「phonegap.js」'也是有效的。 – Ankur

+0

似乎PhoneGap Build只能檢測'phonegap.hs'和'cordova.js'引用來注入代碼,但不能引用帶有版本的文件名。有趣的觀察。我相信,他們正在檢查精確給定的文件名,而不是進行一些搜索/替換,以避免超出他們的需要。而且,是的 - PhoneGap/Cordova名稱一起工作,作爲同一個項目的兩個名稱,所以與主要的Javascript文件一起工作。 – trejder

1

src="cordova-x.x.x.js"更改爲src="cordova.js"它會工作。

2

更改本聲明

<script type="text/javascript" charset="utf-8" src="cordova-x.x.x.js"></script> 

<script type="text/javascript" charset="utf-8" src="cordova.js"></script> 

這是用來對包括訪問手機的原生功能,一個名爲cordova.js JS文件。這是你可以從這裏的phonegap發佈網站下載的文件http://phonegap.com/install/

對於cordova的最新版本,沒有這樣的需要。現在在文件本身中提到的版本不在文件名中。但是爲了讓您的加速代碼能夠在最新版本的基礎上工作,請不要忘記爲設備動作添加相關插件。