为什么这个HTML5地理定位代码不能仅在iOS上获取用户的位置?

时间:2017-04-12 15:59:23

标签: javascript ios html5 web geolocation

我正在测试这个简单的地理定位代码,但由于某些原因它无法在iOS设备上运行。我已经在MacOS,Windows,Windows Phone,Android手机等上进行了测试,它可以正常运行。

授予权限后,我始终收到“POSITION_UNAVAILABLE”错误。

navigator.geolocation.getCurrentPosition(
  function success(position) {
    var primary = getUniqueId();

    var url = endpointBaseurl +
      '?property_code=' + propertyCode +
      '&distribService=' + distribService +
      '&lat=' + position.coords.latitude +
      '&lon=' + position.coords.longitude +
      '&distribTarget=' + primary;

    //Update the line below to be one of your links.
    addMenuItem('Offers', url);
  },
  function error(err) {
    switch (err.code) {
      case 1:
        alert("You must allow location in order to receive tobacco offers. Please refresh and try again.")
        break;
      case 2:
        alert('POSITION_UNAVAILABLE');
        break;
      case 3:
        alert('Error 3');
        break;
      default:
        alert("Unable to determine your location. Please refresh and try again.");
    }
  }, options);

我已经在物理设备上以及通过Browserstack进行了测试。该网站正在使用HTTPS运行。

关于为什么应该不起作用的任何想法或我应该如何进行调试?我把头发拉过这个。

1 个答案:

答案 0 :(得分:0)

修改this页面上,它显示以下内容:

  

地理位置的获取失败,因为至少有一个内部位置来源返回了内部错误。

尝试使用PositionError.message(在您的情况下,err.message):

  

返回一个人类可读的DOMString,描述了它的细节   错误。规格说明这主要是为了   调试使用而不是直接在用户界面中显示。

确保您已启用位置服务并将其设置为始终或在iOS设置中使用时。