对于前端开发人员来说,获取地理位置信息是一项基本需求。而 getCurrentPosition()
和 watchPosition()
这两个 API 一度被广泛使用。然而,从 HTML5 标准发布以来,这两个 API 已经被弃用,并且正在逐步从浏览器中移除。
那么,为什么这两个 API 被弃用了呢?
不安全的根源
getCurrentPosition()
和 watchPosition()
的不安全问题源于它们使用了 GPS、Wi-Fi 等技术来确定当前设备的位置信息。在浏览器中,这些操作需要通过用户授权才能进行。
在早期版本的标准中,这两个 API 的默认行为是请求用户授权,一旦获得授权,就可以自由调用这些 API 获取和监视位置信息。
然而,这种方式存在一个缺陷:用户可能不知道自己授权了哪些网站或应用程序,这会导致他们感到困惑甚至担忧。
出于这个原因,标准委员会决定不再允许网站和应用程序自由地访问用户的位置信息。相反,现在必须要经过用户授权才能访问。
新的解决方案
为了解决这个问题,HTML5 标准引入了一个新的 API:Geolocation API。
使用 Geolocation API,开发人员必须要经过用户授权才能获取和监视位置信息。这样可以保证用户知道自己授权了哪些网站或应用程序,并且可以随时撤销授权。
以下是一个使用 Geolocation API 的示例代码:
-- ----------------------- - ----------------------------------------------------------- - ---------------------- - - ------------------------ - - ---------- - - --------------------------- --- - ---- - ------------------------ -- --- --------- -- ---- ----------- -
总结
getCurrentPosition()
和 watchPosition()
的弃用是出于安全原因。这两个 API 曾经是获取设备位置信息的主要方式,但现在已被 Geolocation API 取代。使用 Geolocation API 可以保护用户的隐私,确保他们知道自己授权了哪些网站或应用程序。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/24893