我们尝试在iOS 10系统下通过微信公众号和Safari打开了去哪儿、和百度外卖等常用网站的预定服务,点击获取附近服务,结果都是显示定位失败。但是在iOS 9系统下是可以正常自动获取位置和周边推荐的服务。

为什么iOS 10 下无法自动获取精确定位_App

(iOS 10下无法自动获取当前具体位置)

  

为什么iOS 10 下无法自动获取精确定位_App_02

(iOS 10下无法自动获取当前具体位置)

  

为什么iOS 10 下无法自动获取精确定位_iOS_03

(iOS 9下可以自动获取当前具体位置)

  非https网站被限制获取位置信息

在iOS 10中,苹果对webkit定位权限进行了修改,所有定位请求的页面必须是https协议的。如果是非https网页,在http协议下通过html5原生定位接口会返回错误,也就是无法正常定位到用户的具体位置,而已经支持https的网站则不会受影响。

  通过浏览器调试控制台我们可以看http访问报错的详细信息:

  

为什么iOS 10 下无法自动获取精确定位_SSL_04

不安全的http连接访问用户位置信息并发送,可能造成用户信息的泄漏。Apple的这一举措,也是在逐步推进自家产品的安全性。早先在2016全球开发者WWDC大会上,Apple就宣布了自2017年1月1日起, App Store上的所有App应用需强制开启ATS安全特性,使App及网页通讯以https加密传输连接网络服务

  强制启用ATS安全功能的好处

强制应用自动通过 https(而不是 http)连接网络服务,这能够通过加密来保障用户数据安全。并且要求非常严格,包括只使用TLS1.2协议,必须使用RSA2048位或ECC256位的公钥算法及SHA256签名算法等。否则应用将遭到屏蔽,用户无法获得相关资讯

为什么iOS 10 下无法自动获取精确定位_iOS_05

  如何部署https加密

任何新站点或新的web应用都应该上线前启用https加密, 确保用户体验和业务未受影响。使用https协议就意味着需要在服务器上部署SSL证书。

使用全球信任的SSL证书,即根证书内置在所有平台的证书,并且选择国际化的CA,可以保证长久提供稳定、可靠、安全的SSL数字证书服务。

国际知名的Symantec SSL证书可满足ATS的各项要求,在SSL证书管理、监控和风险评测等拥有业内领先的技术解决方案和高效专业化的技术支持服务,能够帮助用户快捷且正确配置SSL证书。