告诉你,网页设计里面那个叫做Geolocation API的东东真的很重要!有了它,咱们网站就能知道你在哪儿,然后给你提供最适合你的服务~举例来说,只要学会JavaScript编程,就可以直接用Geolocation API获取到手机的定位信息,这样一来,大家在浏览网页的时候就能享受到更加个性化和便捷的体验。那么这篇文章就是要给大家讲讲如何才能正确地使用JavaScript中的Geolocation API,还有怎么应对它可能出现的问题以及相关设置等等。
navigator.geolocation.getCurrentPosition(success[, error[, options]]);
成功处理函数与错误处理函数
用Geolocation API的话,你得传递两个函数进去:一个是成功的,也就是当它找到你在哪里时会执行;另一个是失败的,就是说它找不到你在什么地方时会运行。如果你想告诉网站你现在在哪儿,就用成功函数把,这样就能拿到包含具体位置和找到你的时间的Geoposition对象了!
JavaScript Code复制内容到剪贴板 navigator.geolocation.getCurrentPosition(function(position) { //success handler code goes here console.log(position); }, function(error) { //error handler code goes here console.log(error); }, {//options enableHighAccuracy: true, timeout: 5000, maximumAge: 0 });
用好这个函数,我们可以根据你现在在哪儿做点实际事儿,比如说给你看看附近有什么店子,或者给你指个路之类的。但如果你不想让我知道你在哪儿咋办?那就要用上错误处理函数了,它还有个叫 error 的宝贝来报错,里面会告诉你是哪里不对劲,比如超时啦、不让我访问啦这种小意外。
配置项
除了可以处理函数和错误等问题外,我们还可以将第三个参数当作地理位置API的设置来使用!常常用到的设置如下所示:
– enableHighAccuracy:这个开关每次都得关掉打’真'(True)的话可以得到更精准的数据,但也会浪费些时间和电。
-定时器:就是设置个超时时间,时间一到我可就不管你在哪儿了
maxAge就是告诉你在哪儿留多久位置信息,只要超时了那边的资料就不再去取咯。
解析这些设定,不用担心找不到精准准时的位置!想要实时知道自己所处的位置?只要设置enableHighAccuracy为真,加上timeout时间保证定位及时,这事儿妥妥滴!
watchPosition方法
除了GetCurrentPosition,Geolocation API还有个更厉害的方法叫watchPosition!它可以时刻告诉你手机或电脑在哪儿。每次换地方就会自动触发你设置的函数~
直接在watchPosition方法里面设定想要追踪的参数,就能得到WatchID~如果不想继续追踪的话,别忘了用clearWatch方法将这个WatchID删掉!
浏览器兼容性
现在的浏览器基本上都能理解Geolocation API了!不过在操作前记得看看自己的浏览器能否支持,毕竟有些旧版浏览器可能会Hold不住。
想要知道你的浏览器支不支持 Geolocation API ?就看`navigator.geolocation`这玩意儿是不是在你的网页上,有的话就能试试`getCurrentPosition`功能。如果都没有,那就赶紧提醒用户更新你的浏览器,或者换其他办法获取地理位置信息!
watchId = navigator.geolocation.watchPosition(success[, error[, options]]);
地理位置服务与隐私问题
用Geolocation API可以轻松得知用户在哪,棒呆了!不过别忘了保护他们的隐私哦~法规和隐私政策方面要遵守得稳稳当当!
看网页上的HTML5页面时,我们的手机可是有GPS定位功能的呢;怎么搞定这个定位?像啥调整定位精度、加个超时时间还有弄好缓存策略啦等等这些都挺关键滴;当然,保护大家的隐私可不能忽视乱收集和分享你们的地址那是绝对不行的哈~
navigator.geolocation.clearWatch(watchId);
结语
老实说,Geolocation API这个东西就是网页编辑们用来定位用户在哪儿的神器!还可以根据不同地方的特点给用户定制个性化服务!我们只要搞好API的设置、学会应对各种情况和保护用户隐私就行了。这样的话,大家用起来会觉得更爽歪歪哟
平常我们要学会利用地理定位API来做开发!结合实际情况挑选合适的方法和设定参数,这样能提升产品品质,大家用得才会更开心!
if ('geolocation' in navigator) { // getting usr's position } else { // tips: your position is not available }
。
评论0