微信小程序?qū)崿F(xiàn)IP歸屬地獲取功能
在日常開發(fā)中,后端主要提供數(shù)據(jù)以及處理業(yè)務(wù)邏輯,前端主要提供頁面布局以及數(shù)據(jù)展示。后端程序員對(duì)于頁面布局接觸比較少,但是小程序有完善的文檔說明、頁面布局也相對(duì)簡(jiǎn)單,實(shí)現(xiàn)起來相對(duì)簡(jiǎn)單一些。而且小程序相對(duì)于安卓或者IOS審核機(jī)制也相對(duì)簡(jiǎn)單一些。本文介紹如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單獲取IP歸屬地的小程序。
效果展示
頁面主要有兩個(gè)功能:
- 顯示當(dāng)前IP地址和歸屬地。
- 根據(jù)查詢條件顯示歸屬地。
頁面布局從上往下分成三部分:
- 第一部分為文字說明,介紹頁面功能。
- 第二部分顯示當(dāng)前IP地址。
- 第三部分顯示查詢的地址結(jié)果。
實(shí)現(xiàn)步驟
將三個(gè)布局從上往下,從上往下依次編寫,并配置樣式和布局詳解。
頂部展示(第一部分)
實(shí)現(xiàn)效果:
設(shè)置一個(gè)藍(lán)色布局,設(shè)置藍(lán)色背景,寬度為100%
,高度為330rpx
。
<view style="height: 100%;width: 100%;"> <view style="width: 100%;height: 330rpx;background-color: #6e74dd"> </view> </view>
展示效果:
2、 里面分成兩個(gè)布局,左邊顯示文字,右邊顯示一個(gè)小圖標(biāo)。
- 首先設(shè)置布局左浮動(dòng),
float:left
- 左邊文字字體設(shè)置成白色,文字調(diào)整大小和邊距。
- 右邊調(diào)整邊距和大小。
詳情代碼:
# xwml <view class="ip_intro left_float"> <view style="font-size:x-large">IP地址歸屬地</view> <view style="padding-top: 3%;">一鍵查詢 快速方便</view> </view> <view class="left_float intro_icon"> <image style="width: 80px;height: 80px;" src="/images/ip_search.png" mode="heightFix"></image> </view>
# wxss .left_float { float: left; } .ip_intro { padding-left: 5%; padding-top: 10%; color: white; } .intro_icon { padding-left: 25%; margin-top: 8%; }
效果展示:
中間展示(第二部分)
實(shí)現(xiàn)效果:
- 首先
view
設(shè)置寬度90%
,高度自適應(yīng),背景調(diào)整成白色。整體往上移動(dòng),部分覆蓋在第一部分藍(lán)色背景上。 - 左側(cè)設(shè)置
view
設(shè)置導(dǎo)航條,設(shè)置上下寬,左右窄的布局。 - 右側(cè)調(diào)整邊距和顯示自提大小。
- 請(qǐng)求
IP歸屬地
信息,請(qǐng)求地址www.jeremy7.cn/springboot-schedule/holiday/ip-address
。
詳情代碼:
# wxml <view class="clean_float local_div"> <view class="left_float"> <view class="local_bar"></view> </view> <view class="left_float local_text"> <view>當(dāng)前IP地址:{{localIp}}</view> <view style="margin-top: 12rpx;">歸屬地:{{localAddress}}</view> </view> </view>
# wxss .clean_float { clear:both; } .local_div { width: 90%; height: 130rpx; margin: 0 auto; background-color: #ffffff; margin-top: -10%; border-radius: 10px; } .local_bar { margin-left: 30rpx; margin-top: 50rpx; border-radius: 2px; width: 8rpx; height: 50rpx; background-color: #6e74dd; } .local_text { font-size: small; margin-left: 25rpx; margin-top: 35rpx; }
# js data: { localIp: "---", localAddress: "---" } var that = this; wx.request({ url: "htts://www.jeremy7.cn/springboot-schedule/holiday/ip-address", success (res){ var data = res.data; that.setData({ localAddress:data.address, localIp:data.ip }) } })
效果展示:
尾部部分(第三部分)
實(shí)現(xiàn)效果:
尾部部分是IP歸屬地的查詢,根據(jù)用戶輸入的IP
查詢歸屬地。
- 整個(gè)最大的
view
寬度90%
,背景設(shè)置成白色,調(diào)整高度和圓角。 - 最上面設(shè)置文字說明,設(shè)置邊距和字體大小。
- 中間輸入框,設(shè)置文字居中,需要將行高和高度設(shè)置成相同的高度
height: 78rpx; line-height:78rpx;
。 - 按查詢按鈕調(diào)整間距,高度以及圓角。
- 請(qǐng)求
IP歸屬地
信息,請(qǐng)求地址www.jeremy7.cn/springboot-schedule/holiday/ip-address
,傳入查詢的IP
。
詳情代碼如下:
# wxml <view class="ip_find"> <view class="ip_find_text">IP歸屬地查詢</view> <view> <input class="ip_input" type="text" bindinput="changeIp"/> </view> <view class="ip_find_btn"> <view bindtap="findAddress">查詢</view> </view> <view class="result_div" wx:if="{{showResult}}"> <view class="left_float"> <view class="local_bar"></view> </view> <view class="left_float local_text"> <view>當(dāng)前IP地址:{{resultIp}}</view> <view style="margin-top: 12rpx;">歸屬地:{{resultAddress}}</view> </view> </view> </view>
# wxss .ip_find { width: 90%; height: 700rpx; margin: 0 auto; background-color: #ffffff; margin-top: 20px; border-radius: 10px; } .ip_input { height: 78rpx; background-color: #F5F5F5; width: 90%; margin: 30rpx auto; border-radius: 24px; text-align: center; line-height:78rpx; } .ip_find_text { padding-top: 28px; padding-left: 20px; font-weight: bolder; } .ip_find_btn { height: 78rpx; background-color: #6e74dd; width: 90%; margin: 0 auto; border-radius: 24px; text-align: center; line-height:78rpx; }
# js findAddress() { var that = this; var searchIp = this.data.searchIp; console.log(searchIp); var valid = that.isValidIP(searchIp); if(!valid) { wx.showToast({ title: "請(qǐng)?zhí)顚懻_ IP", icon: 'none', duration: 2000 }) return; } that.searchAddress(searchIp); }, searchAddress(searchIp) { var that = this; wx.request({ url: "htts://www.jeremy7.cn/springboot-schedule/holiday/ip-address", data: { ip:searchIp }, success (res){ var data = res.data; var data = res.data; that.setData({ resultAddress:data.address, resultIp:data.ip, showResult:true }) } }) }, // 驗(yàn)證 IP 規(guī)格合法 isValidIP(ip) { var reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/; return reg.test(ip); }, changeIp: function (e){ this.setData({ searchIp: e.detail.value }) },
changeIp
每次輸入數(shù)據(jù)實(shí)時(shí)傳遞給searchIp
變量。isValidIP
驗(yàn)證IP
的合法性。- 結(jié)果展示使用
showResult
判斷,查詢成功后showResult
改成true
,使用wx:if
顯示結(jié)果數(shù)據(jù)。 效果展示:
總結(jié)
從上、中、下三個(gè)部分分別講解頁面的布局。
整體布局主要是需要設(shè)置寬度,一般設(shè)置成90%
的寬度,高度自適應(yīng)。
視圖之間的布局主要調(diào)整邊距、修改大小。
文字上下居中需要設(shè)置height
和line-height
改成一致。
整體布局需要顏色統(tǒng)一,看起來簡(jiǎn)潔、大方。
后端程序?qū)η岸瞬皇煜?,但是多多練?xí)一些標(biāo)簽的使用,上手還是很快的。
小程序展示
打開微信掃一掃,查看你的IP歸屬地:
到此這篇關(guān)于微信小程序?qū)崿F(xiàn)IP歸屬地獲取功能的文章就介紹到這了,更多相關(guān)小程序IP歸屬地獲取內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
BootStrap daterangepicker 雙日歷控件
這篇文章主要介紹了BootStrap daterangepicker 雙日歷控件,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-06-06js將URL網(wǎng)址轉(zhuǎn)為16進(jìn)制加密與解密函數(shù)
這篇文章主要介紹了js將URL網(wǎng)址轉(zhuǎn)為16進(jìn)制加密與解密函數(shù),很多朋友喜歡將網(wǎng)址轉(zhuǎn)換為16進(jìn)制,網(wǎng)上實(shí)在找不到轉(zhuǎn)換為\x這樣的工具,于是手工改一下2020-03-03JavaScript實(shí)現(xiàn)密碼強(qiáng)度實(shí)時(shí)驗(yàn)證
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)密碼強(qiáng)度實(shí)時(shí)驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03JS中實(shí)現(xiàn)簡(jiǎn)單Formatter函數(shù)示例代碼
JS沒有提供方便使用的Formatter函數(shù),用字符拼接的方式看起來混亂難讀,下面是JS簡(jiǎn)單實(shí)現(xiàn)版本(沒有嚴(yán)格測(cè)試)2014-08-08帶你領(lǐng)略O(shè)bject.assign()方法的操作方式
這篇文章主要介紹了帶你領(lǐng)略O(shè)bject.assign()方法的操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08JavaScript通過mouseover()實(shí)現(xiàn)圖片變大效果的示例
下面小編就為大家分享一篇JavaScript通過mouseover()實(shí)現(xiàn)圖片變大效果的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助2017-12-12JavaScript常用正則驗(yàn)證函數(shù)實(shí)例小結(jié)【年齡,數(shù)字,Email,手機(jī),URL,日期等】
這篇文章主要介紹了JavaScript常用正則驗(yàn)證函數(shù),結(jié)合實(shí)例形式總結(jié)分析了javascript針對(duì)年齡、數(shù)字、Email、手機(jī)、URL、日期等格式常用正則驗(yàn)證技巧,需要的朋友可以參考下2017-01-01