地理定位在笔记本电脑上工作,但不在智能手机上

Posted

技术标签:

【中文标题】地理定位在笔记本电脑上工作,但不在智能手机上【英文标题】:Geolocation Working on Laptop but Not on Smartphone 【发布时间】:2021-09-03 16:41:22 【问题描述】:

有谁知道为什么这在智能手机上不起作用(在 android 上测试),但在计算机上起作用(在 macbook 上测试)。

基本上当用户点击一个按钮时,浏览器会请求位置许可。在笔记本电脑浏览器上运行良好,但在智能手机上却不行。


// calling geolocation on click
myButtonElement.addEventListener("submit", function (e) 
    e.preventDefault();
    navigator.geolocation.getCurrentPosition(success, error);
);

const error = (errorObj) => 
  // handle error
;

const success = (position) => 
  // call weather api etc...
;



【问题讨论】:

【参考方案1】:

我遇到了同样的问题,这就是我所做的:

首先确保您已更新设备上的 chrome 浏览器。

    开始第一台移动设备的定位服务 调用window.onload = () => getLocation()函数onLoad

通过这样做,它询问了我的许可并且效果很好。

window.onload = () => 
  getLocation()
  
  // or
  // calling geolocation on click
  // myButtonElement.addEventListener('submit', (evt) => 
  //  evt.preventDefault();
  //  getLocation()
  // );


const successHandler = (position) =>  
  alert(position.coords.latitude) 
  alert(position.coords.longitude)


const errorHandler = (errorObj) =>  
  alert(errorObj.code + ": " + errorObj.message); 


const getLocation = () => 
  navigator.geolocation.getCurrentPosition( 
    successHandler,
    errorHandler, 
    
      enableHighAccuracy: true, 
      maximumAge: 10000
    
  );

【讨论】:

如果我先在我的设备上打开 GPS 就可以了。但如果 GPS 关闭,它应该提醒用户是否要共享位置。 如果您已经拒绝或接受,则不会。在chrome上,你可以点击地址栏左侧的锁并重置权限

以上是关于地理定位在笔记本电脑上工作,但不在智能手机上的主要内容,如果未能解决你的问题,请参考以下文章

地理定位离子在浏览器测试中工作但不在android上

win32 api根据wifi和IP地址对笔记本电脑进行地理定位

为啥 html5 地理位置无法获得结果?

智能手机设备上的地理位置无法运行

地理定位移动测试,无需 https 即可进行网络地理定位

电脑连上手机网络热点但是不能上网为啥??