兄弟,找到原因了.http://stackoverflow.com/questions/7518468/phonegap-gps-without-internet再看看phonegap的官方文档:http://docs.phonegap.com/en/1.8.1/cordova_geolocation_geolocation.md.html#geolocationOptions最下面的确有这个说明.所以,只要把
navigator.geolocation.getCurrentPosition(onSuccess, onError);
改成
navigator.geolocation.getCurrentPosition(onSuccess, onError, { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true });
就行了,如果有错误,会提示错误 .

解决方案 »

  1.   

    多谢dryZeng兄弟,加了HighAccuracy: true属性后有反应了,但是我这边又出现一个问题,就是调用接口后不返回经纬度信息,但是手机上能看到gps设置正在运行(这个之前是没有的),如果设置超时时间的话,到了指定的超时间见,就会报错:报超时。不知道兄弟你是否也有着情况
      

  2.   

    我把timeout设置的是20秒,因为搜星的确是很费时的事情.我把timeout设置长后,就可以取得经纬度了.不过在室内也是会超时的,因为它根本搜不到星.
      

  3.   

    为什么我还是出现timeout expired
    还有想问一下模拟器上可以吗
      

  4.   

    在浏览器上面可以返回坐标
    但是真机上面出现了the last location provider was disabled
      

  5.   

    这里有一个开源示例,免费无任何限制就能下载,希望对你有点帮助。
    http://dev.10086.cn/ude/template-detail-49.do
      

  6.   

    检查一下你的手机是否开启了定位:我用的是小米手机:设置----位置服务---GPS卫星定位