HTML5地理位置 - 不适用于Android

时间:2014-04-14 10:24:30

标签: javascript html5 geolocation

我正在开发的项目使用Android智能手机(不知道是哪个版本,但最近的版本)来查找用户的当前位置。然而,目前,它提出了“分享当前位置”允许/拒绝问题,但随后什么也没做。如果你把它留在那,那么后面的页面会稍微重新加载,如果你允许它,那么它会在任何情况下重新加载。它应该在消息提示中显示该位置。

我会指出这适用于我可以访问的iPhone,并且在IE10中(我认为是)。

<asp:Button ID="btnLocate" Text="Loc" OnClientClick="return GetLocation()" runat="server" />

<script type="text/javascript">

            function GetLocation()
            {
                if (navigator.geolocation)
                {
                    navigator.geolocation.getCurrentPosition(ShowPosition, ShowError, { enableHighAccuracy: true, timeout: 31000, maximumAge: 90000 });
                }
                else{alert("Geolocation is not supported by this browser.");}
            }
            function ShowPosition(position)
            {
                alert(position.coords.latitude + "," + position.coords.longitude);
                return false;
            }
            function ShowError(error)
            {
                switch(error.code) 
                {
                    case error.PERMISSION_DENIED:
                        alert("User denied the request for Geolocation.");
                        break;
                    case error.POSITION_UNAVAILABLE:
                        alert("Location information is unavailable.");
                        break;
                    case error.TIMEOUT:
                        alert("The request to get user location timed out.");
                        break;
                    case error.UNKNOWN_ERROR:
                        alert("An unknown error occurred.");
                        break;
                }
            }
        </script>

我还应该提一下GPS已启用,Google地图能够立即找到该位置。

1 个答案:

答案 0 :(得分:1)

他的代码的问题是该按钮充当表单提交操作。因此,即使浏览器暂停提示确定,一旦表单提交被解雇,它就会暂停。将return false添加到处理程序的末尾应该更正它(基本上说,&#34;不要提交此表单&#34;)。我不太了解ASP.Net,所以可能不是完全正确的。