Javascript 谷歌地图API没有';我不能在IOS safari上工作

Javascript 谷歌地图API没有';我不能在IOS safari上工作,javascript,html,ios,google-maps-api-3,safari,Javascript,Html,Ios,Google Maps Api 3,Safari,更新:它不仅适用于safari mobile(chrome for ios可以正常工作)。 我正在尝试使用谷歌地图API获取用户位置 它在桌面FF和Chrome(显示城市和国家)上正常工作,但在iOS safari(iOS 11)上不显示任何内容。此外,它似乎不能在其他一些移动设备上正常工作 请注意,我使用的是HTTPS,因此安全性没有问题 下面是javascript代码: function getLocation(){ if (navigator.geolocation){

更新:它不仅适用于safari mobile(chrome for ios可以正常工作)。

我正在尝试使用谷歌地图API获取用户位置

它在桌面FF和Chrome(显示城市和国家)上正常工作,但在iOS safari(iOS 11)上不显示任何内容。此外,它似乎不能在其他一些移动设备上正常工作

请注意,我使用的是HTTPS,因此安全性没有问题

下面是javascript代码:

function getLocation(){
    if (navigator.geolocation){
        navigator.geolocation.getCurrentPosition(showPosition,showError);
    }
    else{
        document.getElementById("userlocation").innerHTML="Geolocation is not supported by this browser.";
    }
}

function showPosition(position){
    lat=position.coords.latitude;
    lon=position.coords.longitude;
    displayLocation(lat,lon);
}

function showError(error){
    switch(error.code){
        case error.PERMISSION_DENIED:
            document.getElementById("userlocation").innerHTML="User denied the request for Geolocation."
        break;
        case error.POSITION_UNAVAILABLE:
            document.getElementById("userlocation").innerHTML="Location information is unavailable."
        break;
        case error.TIMEOUT:
            document.getElementById("userlocation").innerHTML="The request to get user location timed out."
        break;
        case error.UNKNOWN_ERROR:
            document.getElementById("userlocation").innerHTML="An unknown error occurred."
        break;
    }
}

function displayLocation(latitude,longitude){
    var geocoder;
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(latitude, longitude);

    geocoder.geocode(
        {'latLng': latlng}, 
        function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                if (results[0]) {
                    var add= results[0].formatted_address ;
                    var  value=add.split(",");

                    count=value.length;
                    country=value[count-1];
                    state=value[count-2];
                    city=value[count-3];
                    document.getElementById("userlocation").innerHTML = city + ", " + country;
                }
                else  {
                    document.getElementById("userlocation").innerHTML = "address not found";
                }
            }
            else {
                document.getElementById("userlocation").innerHTML = "Geocoder failed due to: " + status;
            }
        }
    );
}
下面是HTML:

<body onload="getLocation()">
  <p id="userlocation">Getting your location ...</p>
</body>

获取您的位置


提前感谢。

在您的移动设备中,您必须在设置中启用safari的地理位置。如果禁用地理位置,则不会附加任何内容

尝试以下操作:

  • 转到“设置”
  • 下一步,转到机密性(手放在滚动菜单的左侧)
  • 然后,单击位置服务栏
  • 向下滚动并接受该位置的safari服务

如果您的移动设备中有一些问题,请告诉我,您必须在“设置”中为safari启用地理位置。如果禁用地理位置,则不会附加任何内容

尝试以下操作:

  • 转到“设置”
  • 下一步,转到机密性(手放在滚动菜单的左侧)
  • 然后,单击位置服务栏
  • 向下滚动并接受该位置的safari服务

如果您对定位服务有任何疑问,请告诉我,一切都应该是正确的。我在我的网站上接受了位置使用。不确定出了什么问题。定位服务已经启动,一切都应该是正确的。我在我的网站上接受了位置使用。不确定出了什么问题。请尝试在Safari自己的浏览器窗口中加载Google Maps API javascript脚本链接。有一次我这么做了,它显示了一个证书错误,因为在Safari自己的浏览器窗口中加载Google Maps API javascript脚本链接时代理未启用。一旦我这样做了,它显示了一个证书错误,因为代理未启用