10年专业网络服务供应商

新闻资讯

互联网新闻源,了解更多行业纵深观点

当前位置:首页 > 资讯 > 网站开发

苹果手机ios10网站不能地图定位问题的解决方法

时间:2017-03-14 13:48来源:无锡做网站公司

摘要:我们的发现,在新版IOS10环境下的苹果手机,打开客户网站的时候发现无法进行地图定位,显示错误信息为“定位失败”。那么,这个是对用户体验的一个巨大问题,甚至会造成用户流失等负面影响。

苹果手机是一度被很多国人追捧的神器,甚至不惜卖肾去买的一个破手机。新版苹果IOS10系统也更新出来了,很多用户呢,也在第一时间更新了一下,瞬间觉得自己高大上了许多。 

  然而,我们的技术却发现,在新版IOS10环境下的苹果手机,打开客户网站的时候发现无法进行地图定位,显示错误信息为“定位失败”。那么,这个是对用户体验的一个巨大问题,甚至会造成用户流失等负面影响。 

  是什么原因导致了网站自动定位失败呢?(如下图)

  起初,我们以为是IOS10系统屏蔽了国内的百度地图定位信息,在调试中发现,其实是web站没有及时支持https协议,因为IOS系统升级改版支持协议了 

  其实,苹果手机对webkit定位权限进行了修改,所有定位请求的页面必须是https协议的!(我勒个去...)而且在http协议下通过HTML5原生定位接口会返回错误,也就是无法正常定位到用户的具体位置,而已经支持https的网站则不会受影响。 

  如何解决IOS10下地图定位失败的问题呢? 

  我们提供两种方案,供广大的技术人员和站长进行修改调试。 

  一、把你网站的http协议设置为Https,把代码中出现的http协议全部更换掉,不要遗漏。 

  二、借助第三方技术解决方案,分两种情况进行介绍: 

  第一种情况:假如网站不支持https访问 

  1、页面引入js 

  <script src="/Content/Scripts/jquery.flexslider.js"></script>

  <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=6yAoynmTPNlTBa8z1X4LfwGE"></script>

  <script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>

   2、使得网站获得定位的方法

   var geolocation = new BMap.Geolocation();

  geolocation.getCurrentPosition(function (r) {

  if (this.getStatus() == BMAP_STATUS_SUCCESS) {

  var mk = new BMap.Marker(r.point);

  currentLat = r.point.lat;

  currentLon = r.point.lng;

  SetCookie("curLat", currentLat, 1); //设置cookie

  SetCookie("curLng", currentLon, 1); //设置cookie

  var pt = new BMap.Point(currentLon, currentLat);

  var geoc = new BMap.Geocoder();

  geoc.getLocation(pt, function (rs) {

  var addComp = rs.addressComponents;

  SetCookie("curLat", currentLat, 1); //设置cookie

  SetCookie("curLng", currentLon, 1); //设置cookie

  var city = addComp.city;

  var addComp = rs.addressComponents;

  var texts = addComp.district + "-" + addComp.street + "-" + addComp.streetNumber;

  //获取地理位置成功,跳转

  }

   第二种情况:webkit定位方案

   1、在页面引入js,代码请注意比较上一种情况

   <script src="/Content/Scripts/jquery.flexslider.js"></script>

  <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=6yAoynmTPNlTBa8z1X4LfwGE"></script>

  <script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>

   2、 通过手机的webKit定位方案(目前ios系统对非https网站不提供支持):window.navigator.geolocation.getCurrentPosition

   navigator.geolocation.getCurrentPosition(translatePoint); //定位

  function translatePoint(position) {

  var currentLat = position.coords.latitude;

  var currentLon = position.coords.longitude;

  SetCookie("curLat", currentLat, 1);//设置cookie

  SetCookie("curLng", currentLon, 1);//设置cookie

  var gpsPoint = new BMap.Point(currentLon, currentLat);

  var pt = new BMap.Point(currentLon, currentLat);

  var geoc = new BMap.Geocoder();

  geoc.getLocation(pt, function (rs) {

  var addComp = rs.addressComponents;

  SetCookie("curLat", currentLat, 1); //设置cookie

  SetCookie("curLng", currentLon, 1); //设置cookie

  //alert(JSON.stringify(addComp));

  var city = addComp.city;

  //获得具体街道信息

  var texts = addComp.district + "-" + addComp.street + "-" + addComp.streetNumber;

  $("#nowRoad").text(texts);

  });

至此,苹果手机定位修复成功!

  以上的javascript代码,可以进行地图定位的一个调试,大家可以参考使用。无锡马氪软件专业从事网站开发与无锡做网站、APP开发运营、设计等,竭诚希望能与社会各界朋友合作。


声明:除非注明,本站内容由无锡网站建设马氪软件原创发布©,转载请联系我们授权合作。

感谢您耐心阅读,祝好!
 您阅读这条内容,共花了: 

给这篇内容写个评语吧!

苹果手机ios10网站不能地图定位问题的解决方法
我们的发现,在新版IOS10环境下的苹果手机,打开客户网站的时候发现无法进行地图定位,显示错误信息为“定位失败”。那么,这个是对用户体验的一个巨大问题,甚至会造成用户流失等负面影响。
发布时间:2017-03-14
© 第二秀网络科技有限公司
长按识别二维码查看详细内容