Android 13本地HTML调用getCurrentPosition报错User denied Geolocation求助
ERROR(1): User denied Geolocation
问题说明
你没法通过修改HTML代码来解决这个问题,根源是Android 13及以上的Chrome浏览器有严格的安全限制:本地HTML文件(用file://路径打开的)不允许请求地理位置权限——哪怕你给Chrome开了系统级的位置权限,浏览器也不会弹出授权提示,直接返回上面的错误。这是因为file://属于非安全上下文,而地理位置API只能在HTTPS、本地服务器这类安全上下文环境中正常工作。
解决办法
你的HTML代码本身没有问题,不用修改核心逻辑,只要把文件放到安全上下文里运行就行,给你两个简单的办法:
办法一:用电脑搭临时本地服务器(推荐)
- 要是你电脑装了Python(没装的话去官网装个,步骤很简单),打开电脑的命令提示符(Windows)或终端(Mac),进到存HTML文件的文件夹,输入对应命令:
- 装的是Python 3:
python -m http.server 8000 - 装的是Python 2:
python -m SimpleHTTPServer 8000
- 装的是Python 3:
- 手机和电脑连同一个WiFi,在手机Chrome里输入「http://你的电脑IP地址:8000/你的HTML文件名.html」,就能正常打开,点按钮会弹出位置授权提示了。
办法二:用手机端本地服务器APP
去应用商店搜「本地服务器」类的APP(比如「HTTP Server」「Simple HTTP Server」),这类APP能把手机里的文件夹变成一个本地网站。打开APP后选择存放HTML文件的文件夹,启动服务器,然后用手机Chrome访问APP给出的地址(一般是http://localhost:端口号或者http://手机IP:端口号),就能正常使用位置功能了。
内容的提问来源于stack exchange,提问作者user2357932
相关产品推荐
相关产品推荐

