navigator.geolocation.getCurrentPosition 在 Android 浏览器上失败

Posted

技术标签:

【中文标题】navigator.geolocation.getCurrentPosition 在 Android 浏览器上失败【英文标题】:navigator.geolocation.getCurrentPosition fails on Android Browser 【发布时间】:2013-02-11 11:05:17 【问题描述】:

我正在尝试在 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的方法” 您检查了吗:***.com/questions/3397585/…? 【参考方案1】:

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

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

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

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

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

就我而言,这是有效的:


  maximumAge: 0, timeout: 2000, enableHighAccuracy: true

希望这对某人有所帮助。

【讨论】:

【参考方案5】:

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

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

【讨论】:

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

以上是关于navigator.geolocation.getCurrentPosition 在 Android 浏览器上失败的主要内容,如果未能解决你的问题,请参考以下文章