我有这个代码使用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浏览器上测试它。但它立即说用户拒绝许可。它甚至不会问我是否愿意允许它。如何获得请求权限。我在网站设置中也应该要求该位置获得许可。
如果我在桌面上试试,它会起作用。
有谁知道错误是什么?
由于
答案 0 :(得分:0)
这不是通过HTML或JavaScript完成的(这是一件好事)。必须通过用户的应用设置完成。否则,开发人员只能绕过用户的意愿,将接受使用位置服务的代码编入其应用程序。