2013-07-09 8 views
3

У меня есть этот код из PhoneGap документации на http://docs.phonegap.com/en/2.9.0/cordova_accelerometer_accelerometer.md.html#AccelerometerПочему приложение примера Phonegap для акселерометра не может отображать данные акселерометра телефона на Nokia 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, чтобы сделать приложение и загрузить файл .wgz на Nokia 5800 (Symbian). Приложение установлено и успешно загружается. Но он просто показывает «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> 

это за включение JS файл с именем cordova.js, которые обращаются к родной особенности телефона. Это файл, который вы можете скачать с сайта для рассылки телефонных разговоров здесь http://phonegap.com/install/

Для последней версии кордовы такой необходимости не требуется. Теперь версия упоминается в самом файле не в имени файла. Но для того, чтобы ваш код ускорения работал на этот раз с последней версией, не забудьте добавить соответствующий плагин для движения устройства.