无法在我的 ubuntu-16.04 浏览器(例如 Chrome 和 Firefox)中获取地理位置

无法在我的 ubuntu-16.04 浏览器(例如 Chrome 和 Firefox)中获取地理位置

我正在构建任何 angularjs 应用程序。我正在尝试获取应用程序/网站访问者的地理位置。

当用户访问我的网站时,浏览器会发出获取用户位置的请求。请求显示正常,接受后,我的 ubuntu 浏览器(包括 Firefox 和 Chrome)中没有返回任何内容。

但是当我在 Windows 或 Android 手机上检查该应用程序时,会返回用户位置。

这是 ubuntu 浏览器的问题吗?

这是地理定位测试的代码https://plnkr.co/edit/ezXP93oD9uEsn5r1pfO1?p=preview

 appProduct.service('geolocation', function ($q, $http) {
    var getLocation = function() {
            var defer = $q.defer();
            // If supported and have permission for location...
            if (navigator.geolocation) {
                // 
                navigator.geolocation.getCurrentPosition(function(position){
                    var result = {latitude : position.coords.latitude , longitude : position.coords.longitude}
                    // Adding randomization since we are all in the same location...
                    result.latitude += (Math.random() >0.5? -Math.random()/100 : Math.random()/100  );
                    result.longitude += (Math.random() >0.5? -Math.random()/100 : Math.random()/100  );
                    getNearbyCity(result.latitude, result.longitude).then(function(data){
                        result.address = data.data.results[1].formatted_address;
                        defer.resolve(result);
                    });
                }, function(error){
                    defer.reject({message: error.message, code:error.code});
                });
            }
            else {
                defer.reject({error: 'Geolocation not supported'});
            }
            return defer.promise;
        }
        var getNearbyCity = function (latitude, longitude){
            var defer = $q.defer();
            var url = 'https://maps.googleapis.com/maps/api/geocode/json?latlng=' + latitude +',' + longitude +'&sensor=true';
            $http({method: 'GET', url: url}).
                success(function(data, status, headers, config) {
                     defer.resolve({data : data});
                }).
                error(function(data, status, headers, config) {
                  defer.reject({error: 'City not found'});
                });
            return defer.promise;
        }
        var service = {
            getLocation : getLocation,
            getNearbyCity: getNearbyCity
        };
        return service;
  });

答案1

我认为这个问题来自 ubuntu 软件中心的 chromium 或 firefox。

我删除了 Chromium,然后直接从 Chrome 网站下载了 Chrome。它会询问兼容性。之后我点击下载的文件,它会带你到 ubuntu 软件中心,它会告诉你,你正在从“第三方”安装。

安装后,我的地理定位工作正常。我猜如果你下载最新版本并手动安装,Firefox 也会发生同样的事情。以下是有关如何手动安装 Firefox 的链接... https://www.liberiangeek.net/2012/04/download-and-install-firefox-manually-in-ubuntu-12-04-precise-pangolin/

相关内容