【问题标题】:Chrome IOS HTML5 geolocation permission deniedChrome IOS HTML5 地理定位权限被拒绝
【发布时间】:2012-07-15 13:29:37
【问题描述】:

当尝试在 ios 的移动 chrome 上使用 HTML5 地理定位 api 时,我的应用程序会抛出“Permission Denied”错误,甚至没有提示分享我的位置。有没有其他人遇到过这个问题?

PS。这发生在本地和 Heroku 实例上。

这是我在准备好的文档上运行的代码

    var displayCloseFoo = function(position) {
        var lat = position.coords.latitude;
        var lon = position.coords.longitude;

    };

    var displayError =  function(error) {
        var errors = {
            1: 'Permission denied',
            2: 'Position unavailable',
            3: 'Request timeout'
        };
        alert("Error: " + errors[error.code]);
    };

    var runGeo =  function(){
        if (navigator.geolocation) {
            var timeoutVal = 10 * 1000 * 1000;
            navigator.geolocation.getCurrentPosition(
                    displayCloseFoo,
                    displayError,
                    { enableHighAccuracy: true, timeout: timeoutVal, maximumAge: 0 }
            );
        }
        else {
            alert("Geolocation is not supported by this browser");
        }
    };
    runGeo();

谢谢

【问题讨论】:

  • 你的 iOS 模拟器在运行吗?已知会导致主机的定位服务停止工作。
  • 没有。这是一个移动网络应用,不是原生的。

标签: ios html google-chrome w3c-geolocation


【解决方案1】:

安装 chrome.当它打开后,如果你拒绝,它会要求你分享你的位置,你不会得到位置

【讨论】:

    【解决方案2】:

    您必须明确允许 Mobile Chrome 在 ios 中使用定位服务。在 ios6 中,您可以通过转到 Settings->Privacy->Location Services 并将 Chrome 切换为 On 来实现。

    【讨论】:

      【解决方案3】:

      Geolocation 在 Chrome 中无法在本地工作...不知道为什么它不能在您的 Heroku 实例中工作

      看看这个 Fiddle... 它似乎在这里工作正常... http://jsfiddle.net/mattnull/YaCRe/

      【讨论】:

      • 这不适用于 ios 上的移动 chrome。刚刚在我的手机上打开小提琴,它给了我与上面代码相​​同的行为。
      • 奇怪......我做了同样的事情,它在我的手机上工作......你有打开定位服务吗?这可能需要启用
      • 所以我注意到,一旦你拒绝它一次,然后重新加载..它会继续说权限被拒绝......我认为这是因为它在 Chrome 中添加了一个例外来拒绝进一步的访问。
      • 很有趣,我很确定我从未否认过,但我会尝试调查 chrome 异常
      猜你喜欢
      • 2017-05-23
      • 1970-01-01
      • 2019-02-24
      • 1970-01-01
      • 2015-08-30
      • 2018-01-23
      • 1970-01-01
      相关资源
      最近更新 更多