微信小程序开发-IP地址查询-例子
微信小程序开发 小程序搜索框 IP地址查询 搜索查询 样例

微信小程序 开发 参考 https://mp.weixin.qq.com/debug/wxadoc/dev/component/

search.wxml
<view class="container">
<view class="page-body">
<view class="weui-search-bar {{searchFocusCss}}" id="searchBar">
<view class="weui-search-bar__form">
<view class="weui-search-bar__box">
<icon class="weui-icon-search"></icon>
<input type="text" class="weui-search-bar__input" id="searchInput" placeholder="输入IP" confirm-type="search" bindinput="bindKeyInput" bindconfirm="searchSubmit" value="{{searchValue}}" focus="{{focus}}" />
<a href="javascript:" class="weui-icon-clear" id="searchClear" bindtap="searchClearClick"></a>
</view>
<view class="weui-search-bar__label" id="searchText" bindtap="searchTextClick">
<icon class="weui-icon-search"></icon>
<view class="weui-search-bar__label_span">搜索(8.8.8.8)</view>
</view>
</view>
<view class="weui-search-bar__cancel-btn" id="searchCancel" bindtap="searchCancelClick">取消</view>
</view>
</view>
<view class="page-section">
<view class="page-section-title">
<text>查询结果</text>
</view>
<view class="page-section-spacing">
<scroll-view scroll-y="true" class="ip-scroll" bindscrolltoupper="upper" bindscrolltolower="lower" bindscroll="scroll" scroll-into-view="{{toView}}" scroll-top="{{scrollTop}}">
<view class="scroll-view-item">
<view class="view-item-ip"> {{r.ip}}</view>
</view>
<view class="weui-cell">
<view class="weui-cell__bd">
<text>{{r.continent}}</text>
</view>
<view class="weui-cell__ft">大洲</view>
</view>
<view class="weui-cell">
<view class="weui-cell__bd">
<text>{{r.country}}</text>
</view>
<view class="weui-cell__ft">国家</view>
</view>
<view class="weui-cell">
<view class="weui-cell__bd">
<text>{{r.province}}</text>
</view>
<view class="weui-cell__ft">省份</view>
</view>
<view class="weui-cell">
<view class="weui-cell__bd">
<text>{{r.city}}</text>
</view>
<view class="weui-cell__ft">城市</view>
</view>
<view class="weui-cell">
<view class="weui-cell__bd">
<text>{{r.district}}</text>
</view>
<view class="weui-cell__ft">县区</view>
</view>
<view class="weui-cell">
<view class="weui-cell__bd">
<text>{{r.isp}}</text>
</view>
<view class="weui-cell__ft">运营商</view>
</view>
<view class="weui-cell">
<view class="weui-cell__bd">
<text>{{r.areacode}}</text>
</view>
<view class="weui-cell__ft">行政区划</view>
</view>
<view class="weui-cell">
<view class="weui-cell__bd">
<text>{{r.en}}</text>
</view>
<view class="weui-cell__ft">国家英文</view>
</view>
<view class="weui-cell">
<view class="weui-cell__bd">
<text>{{r.cc}}</text>
</view>
<view class="weui-cell__ft">国家缩写</view>
</view>
<view class="weui-cell">
<view class="weui-cell__bd">
<text>{{r.lng}}</text>
</view>
<view class="weui-cell__ft">经度</view>
</view>
<view class="weui-cell">
<view class="weui-cell__bd">
<text>{{r.lat}}</text>
</view>
<view class="weui-cell__ft">纬度</view>
</view>
<view class="weui-cell">
<view class="weui-cell__bd">
<text>{{r.version}}</text>
</view>
<view class="weui-cell__ft">版本</view>
</view>
</scroll-view>
<view class="ip-tip">滚动查看内容</view>
</view>
</view>
</view>
search.js
Page({
data: {
inputValue: '',
focus: false,
searchFocusCss: '',
r: []
},
onReady: function () {
var that = this;
wx.request({
url: 'https://www.qqzeng.com/ip',
method: 'POST',
data: {
ip: 'qqzengip'
},
header: { 'content-type': 'application/x-www-form-urlencoded' },
success: function (res) {
that.setData({
r: res.data.data
})
},
fail: function () {
// fail
},
complete: function () {
// complete
}
})
},
searchTextClick: function () {
this.setData({ searchFocusCss: 'weui-search-bar_focusing', focus: true })
},
searchCancelClick: function () {
this.setData({ searchFocusCss: '', focus: false })
},
searchClearClick: function () {
this.setData({ searchValue: '', focus: true })
},
bindKeyInput: function (e) {
this.setData({ inputValue: e.detail.value })
},
//搜索提交
searchSubmit: function () {
var that = this;
var ip = this.data.inputValue;
if (ip) {
var isIP = ip.match(/^([1-9]\d*|0[0-7]*|0x[\da-f]+)(?:\.([1-9]\d*|0[0-7]*|0x[\da-f]+))(?:\.([1-9]\d*|0[0-7]*|0x[\da-f]+))(?:\.([1-9]\d*|0[0-7]*|0x[\da-f]+))$/i);
if (!isIP) {
wx.showToast({ title: 'ip格式不正确', image: '/images/tip.png' });
return false;
}
wx.showToast({
title: '搜索中',
icon: 'loading'
});
wx.request({
url: 'https://www.qqzeng.com/ip',
method: 'POST',
data: {
ip: ip
},
header: { 'content-type': 'application/x-www-form-urlencoded' },
success: function (res) {
that.setData({
r: res.data.data
})
},
fail: function () {
// fail
},
complete: function () {
// complete
wx.hideToast();
}
})
}
},
onShareAppMessage: function () {
return {
title: 'IP地址查询-qqzeng-ip',
path: '/pages/ip/search',
success: function (res) {
// 分享成功
},
fail: function (res) {
// 分享失败
}
}
}
})
search.wxss
@import "../common/weui.wxss";
.page-section-spacing {
margin-top: 0rpx;
}
.page-section-title {
text-align: center;
padding: 40rpx 0rpx 0rpx 0rpx;
color: #9b9b9b;
font-size: 36rpx;
}
@media (min-width: 320px) {
.ip-scroll {
height: 640rpx;
}
}
@media (min-width: 360px) {
.ip-scroll {
height: 816rpx;
}
}
@media (min-width: 375px) {
.ip-scroll {
height: 836rpx;
}
}
@media (min-width: 384px) {
.ip-scroll {
height: 826rpx;
}
}
@media (min-width: 414px) {
.ip-scroll {
height: 868rpx;
}
}
.scroll-view-item {
height: 90rpx;
line-height: 90rpx;
color: #000;
border-bottom: 1px solid #eee;
text-align: center;
vertical-align: middle;
margin: 0px 20px;
}
.view-item-ip {
line-height: 90rpx;
color: #2ab059;
display: inline-block;
font-size: 36rpx;
}
.weui-cell__bd {
color: #2ab059;
}
.ip-tip {
color: #eee;
font-size: 20rpx;
text-align: center;
padding-top: 20rpx;
}
app.json
{
"pages": [
"pages/ip/search",
"pages/about/info"
],
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#2ab059",
"navigationBarTitleText": "IP地址查询",
"navigationBarTextStyle": "#ffffff"
},
"tabBar": {
"color": "#7A7E83",
"selectedColor": "#2ab059",
"borderStyle": "#2ab059",
"backgroundColor": "#ffffff",
"list": [
{
"pagePath": "pages/ip/search",
"iconPath": "images/location.png",
"selectedIconPath": "images/location_hl.png",
"text": "IP查询"
},
{
"pagePath": "pages/about/info",
"iconPath": "images/about.png",
"selectedIconPath": "images/about_hl.png",
"text": "关于"
}
]
}
}
SSL证书
HTTPS 请求
tls 仅支持 1.2 及以上版本



官网:https://www.qqzeng.com演示:https://www.qqzeng.com/ip开发:https://github.com/zengzhan/qqzeng-ip
微信小程序开发-IP地址查询-例子的更多相关文章
- JavaScript和微信小程序获取IP地址的方法
最近公司新加了一个需求,根据用户登录的IP地址判断是否重复登录,重复登录就进行逼退,那么怎么获取到浏览器的IP地址呢?最后发现搜狐提供了一个JS接口,可以通过它获取到客户端的IP. 接口地址如下: h ...
- 【云开发】10分钟零基础学会做一个快递查询微信小程序,快速掌握微信小程序开发技能(轮播图、API请求)
大家好,我叫小秃僧 这次分享的是10分钟零基础学会做一个快递查询微信小程序,快速掌握开发微信小程序技能. 这篇文章偏基础,特别适合还没有开发过微信小程序的童鞋,一些概念和逻辑我会讲细一点,尽可能用图说 ...
- 微信小程序开发学习资料
作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- 微信小程序开发06-一个业务页面的完成
前言 接上文:微信小程序开发05-日历组件的实现 github地址:https://github.com/yexiaochai/wxdemo 这里来说一说我们的理念,我们也学习小程序开发有一周多了,从 ...
- 零基础入门微信小程序开发
注:本文来源于:<零基础入门微信小程序开发> 课程介绍 本达人课是一个系列入门教程,目标是从 0 开始带领读者上手实战,课程以微信小程序的核心概念作为主线,介绍配置文件.页面样式文件.Ja ...
- 微信小程序开发日记——高仿知乎日报(下)
本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...
- 微信小程序开发心得--动画机制
微信小程序也已出来有一段时间了,最近写了几款微信小程序项目,今天来说说感受.首先开发一款微信小程序,最主要的就是针对于公司来运营的,因为,在申请appid(微信小程序ID号)时候,需要填写相关的公司认 ...
- 微信小程序开发之初探
本文是以一个简单的小例子,来简要讲解微信小程序开发步骤,希望促进学习分享. 概念 微信小程序,简称小程序,缩写xcx,英文mini program.是一种不需要下载安装即可使用的应用,它实现了应用“触 ...
- 微信小程序开发(1) 天气预报
本文介绍如何使用微信小程序开发天气预报功能. 一.项目文件列表 二.小程序配置 使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. ...
随机推荐
- python作业01
1.编译型语言在应用源执行前,需要先通过编译将程序源代码翻译为可被硬件平台直接运维的二进制机器码,编译好的二进制执行文件仅能在对应平台运行.因此不依赖解释器,执行效率高,跨平台性差.常见的编译型语言: ...
- 使用angular-ui-router替代ng-router
angular框架自身提供的ng-route在一定程度上满足了我们的需求,但是他只针对于单视图,比如点击一个link跳转到另一个视图,但是在实际业务中,需要一个状态对应的视图中还包含其他的视图,或者一 ...
- 学习资料分享(Java第一行代码视频)<susmote.com>
17年买了一本书,第一行代码(JAVA),李兴华编写的. 一开始我是按照书本一页一页的啃,一个点一个点的去学,虽然当时学的有些枯燥,但里面的知识点大部分还是弄的懂,只是一次偶然,因为有点质疑书上写的( ...
- React 组件间通讯
React 组件间通讯 说 React 组件间通讯之前,我们先来讨论一下 React 组件究竟有多少种层级间的关系.假设我们开发的项目是一个纯 React 的项目,那我们项目应该有如下类似的关系: 父 ...
- 【Python】 零碎知识积累 I
大概也是出于初高中时学化学,积累各种反应和物质的习惯,还有大学学各种外语时一看见不认识的词就马上记下来的习惯,形成了一种能记一点是一点的零碎知识记录的癖好.这篇文章就是专门拿来记录这些零碎知识的,没事 ...
- 用java理解程序逻辑小结
1.Java常见的注释有哪些,语法是怎样的? 1)单行注释用//表示,编译器看到//会忽略该行//后的所文本 2)多行注释/* */表示,编译器看到/*时会搜索接下来的*/,忽略掉/* */之间的文本 ...
- pl/sql的介绍
为什么需要pl/sql编程? 因为使用纯的sql语句来操作数据库,有先天性的技术缺陷: 1.不能模块编程: 2.执行速度慢: 3.安全性有问题: 4.浪费带宽. pl/sql是什么? pl/sql(p ...
- 【Java EE】从零开始写项目【总结】
从零开发项目概述 最近这一直在复习数据结构和算法,也就是前面发出去的排序算法八大基础排序总结,Java实现单向链表,栈和队列就是这么简单,十道简单算法题等等... 被虐得不要不要的,即使是非常简单有时 ...
- NOIP知识点
基础算法 贪心 枚举 分治 二分 倍增 高精度 模拟 图论 图 最短路(dijkstra.spfa.floyd) 最小生成树(kruskal.prim) 并查集 拓扑排序 二分图染色 Tarjan 树 ...
- Java基础学习笔记六 Java基础语法之类和ArrayList
引用数据类型 引用数据类型分类,提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类.Random类.我们可以把类的类型为两种: 第一种,Java为我们提供好的类,如Scanner ...