如何在Web应用程序中请求html5 geolocation api的用户权限?

时间:2017-02-04 17:32:04

标签: javascript android html5 google-chrome geolocation

我有这个代码使用html5 geolocation

    this.getCurrentLocation = function(callback) {
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(function (pos) {
                callback({
                    'lat' : pos.coords.latitude,
                    'lng' : pos.coords.longitude        
                });
            }, function (error) {
                switch(error.code) {
                    case error.PERMISSION_DENIED:
                        alert("Could not get your location. User denied the request for Geolocation.");
                        break;
                    case error.POSITION_UNAVAILABLE:
                        alert("Could not get your location. Location information is unavailable.");
                        break;
                    case error.TIMEOUT:
                        alert("Could not get your location. The request to get user location timed out.");
                        break;
                    case error.UNKNOWN_ERROR:
                        alert("Could not get your location. An unknown error occurred.");
                        break;
                    default:
                        alert("Could not get your location. An unknown error occurred.");
                }
                callback(null);
            }, {
                maximumAge: 500000, 
                enableHighAccuracy:true, 
                timeout: 6000
            });
        }
    };

我在Android手机上的Chrome浏览器上测试它。但它立即说用户拒绝许可。它甚至不会问我是否愿意允许它。如何获得请求权限。我在网站设置中也应该要求该位置获得许可。

如果我在桌面上试试,它会起作用。

有谁知道错误是什么?

由于

1 个答案:

答案 0 :(得分:0)

这不是通过HTML或JavaScript完成的(这是一件好事)。必须通过用户的应用设置完成。否则,开发人员只能绕过用户的意愿,将接受使用位置服务的代码编入其应用程序。