我正在测试这个简单的地理定位代码,但由于某些原因它无法在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运行。
关于为什么应该不起作用的任何想法或我应该如何进行调试?我把头发拉过这个。
答案 0 :(得分:0)
修改强> 在this页面上,它显示以下内容:
地理位置的获取失败,因为至少有一个内部位置来源返回了内部错误。
尝试使用PositionError.message
(在您的情况下,err.message
):
返回一个人类可读的DOMString,描述了它的细节 错误。规格说明这主要是为了 调试使用而不是直接在用户界面中显示。
确保您已启用位置服务并将其设置为始终或在iOS设置中使用时。