<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
想要像一些平臺那樣顯示使用者的位置資訊,例如某省市那樣。那麼這是如何做到的, 據說這個位置資訊的準確性在通訊網路運營商那裡?先不管,先實踐嘗試下能不能獲取。
嘗試了使用 navigator.geolocation,但未能成功拿到資訊。
getGeolocation(){ if ('geolocation' in navigator) { /* 地理位置服務可用 */ console.log('地理位置服務可用') navigator.geolocation.getCurrentPosition(function (position) { console.dir('回撥成功') console.dir(position) // 沒有輸出 console.dir(position.coords.latitude, position.coords.longitude) }, function (error) { console.error(error) }) } else { /* 地理位置服務不可用 */ console.error('地理位置服務可用') } }
嘗試使用http://pv.sohu.com/cityjson?ie=utf-8獲取使用者位置資訊, 成功獲取到資訊,資訊樣本如下:
{"cip": "14.11.11.11", "cid": "440000", "cname": "廣東省"}
// 需要做跨域處理 getIpAndAddressSohu(){ // config 是設定物件,可按需設定,例如 responseType,headers 中設定 token 等 const config = { headers: { Accept: 'application/json', 'Content-Type': 'application/json;charset=UTF-8', }, } axios.get('/apiSohu/cityjson?ie=utf-8', config).then(res => { console.log(res.data) // var returnCitySN = {"cip": "14.23.44.50", "cid": "440000", "cname": "廣東省"}; const info = res.data.substring(19, res.data.length - 1) console.log(info) // {"cip": "14.23.44.50", "cid": "440000", "cname": "廣東省"} this.ip = JSON.parse(info).cip this.address = JSON.parse(info).cname }) }
偵錯的時候,做了跨域處理。
proxy: { '/apiSohu': { target: 'http://pv.sohu.com/', // localhost=>target changeOrigin: true, pathRewrite: { '/apiSohu': '/' } }, }
下面是一張獲取到位置資訊的效果圖:
需要先引入百度地圖依賴,有一個引數 ak 需要注意,這需要像管理方申請。例如下方這樣
<script src="https://api.map.baidu.com/api?v=2.0&ak=3ufnnh6aD5CST"></script>
getLocation() { /*獲取當前位置(瀏覽器定位)*/ const $this = this; var geolocation = new BMap.Geolocation();//返回使用者當前的位置 geolocation.getCurrentPosition(function (r) { if (this.getStatus() == BMAP_STATUS_SUCCESS) { $this.city = r.address.city; console.log(r.address) // {city: '廣州市', city_code: 0, district: '', province: '廣東省', street: '', …} } }); }
function getLocationBaiduIp(){/*獲取使用者當前位置(ip定位)*/ function myFun(result){ const cityName = result.name; console.log(result) // {center: O, level: 12, name: '廣州市', code: 257} } var myCity = new BMap.LocalCity(); myCity.get(myFun); }
成功使用者的省市位置,以及經緯度座標,但會先彈窗徵求使用者意見。
嘗試結果不太理想,sohu 的介面內部是咋實現的,這似乎沒有彈起像下面那樣的徵詢使用者意見的提示。
而在 navigator.geolocation 和 BMap.Geolocation() 中是彈起了的。
用別人的介面總歸是沒多大意思,也不知道不用徵求使用者意見是咋實現的。
經實測 sohu 的介面和 new BMap.Geolocation() 都可以拿到使用者的位置資訊(省市、經緯度等)。
到此這篇關於利用JavaScript獲取使用者IP屬地方法詳解的文章就介紹到這了,更多相關JavaScript獲取使用者IP屬地內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45