0

私は電話ギャップの初心者です。デバイスの場所を取得するアプリを作成しています...サムスンギャラクシータブとhtcでテストしましたが、何もしません...デバイスの速度を取得しようとして、それを画面のdiv。これは私のコードです:

地理的位置:

// Phonegap loads
    document.addEventListener("deviceready", onDeviceReady, false);
    var watchIDgeolocation = null;      
    var watchIDaccelerometer = null;    

// PhoneGap has loaded
    function onDeviceReady() {
        var options = { frequency: 1000 };  // I want obtain data each 1 s 
        watchIDgeolocation = navigator.geolocation.watchPosition(onSuccessGeolocation, onErrorGeolocation, options);
        startWatch(); 
    }

// Success
    var onSuccessGeolocation = function(position) {
        // These are functions that displays data in screen 
        cambioMarchas(position.coords.speed);       
        excesoVelocidad(position.coords.speed);     
        paradaProlongada(position.coords.speed);    
        aceleracionBrusca(position.coords.speed);   
        deceleracionBrusca(position.coords.speed);  
        accidenteDeTrafico(position.coords.speed);  


// ERROR
    function onErrorGeolocation(error) {
        alert('code: '    + error.code    + '\n' +
              'message: ' + error.message + '\n');
    }

Chromeの拡張機能であるRippleでテストしましたが、速度の値を変更して正常に動作し、正常に動作します...しかし、デバイスでは、理由がわかりません。なぜでしょうか?よろしく、ダニエル

var オプションに { enableHighAccuracy: true } を追加する必要があるかもしれないと読みましたが、これは理解できません...

4

1 に答える 1

3

ダニエル、まず、この一般的なPhoneGapアプリを試して、デバイスが使用できるかどうかをテストすることをお勧めします。使用できる場合は、警告メッセージが表示され、問題が発生している場合は警告メッセージが表示されます。あなたのコードで戻って確認してください。はい、どうぞ:

// Global variable that will tell us whether PhoneGap is ready
   var isPhoneGapReady = false;
   function init() {
// Add an event listener for deviceready
   document.addEventListener("deviceready",
   onDeviceReady, false);
// Older versions of Blackberry < 5.0 don't support
// PhoneGap's custom events, so instead we need to perform
// an interval check every 500 milliseconds to see whether
// PhoneGap is ready. Once done, the interval will be
// cleared and normal processing can begin.
   intervalID = window.setInterval(function() {
   if (PhoneGap.available) {
    onDeviceReady();
           }
       }, 500);
   }

   function onDeviceReady() {
   window.clearInterval(intervalID);
// set to true
   isPhoneGapReady = true;

   alert('The device is now ready');
   }
// Set an onload handler to call the init function
   window.onload = init;
于 2012-10-17T13:18:19.500 に答える