【问题标题】:navigator.geolocation.getCurrentPosition no longer working in Safari mobile after iOS9 updatenavigator.geolocation.getCurrentPosition 在 iOS9 更新后不再在 Safari 移动设备中工作
【发布时间】:2015-12-19 15:12:59
【问题描述】:

我有一个网络应用程序,其中包含用于获取用户坐标的代码:

if (navigator.geolocation) {
   navigator.geolocation.getCurrentPosition(function(position) {  

但是当我更新到 iOS9 时,它就停止工作了。我什至不再收到 Safari 提示,要求获得我的位置的许可。更新到 iOS9 后还有其他人遇到此问题并能够解决吗?

【问题讨论】:

    标签: javascript safari geolocation ios9 navigator


    【解决方案1】:

    我自己也注意到了这一点,我想知道 iOS 9 Webkit 是否已经开始阻止这种通过 HTTP 工作,因为我知道 Chrome 很快就会阻止这种情况,因为它目前会在 Web 控制台中引发以下警报。

    getCurrentPosition() 和 watchPosition() 在不安全的情况下被弃用 起源,并且支持将在未来被删除。你应该 考虑将您的应用程序切换到安全源,例如 HTTPS。 详情请见https://goo.gl/rStTGz

    【讨论】:

    • Chrome 从 50 版开始限制这一点
    【解决方案2】:

    尝试在 iOS 的常规设置中启用本地化。设置 > 本地化 > 按本地化以启用它。 现在它可以工作了。

    iOS 9 似乎在安装后在设置中禁用了本地化。

    【讨论】:

      【解决方案3】:

      如果您在 Mac 上运行,则需要为 safari 启用定位服务: enable location on OSX

      【讨论】:

      • 上面写着 Safari mobile 和 iOS
      猜你喜欢
      • 1970-01-01
      • 2017-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多