【问题标题】:Can't use HTML5 geolocation with Android 4.4无法在 Android 4.4 中使用 HTML5 地理定位
【发布时间】:2015-07-11 18:50:32
【问题描述】:

我正在开发一个应该在 iOS 和 Android 上运行的网络应用程序,并使用 HTML5 的地理定位。

我们已经在 Android 4.1 (Samsung Galaxy Tab 2) 和带有 iOS 模拟器和设备的几个 iOs 版本上对其进行了测试,一切都很好,并且通过了 onSuccess 回调,

但是当我们尝试在 Android 4.4.2 的 Wiko Sunset 手机上 上对其进行测试时,成功和失败都没有通过

当我们访问一些询问我们位置的网站时(例如Mappy),我们遇到了一个弹出错误,说我们的位置它无法获取我们的位置,我们应该检查地理定位服务是否已激活(确实是)。

我们在 4 个浏览器中遇到了这种情况:

  • 歌剧
  • 火狐
  • 原生 Android 浏览器。

是否可以在 Android 4.4 中使用 HTML 5 地理定位 API?

这是我们测试 Angular 控制器的代码。

testTTS.controller('mainCtrl', ['$scope', '$ionicPlatform', function($scope, $ionicPlatform) {
        testTTS.geolocation = false;


        var options = { 
            enableHighAccuracy: true
        };

        onSuccess = function(position) {
            alert('Latitude: '          + position.coords.latitude          + '\n' +
                  'Longitude: '         + position.coords.longitude         + '\n' +
                  'Altitude: '          + position.coords.altitude          + '\n' +
                  'Accuracy: '          + position.coords.accuracy          + '\n' +
                  'Altitude Accuracy: ' + position.coords.altitudeAccuracy  + '\n' +
                  'Heading: '           + position.coords.heading           + '\n' +
                  'Speed: '             + position.coords.speed             + '\n' +
                  'Timestamp: '         + position.timestamp                + '\n');
        };

        onFail = function(error) {
            alert('code: '    + error.code    + '\n' +
                  'message: ' + error.message + '\n');
        };

            navigator.geolocation.getCurrentPosition(onSuccess, onFail, options);

}]);

【问题讨论】:

  • 我不认为问题出在 SO,是设备,我已经在带有 android 4.4 的 nexus 7 上进行了地理定位
  • 感谢您的反馈。似乎确实如此。

标签: angularjs cordova geolocation ionic android-4.4-kitkat


【解决方案1】:

试试这个,它在安卓设备上对我有用

function getGpsCordinates(callback) {
    if ("geolocation" in navigator) {                  
        navigator.geolocation.getCurrentPosition(
            //Success
            function (position) {
                console.log("GPS: Success");
                callback(position);
            },
            //Error
            function (error) {
                console.log("GPS: Error");
                var position = {
                  coords: {
                      longitude: 0,
                      latitude: 0,
                      speed: 0
                  }
              };
              callback(position);
            },
            { timeout: 7000, enableHighAccuracy: false});
    } else {
        var position = {
            coords: {
                longitude: 0,
                latitude: 0,
                speed: 0
            }
        };
        console.log("GPS: Not Supported");
        callback(position);
    }
    console.log("GPS: Continued");
}

getGpsCordinates(function(mycallback) {
  alert(mycallback.coords.latitude);
});

【讨论】:

  • 好的,我尽快试试。
  • 那么@BillRousseau 有什么消息吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
相关资源
最近更新 更多