地理位置API不适用于移动设备

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了地理位置API不适用于移动设备相关的知识,希望对你有一定的参考价值。

我在React / Redux上编写我的Web应用程序。我需要借助Geolocation API获取用户位置。在桌面浏览器上一切正常,但在手机上(在小米Redmi Note 3和iPhone 5s上检查)它会抛出错误代码1 - 权限被拒绝。并且它不会请求获取该位置的任何权限。

这是我在我的网站上运行的测试样本:

componentDidMount() {
    if (window.navigator.geolocation) {
        window.navigator.geolocation.getCurrentPosition(position => {
            alert(position.coords.latitude + ' ' + position.coords.longitude);
        }, err => {
            alert('ERROR: ' + err.code);
        });
    } else {
        alert('Geolocation API is not supported!');
    }
}

这个问题的解决方案是什么?

答案

得到了同样的问题......解决了:

检查您的手机权限以分享您的位置。

在iPhone上:设置 - >位置服务 - > [您的浏览器]

https://support.apple.com/en-ca/HT203033

添加:

Chrome需要https才能使用地理位置:https://developers.google.com/web/updates/2016/04/geolocation-on-secure-contexts-only

另一答案

我有解决方案。我正在使用Web Application Manifest,它需要设置使用Geolocation API的权限。

我们只需要在manifest.webapp文件中设置“required_features”选项:

{
  "required_features": ["geolocation"]
}

希望它对某些人有用;)

以上是关于地理位置API不适用于移动设备的主要内容,如果未能解决你的问题,请参考以下文章

Jquery 代码不适用于移动设备(Android)

检测移动设备中的当前地理位置

VueJS 不适用于移动设备

event.preventDefault() 不适用于 jQuery 移动设备?

正在尝试在 Android 设备上检索位置...适用于模拟器,但不适用于真实设备

Javascript重定向不适用于移动设备