android上的javascript geolocation不起作用

前端之家收集整理的这篇文章主要介绍了android上的javascript geolocation不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个依赖于移动用户的地理位置数据的网站.我这样做是典型的方式通过:
function initialize() {
   if(window.google && google.gears) {
        var geo = google.gears.factory.create('beta.geolocation');
        geo.getCurrentPosition(useLocation,errorOnLocate);
   }
   else if(navigator.geolocation) {
       navigator.geolocation.getCurrentPosition(useLocation,errorOnLocate);
   }
   else {
       alert("no geo found");
   }
}

function errorOnLocate(message)
{
    alert(message);
    zoomTo(-34.397,150.644);
}

即使我切换了地理位置方法的顺序,这一定会导致errorOnLocate函数中的[object PositionError]失败.

这是一个HTC Hero与Android 2.1使用任何浏览器内置.我的gps是,我已经指示浏览器允许网站查看我的位置. Google地图本机应用程序上的“位置”功能在手机上接收到我的位置

更进一步,如果我访问我的网站使用FireFox 3.5在我的个人电脑上,它会找到我的位置正确(我相信它使用ip和ap数据点的组合).无论哪种方式,它都使用相同的JavaScript.

编辑:这是浏览器中的html / js,而不是本机应用程序.此外,确切的错误消息是“最后一个位置提供程序被禁用”

解决方法

这是从WebView还是从Android浏览器应用程序访问?如果从WebView,您可能需要通过Java调用启用地理定位.参见 WebView reference.

否则,我不确定你的JS是什么问题,但是这里的HTML JS,我知道与Android浏览器一起使用:

<!DOCTYPE html> 
<html> 
<head> 
  <script type="text/javascript"> 
function watchLocation(successCallback,errorCallback) {
  successCallback = successCallback || function(){};
  errorCallback = errorCallback || function(){};

  // Try HTML5-spec geolocation.
  var geolocation = navigator.geolocation;

  if (geolocation) {
    // We have a real geolocation service.
    try {
      function handleSuccess(position) {
        successCallback(position.coords);
      }

      geolocation.watchPosition(handleSuccess,errorCallback,{
        enableHighAccuracy: true,maximumAge: 5000 // 5 sec.
      });
    } catch (err) {
      errorCallback();
    }
  } else {
    errorCallback();
  }
}

function init() {
  watchLocation(function(coords) {
    document.getElementById('test').innerHTML = 'coords: ' + coords.latitude + ',' + coords.longitude;
  },function() {
    document.getElementById('test').innerHTML = 'error';
  });
}
  </script> 
</head> 

<body onload="init()"> 
  <div id="test">Loading...</div> 
</body> 
</html>

猜你在找的Android相关文章