2011-11-21 15 views
8

Tengo el último teléfono 1.2 y puse el código de prueba de los documentos en mi aplicación. Cuando ejecuto mi aplicación tanto en el simulador (xcode 4.2 simulator 5.0) como en mi iPad con 5, aparece el error "Geolocation Error: timeout".Phonegap Geolocation Error: timeout

Alguien más ha experimentado esto? Aquí está mi código:

document.addEventListener("deviceready", onDeviceReady, false); 
     // PhoneGap is ready 
     function onDeviceReady() { 
     var myOptions = { enableHighAccuracy: true }; 
     navigator.geolocation.getCurrentPosition(onSuccess, onError,myOptions);} 

Gracias!

Respuesta

0

Creo que falta el problema de importación del archivo de script. Debe importar phonegap-1.2.0.js en lugar de phonegap.js.

siguiendo el trabajo de snippet en el simulador de iOS 5 y también en el dispositivo.

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Device Properties Example</title> 
     <script type="text/javascript" charset="utf-8" src="phonegap-1.2.0.js"></script> 
     <script type="text/javascript" charset="utf-8"> 
      // Wait for PhoneGap to load 
      document.addEventListener("deviceready", onDeviceReady, false); 
      // PhoneGap is ready 
      function onDeviceReady() { 
       var myOptions = { enableHighAccuracy: true }; 
       navigator.geolocation.getCurrentPosition(onSuccess, onError,myOptions); 
      } 
      // onSuccess Geolocation 
      function onSuccess(position) { 
       var element = document.getElementById('geolocation'); 
       element.innerHTML = 'Latitude: '   + position.coords.latitude    + '
' + 'Longitude: ' + position.coords.longitude + '
' + 'Altitude: ' + position.coords.altitude + '
' + 'Accuracy: ' + position.coords.accuracy + '
' + 'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '
' + 'Heading: ' + position.coords.heading + '
' + 'Speed: ' + position.coords.speed + '
' + 'Timestamp: ' + new Date(position.timestamp) + '
'; } // onError Callback receives a PositionError object function onError(error) { alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n'); } </script> </head> <body> <p id="geolocation">Finding geolocation...</p> </body> </html>
+0

Si está utilizando PhoneGap Build importando phonegap.js está realmente bien: Build incorpora la última versión estable tanto como phonegap.js y phonegap-x.y.z.js. –

0

La respuesta de iMayur está mostrando, que la API de geolocalización no nativa está trabajando. Si llama a este script la primera vez en un iphone, entonces se le preguntará la "pregunta de acceso a la geolocalización" desde la API HTML5 de los navegadores.

Creo que aquí es un problema más grande en PhoneGap: Issuetracker #197

[EDIT]

Hay un nuevo tema abierto: Issuetracker #304

+2

Ninguno de esos enlaces funciona. – skybondsor

0

No sé si lo arreglaron para usted. Suponiendo que su código es correcto: navigator.geolocation.getCurrentPosition (onSuccess, onError, {'enableHighAccuracy': true, 'timeout': 10000}); Agregue la parte de tiempo de espera y ya no debería dar un error de tiempo de espera.

+0

sigue recibiendo el error – vinesh