无法在 Android 4.4 中使用 HTML5 地理定位

Posted

技术标签:

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

我正在开发一个应该在 iosandroid 上运行的网络应用程序,并使用 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 上进行了地理定位 感谢您的反馈。似乎确实如此。 【参考方案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 有什么消息吗?

以上是关于无法在 Android 4.4 中使用 HTML5 地理定位的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Android 4.4 KitKat 上快速关闭 ChunkedInputStream

Android Studio -Libgdx-无法使用Gradle发行版“https://services.gradle.org/distributions/gradle-4.4-all.zip”执行

Android 4.4 虚拟设备内部存储不会调整大小

localStorage html5 功能在三星 Android 设备上的 WebView 中不起作用

html5视频无法与android webview一起使用

无法在 Android 4.4.4 上获得分配