微信小程序 开发之快递查询功能的实现


Posted in Javascript onJanuary 09, 2017

微信小程序 快递查询功能:

产品需求,

准备api,

代码编写。 

第一步:产品需求,我们需要实现如下图的一个功能,在文本框输入快递单号,点击查询,下面出来我们需要的快递信息

微信小程序 开发之快递查询功能的实现

第二步:准备

我们先找一个快递的api接口,通过http://apistore.baidu.com/我们可以看到很多的api,我们找一个快递查询的

微信小程序 开发之快递查询功能的实现微信小程序 开发之快递查询功能的实现

 我们可以看到有接口地址,和一些参数。做好这个准备接下来就开始编码工作了………… 

第三步:编码工作

我们新建一个Express的文件,然后默认文件准备齐全

微信小程序 开发之快递查询功能的实现

我们现在app.js中把我们的头部导航改为一个绿色的背景色

微信小程序 开发之快递查询功能的实现

在index.json中设置导航的名称:“快递查询”

微信小程序 开发之快递查询功能的实现

在index.wxml中,把默认的代码删掉,放上我们的一个文本输入框,一个查询按钮

<!--index.wxml-->
<view class="container">
  <input placeholder="请输入快递单号" bindinput="input" />
  <button type="primary" bindtap="btnClick"> 查询 </button> 
</view>

接下来我们需要给文本框和按钮加上一个样式:在index.wxss中设置

/**index.wxss**/
 input{border:1px solid #1AAD19; width:90%; height:20px; font-size:12px; padding:5px 10px;}
 button{margin-top:20px;}

到现在为止我们的布局就做好了如图:

 微信小程序 开发之快递查询功能的实现

  接下来我们需要去调用我们事先准备好的api快递查询接口了,我们首先需要在app.js中设置一个网络请求的方法getExpressInfo里面设置两个参数一个快递参数,一个返回的方法。

利用文档给我们提供的wx.request发起网络请求url:地址路径,里面有几个参数muti=0返回多行完整的数据,order=desc按时间由新到旧排列,com快递的名称(快递公司的名称),nu快递单号,header:请求的参数apikey的值为我们自己百度账号的apikey(可以登录自己的百度账号,在个人中心中查看)

//设置一个发起网络请求的方法
 getExpressInfo:function(nu,cb){
  wx.request({
   url: 'http://apis.baidu.com/kuaidicom/express_api/express_api?muti=0&order=desc&com=zhongtong&nu='+nu, 
   data: {
    x: '' ,
    y: ''
   },
   header: {
     'apikey': '247d486b40d7c8da473a9a794f900508'
   },
   success: function(res) {
    //console.log(res.data)
    cb(res.data);
   }
  })
 },
 globalData:{
  userInfo:null
 }

有了这样的请求方法,接下来就需要给我们的查询按钮添加一个点击的事件:bindtap="btnClick",在index.js中添加查询事件,通过app来调用实现写好的请求方法getExpressInfo,在此之前我们需要先获取一下文本框内输入的快递单号,

给文本框绑定一个bindinput事件,

微信小程序 开发之快递查询功能的实现

 获取输入的快递单号。在data:对象中定义两个变量一个输入框的值,一个要显示的快递信息。

//index.js
//获取应用实例
var app = getApp()
Page({
 data: {
  motto: 'Hello World',
  userInfo: {}, 
  einputinfo:null,//输入框值
  expressInfo:null //快递信息
 },
 //事件处理函数
 bindViewTap: function() {
  wx.navigateTo({
   url: '../todos/todos'
  })
 },
 onLoad: function () {
  console.log('onLoad')
  var that = this
  //调用应用实例的方法获取全局数据
  app.getUserInfo(function(userInfo){
   //更新数据
   that.setData({
    userInfo:userInfo
   })
  })
 },
 //快递输入框事件
 input:function(e){
   this.setData({einputinfo:e.detail.value});
 },
 //查询事件
 btnClick:function(){ 
  var thisexpress=this; 
  app.getExpressInfo(this.data.einputinfo,function(data){
    console.log(data);
    thisexpress.setData({expressInfo:data})
  })
 }
})

最后我们需要在index.wxml中把查询出来的快递信息显示出来了,利用vx:for来循环数组。

<!--index.wxml-->
<view class="container">
  <input placeholder="请输入快递单号" bindinput="input" />
  <button type="primary" bindtap="btnClick"> 查询 </button> 
</view>
<view class="expressinfo" wx:for="{{expressInfo.data}}">
  <ul>
   <li>{{item.context}}</li>
   <li>{{item.time}}</li> 
  </ul> 
</view>

 最后一步设置下显示出来的快递信息的样式:

/**index.wxss**/
 input{border:1px solid #1AAD19; width:90%; height:20px; font-size:12px; padding:5px 10px;}
 button{margin-top:20px;}
 .expressinfo{font-size:12px; line-height: 18px;padding:10px; text-align:left;} 
 .expressinfo li{display:block}

   到这里我们的整个查询就完成了……

微信小程序 开发之快递查询功能的实现

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
javascript function调用时的参数检测常用办法
Feb 26 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
Oct 13 Javascript
JQuery之拖拽插件实现代码
Apr 14 Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
Jul 03 Javascript
JavaScript避免代码的重复执行经验技巧分享
Apr 17 Javascript
js 实现数值的千分位及保存小数方法(推荐)
Aug 01 Javascript
js入门之Function函数的使用方法【新手必看】
Nov 22 Javascript
Angular之指令Directive用法详解
Mar 01 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
Dec 01 Javascript
详解angular部署到iis出现404解决方案
Aug 14 Javascript
layui实现数据表格自定义数据项
Oct 26 Javascript
vue.js实现双击放大预览功能
Jun 23 Javascript
vue日期组件 支持vue1.0和2.0
Jan 09 #Javascript
jQuery编写设置和获取颜色的插件
Jan 09 #Javascript
图片懒加载插件实例分享(含解析)
Jan 09 #Javascript
微信小程序 数据封装,参数传值等经验分享
Jan 09 #Javascript
简单实现jQuery多选框功能
Jan 09 #Javascript
微信小程序开发之Tabbar实例详解
Jan 09 #Javascript
javascript监听页面刷新和页面关闭事件方法详解
Jan 09 #Javascript
You might like
使PHP自定义函数返回多个值
2006/11/26 PHP
PHP 的 __FILE__ 常量
2007/01/15 PHP
PHP实现查询两个数组中不同元素的方法
2016/02/23 PHP
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
javascript 文件的同步加载与异步加载实现原理
2012/12/13 Javascript
nodejs实现获取当前url地址及url各种参数值
2015/06/25 NodeJs
javascript实现确定和取消提示框效果
2015/07/10 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
JS回调函数简单用法示例
2017/02/09 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
2017/07/25 Javascript
Windows下Node.js安装及环境配置方法
2017/09/18 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
[02:37]TI8勇士令状不朽珍藏II视频展示
2018/06/23 DOTA
python实现在目录中查找指定文件的方法
2014/11/11 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
Python 微信之获取好友昵称并制作wordcloud的实例
2019/02/21 Python
利用PyCharm Profile分析异步爬虫效率详解
2019/05/08 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
2019/07/23 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
有关Tensorflow梯度下降常用的优化方法分享
2020/02/04 Python
Python的pygame安装教程详解
2020/02/10 Python
Under Armour西班牙官网:美国知名的高端功能性运动品牌
2018/12/12 全球购物
美国时尚假发购物网站:Wigsbuy
2019/04/06 全球购物
常用UNIX 命令(Linux的常用命令)
2015/12/26 面试题
酒店个人求职信范文
2014/01/25 职场文书
女娲补天教学反思
2014/02/05 职场文书
道德大讲堂实施方案
2014/05/14 职场文书
高中教师先进事迹材料
2014/08/22 职场文书
党员自我剖析材料范文
2014/10/06 职场文书
2014年质量管理工作总结
2014/12/01 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
python实战之一步一步教你绘制小猪佩奇
2021/04/22 Python
MYSQL 运算符总结
2021/11/11 MySQL
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技
通过Python把学姐照片做成拼图游戏
2022/02/15 Python