Javascript JS-地理定位API在移动设备上甚至在HTTPS上都不起作用

Javascript JS-地理定位API在移动设备上甚至在HTTPS上都不起作用,javascript,geolocation,Javascript,Geolocation,我正在使用地理定位API获取用户当前位置,它在桌面上运行良好。在移动设备上(我正在安卓10、Chrome上测试),它不会向用户请求位置许可,所以我当然不能得到我需要的东西 我正在本地Apache web服务器上开发HTTP。 我尝试使用HTTPS,用Ngrok公开我的本地主机(它可以同时返回HTTP和HTTPS),但仍然不起作用 这就是JS代码: var-lng; var lat; if(导航器.地理位置){ navigator.geolocation.getCurrentPosition(ge

我正在使用地理定位API获取用户当前位置,它在桌面上运行良好。在移动设备上(我正在安卓10、Chrome上测试),它不会向用户请求位置许可,所以我当然不能得到我需要的东西

我正在本地Apache web服务器上开发HTTP。 我尝试使用HTTPS,用Ngrok公开我的本地主机(它可以同时返回HTTP和HTTPS),但仍然不起作用

这就是JS代码:

var-lng;
var lat;
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(getPosition);
}
功能getPosition(位置){
lng=位置坐标经度;
纬度=位置坐标纬度;
//此处的其他一些代码(不影响API)
}
编辑
我还检查了我的手机设置和chrome设置,它们都很好。我访问了其他一些使用相同API的网站,它们实际上可以正常工作。

错误回调函数返回什么? 这就是答案所在

var lng;
var lat;

if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(getPosition, error);
}

function getPosition(position) {
  lng = position.coords.longitude;
  lat = position.coords.latitude;

  // Some other code here (does not affect the API)
}

function error(err) {
  console.warn(`ERROR(${err.code}): ${err.message}`);
}

基本上,一切都很好

我已经在手机上多次尝试了这个代码,没有做任何更改。 我又试了一次,突然它开始工作了


我不知道发生了什么,但现在它没有任何改变。

检查你的android设置,chrome在过去可能被拒绝位置访问。另外,请检查您的chrome设置,查看特定于站点的区块。我已经检查了android设置。我还访问了另一个使用相同API的网站,它可以正常工作