JavaScript Geolocation 在所有 Android 浏览器中都失败 - 在 iOS 和 PC 上工作

标签 javascript android geolocation

这是我最基本的代码:

if (navigator.geolocation) {

     // WILL GET TO THIS POINT WITH TEST `ALERT()`  

      navigator.geolocation.getCurrentPosition(

     // WILL NOT GET OT THIS POINT IN ANDROID BROWSER

     function(position) {
        var latitude = position.coords.latitude;
        var longitude = position.coords.longitude;
      }, showError, {
        enableHighAccuracy: true,
        timeout : 5000,
        maximumAge: 0
       }
       );
    } else {
        return alert('No Geolocation Support.');
    }
};

它在 iOS(Safari 和 Chrome)中运行良好;以及我尝试过的所有 PC 浏览器。

在 Android 上,我已经试用了标准的 HTC 浏览器、Chrome 和 Dolphin。卫星看起来像是在搜索,然后停止了。我什至不记得它要求我允许使用地理定位(可能忽略了那部分)

更新:它确实适用于我的 Nexus 10 Chrome 浏览器。但不是我的 HTC One X。

更新 2 - 这似乎只发生在一台 Android 设备上,一台 AT&T HTC One X。所有其他 Android 设备、PC 浏览器和 iOS 都可以正常工作。在 One X 上,我收到错误代码:超时。此外,GPS 在此设备上工作正常。

最佳答案

你必须使用 HTTPS

从 Chrome 50 开始,Chrome 不再支持使用 HTML5 Geolocation API 从非安全连接传送的页面获取用户位置。这意味着进行 Geolocation API 调用的页面必须从安全上下文(例如 HTTPS)提供服务。

https://developers.google.com/web/updates/2016/04/geolocation-on-secure-contexts-only?hl=en

关于JavaScript Geolocation 在所有 Android 浏览器中都失败 - 在 iOS 和 PC 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18107105/

相关文章:

android - 设备 ID 混淆和 SIGNATURE_INVALID

ios - 如何在 iOS 中使用真实设备位置?

javascript - Ionic 带有地理位置警报 : 'mySecondApp.app/www/index.html' Would like to use your current location

javascript - 如何使用 google map api 和 javascript 查找附近的医院

javascript - IE8 破坏了我的 AJAX...FF 没问题

java - 你可以将 html 彩色文本添加到包含共享首选项的字符串中吗?

javascript - Safari 8 和 7.1 中的地理定位 API 不断请求许可

javascript - JS中的字符串修改问题

javascript - 无法将 Node 应用程序部署到 Openshift

java - 我如何将 bytearray 存储为 HashMap 中的值?