【问题标题】:navigator.geolocation.getCurrentPosition fails on Android Browsernavigator.geolocation.getCurrentPosition 在 Android 浏览器上失败
【发布时间】:2013-01-26 11:38:54
【问题描述】:

我正在尝试在 Android 浏览器上获取地理位置,但没有任何反应。我使用的是三星 Galaxy S3,但我不确定我的浏览器版本。安卓版本为 4.1.2 这是我的代码:

if (navigator.geolocation) {

            var timeoutVal = 10 * 1000 * 1000;
            navigator.geolocation.getCurrentPosition(
              displayPosition,
              displayError,
              { enableHighAccuracy: true, timeout: timeoutVal, maximumAge: 0 }
            );
        }

这是我从本网站复制和粘贴的代码 它给了我“navigator.geolocation” 但是当涉及到“getCurrentPosition”时,我的代码停止工作。移动 Chrome 工作正常,但事实并非如此。我分享了我的立场,但仍然没有任何反应。任何帮助都会得到帮助。 谢谢。

感谢大家,我找到了解决方案, 经过一些 javascript 操作后,我得到了地理位置。我试图在文档准备好之前获取地理位置。它奏效了。

【问题讨论】:

  • 你的displayError 函数被调用了吗?你得到什么错误信息?
  • 不,它没有被调用。我猜问题是“没有这样一个叫做getCurrentPosition的方法”

标签: android browser geolocation navigator


【解决方案1】:

PhoneGap 的地理位置似乎有问题 我有同样的问题 我在 Android 4.1.2 上使用 S3,phonegap 地理定位功能不起作用

【讨论】:

    【解决方案2】:

    为了获得正确的地理位置,您必须在使用地理位置提供的值之前使该代码块工作,因为操作是异步执行的,在这个问题中,我通过在其他之前加载我的地​​理位置脚本找到了解决方案。 js 文件。这解决了我的问题,这个问题的另一个技巧是,当您授予浏览器“始终”读取您的位置的权限时,地理位置工作更加稳定。首次加载后,您永远不会遇到地理定位错误。

    【讨论】:

      【解决方案3】:

      我知道这有点旧,但它不断出现在搜索中,所以我想我会添加一个对我有帮助的提示。

      因为我想在页面加载时获得正确的位置,所以我发现我需要在页面加载后引入一个非常短的延迟。当我没有延迟时,我不会收到任何错误,但我也不会激活手机上的定位协议。这半秒的延迟解决了这个问题。你可以试试延迟,看看它是否能解决你的问题。

      setTimeout(function() {getAutoLocation(true)},500);

      我在“getAutoLocation(true)”函数中获得了位置。这个 setTimeout 的存在只是为了引入延迟。

      【讨论】:

        【解决方案4】:

        您是否在清单中授予 Internet 权限?

        <manifest xlmns:android...>
         ...
         <uses-permission android:name="android.permission.INTERNET"></uses-permission>
        </manifest>
        

        【讨论】:

        • 我正在寻找答案,我在另一个答案中看到了这个,但我不知道在哪里添加这些行。你能告诉我吗?
        • 顺便说一句,这不是本机应用程序,很抱歉我忘了说。
        【解决方案5】:

        我发现部分安卓手机(新旧)无法正常运行该功能 getCurrentPosition,也许是想节省一些电池。

        我玩了watchPosition函数,然后高精度GPS启动了。

        阅读本文以了解如何正确使用参数: http://dev.w3.org/geo/api/spec-source.html#watch-position

        就我而言,这是有效的:

        {
          maximumAge: 0, timeout: 2000, enableHighAccuracy: true
        }
        

        希望这对某人有所帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-03-06
          • 2011-09-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-03
          相关资源
          最近更新 更多