0

我有一个非常奇怪的问题。以下代码适用于我计算机上的所有浏览器以及 IOS 模拟器(所有设备),但不适用于我自己的 iPhone 5 或 iPad 3(均运行 6.0.2)。

getLocation: function()
{   
    if(navigator.geolocation)
    {   console.log('It is supported');
        navigator.geolocation.getCurrentPosition(getPosition);
    }

    function getPosition(position)
    {
        console.log('You should see this :/');
        var coords = [];
            coords['longitude'] = position.coords.longitude;
            coords['latitude'] = position.coords.latitude;
            console.log(coords["longitude"]);
    }

调试时会发生以下情况:在我的浏览器/IOS 模拟器中,我收到所有 console.log 消息,但在我的 iPhone/iPad 中,我只收到“支持”,下一行永远不会执行?!我应该怎么办?当我尝试其他 Geolocations 站点时,它可以工作......真的很奇怪。

我在这里建立了一个测试站点,请告诉我你的结果,它对你有用吗? 如果它有效,则应显示带有您的经度的警报弹出窗口。 测试站点(在您的 iPhone/iPad 上试用...)

4

1 回答 1

0

好吧,我找到了一种解决方案。当您连续 3 次授予 iOS Safari 权限时,它将停止请求您的权限。这就解释了为什么要求我许可的弹出窗口从未出现过。当我在我的 iPhone 上进行恢复(设置->恢复->恢复隐私)时,它起作用了。

但不知何故,我仍然认为这是一个错误,即使我连续三次授予我的权限,我的 getPosition 函数仍然应该执行?

于 2013-01-16T09:03:09.100 回答