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


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 相关文章推荐
js实现运行代码需要刷新的解决方法
Aug 18 Javascript
jquery imgareaselect 使用利用js与程序结合实现图片剪切
Jul 30 Javascript
用Javascript 获取页面元素的位置的代码
Sep 25 Javascript
javascript parseInt与Number函数的区别
Jan 21 Javascript
Node.js中创建和管理外部进程详解
Aug 16 Javascript
jquery结合CSS使用validate实现漂亮的验证
Jan 29 Javascript
微信小程序 switch组件详解及简单实例
Jan 10 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
Oct 14 jQuery
JS实现匀速与减速缓慢运动的动画效果封装示例
Aug 27 Javascript
JS实现从对象获取对象中单个键值的方法示例
Jun 05 Javascript
如何解决日期函数new Date()浏览器兼容性问题
Sep 11 Javascript
Vue搭建后台系统需要注意的问题
Nov 08 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 has encountered an Access Violation
2007/01/15 PHP
php 进度条实现代码
2009/03/10 PHP
ie6 动态缩略图不显示的原因
2009/06/21 PHP
THINKPHP3.2使用soap连接webservice的解决方法
2017/12/13 PHP
javascript实现图片切换的幻灯片效果源代码
2012/12/12 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
深入浅析JavaScript中的constructor
2016/04/19 Javascript
Boostrap入门准备之border box
2016/05/09 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
基于Vuejs实现购物车功能
2016/08/02 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
[01:07:17]EG vs Optic Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
[43:03]完美世界DOTA2联赛PWL S2 PXG vs Magma 第二场 11.21
2020/11/24 DOTA
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
python判断字符串是否包含子字符串的方法
2015/03/24 Python
在windows下Python打印彩色字体的方法
2018/05/15 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
2019/05/07 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
利用python对mysql表做全局模糊搜索并分页实例
2020/07/12 Python
python实现磁盘日志清理的示例
2020/11/05 Python
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
下面关于"联合"的题目的输出是什么
2013/08/06 面试题
大学生毕业自我鉴定范文
2013/11/03 职场文书
企业给企业的表扬信
2014/01/13 职场文书
《燕子》教学反思
2014/02/18 职场文书
贷款委托书
2014/08/01 职场文书
小学国旗下的演讲稿
2014/08/28 职场文书
项目转让协议书
2014/10/27 职场文书
2014初中数学教研组工作总结
2014/12/19 职场文书
html中显示特殊符号(附带特殊字符对应表)
2021/06/21 HTML / CSS
Python中with上下文管理协议的作用及用法
2022/03/18 Python
详细介绍MySQL中limit和offset的用法
2022/05/06 MySQL