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

【导读】苹果手机是一度被很多国人追捧的神器,甚至不惜卖肾去买的一个破手机。新版苹果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开发运营、设计等,竭诚希望能与社会各界朋友合作。

                                                           

 

  无锡马氪软件:微博@马氪软件

网站建设 | SEO优化排名 | CCTV央视广告 | 企业宣传册 | ISO质量管理体系认证 | 商标注册 | 微信开发
淘宝阿里巴巴网店装修 | LOGO设计 | 百度360竞价推广 | 知识产权代理 | 企业400电话 | 主机服务器
无锡专业网站建设开发服务商 — 想你所想,服务至上
无锡做网站公司官方网站:
http://makerwebz.com        http://mkapps.cn


本文链接:http://mkapps.cn/news/ask/88.html

无锡第二秀网络科技有限公司

  • 旗下 : 马氪软件
  • 主营业务 : 网站设计开发;微信公众号、小程序开发;APP开发;网络营销推广;广告设计 等
  • 联系人 : 徐经理
  • 手机 : 18706171959
  • 电话 : 0510-85873959
  • 邮箱 : b1990g228@qq.com
  • 网址 : http://mkapps.cn

如无特别说明©本站内容均为原创,转载请标注来源:无锡做网站公司http://mkapps.cn


    匿名评论
  • 评论
人参与,条评论
 您阅读这篇文章共花了: 

分享这篇文章吧!

相关文章