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


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 相关文章推荐
JQuery jsonp 使用示例代码
Aug 12 Javascript
Javascript 面向对象特性
Dec 28 Javascript
js实现的点击div区域外隐藏div区域
Jun 30 Javascript
AngularJs Injecting Services Into Controllers详解
Sep 02 Javascript
微信小程序 教程之列表渲染
Oct 18 Javascript
微信小程序 动态绑定事件并实现事件修改样式
Apr 13 Javascript
Angular.JS中select下拉框设置value的方法
Jun 20 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
Aug 12 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
Sep 19 Javascript
js定时器实现倒计时效果
Nov 05 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
Dec 09 Javascript
JavaScript页面倒计时功能完整示例
May 15 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+SqlServer实现分页显示
2006/10/09 PHP
一个PHP+MSSQL分页的例子
2006/10/09 PHP
下载文件的点击数回填
2006/10/09 PHP
建站常用13种PHP开源CMS比较
2009/08/23 PHP
两种php实现图片上传的方法
2016/01/22 PHP
PHP使用内置函数生成图片的方法详解
2016/05/09 PHP
PHP编程实现计算抽奖概率算法完整实例
2017/08/09 PHP
PHP扩展类型及安装方式解析
2020/04/27 PHP
javascript iframe内的函数调用实现方法
2009/07/19 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
上传的js验证(图片/文件的扩展名)
2013/04/25 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
php析构函数的具体用法小结
2014/03/11 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
vue-router路由参数刷新消失的问题解决方法
2017/06/17 Javascript
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
VUE+elementui面包屑实现动态路由详解
2019/11/04 Javascript
利用JS如何获取form表单数据
2019/12/19 Javascript
python在线编译器的简单原理及简单实现代码
2018/02/02 Python
python PyTorch预训练示例
2018/02/11 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
Python计算IV值的示例讲解
2020/02/28 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
2020/04/16 Python
python自动从arxiv下载paper的示例代码
2020/12/05 Python
餐饮管理自我介绍信
2014/01/15 职场文书
模范家庭事迹材料
2014/02/10 职场文书
员工廉洁自律承诺书
2014/05/26 职场文书
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android