微信小程序网络通信实现详解

  

关于网络通信,这里我使用的是wx.request,官方代码示例如下:

        wx.request ({   url:“测试。php ',//仅为示例,并非真实的接口地址   数据:{   x:”,   y:“   },   标题:{   “内容类型”:“application/json”//默认值   },   成功(res) {   console.log (res.data)   }   })      

对于初学者而言,官方示例可能会看不怎么懂,所以我就以我自己当初项目驱动学习的方式(开发个人的记账小程序)来作为学习实例。

  

以登录来说,效果图如下:

  

微信小程序网络通信实现详解

  

此次示例包含表单校验和网络请求,代码如下:

  

<强> login.js

     //页面/登录/login.js   页面({/* *   * 页面的初始数据   */数据:{   用户名:“”,   密码:"      },   注册:函数(e) {   wx.navigateTo ({   url:“. ./注册/登记”   })      },   formSubmit:函数(e) {   console.log (e.detail.value.email);   console.log (e.detail.value.pwd)   var用户名=e.detail.value.email;   var密码=e.detail.value.pwd;   var emailReg=/^ [A-Za-z \ d] + ([_] [A-Za-z \ d] +) * @ (A-Za-z \ [d] + [-]) + A-Za-z \ [d] {2,4} $/;   如果(用户名==null | |用户名==" "){   wx.showToast ({   标题:“用户名不能为空”,   图标:“没有”,   持续时间:1500   })   }else if (! emailReg.test(用户名)){      wx.showToast ({   标题:“邮箱有误”,   图标:“没有”,   持续时间:1500   })      }else if(密码==null | |密码==" "){   wx.showToast ({   标题:“密码不能为空”,   图标:“没有”,   持续时间:1500   })   其他}{   wx.request ({      .globalData url: getApp ()。urlPath +“sysUser/登录”,   方法:“文章”,   数据:{   用户名:用户名、   密码:密码   },   标题:{   “内容类型”:“应用程序/x-www-form-urlencoded”   },   成功:函数(res) {   console.log (res.data);   如果(res.statusCode==200) {//访问正常   如果(res.data。代码==" 000000 "){   wx.showToast ({   标题:“登陆成功”,   图标:“成功”,   持续时间:2000   成功:函数(){   wx.navigateTo ({   url:“. ./管理/管理”   })      wx.setStorage ({   关键:“标识”,   数据:res.data.user.userCode   })      wx.setStorage ({   关键:“用户名”,   数据:res.data.user.userName   })   控制台。日志(“测试:”+ wx.getStorageSync(“用户名”));   }   })      如果(res.data}其他。代码==" 111111 "){   wx.showToast ({   标题:“密码错误”,   图标:“没有”,   持续时间:1500   })   其他}{   wx.showToast ({   标题:“该用户不存在”,   图标:“没有”,   持续时间:1500   })   }   其他}{      wx.showLoading ({   标题:“系统异常”,   失败   })      setTimeout(函数(){   wx.hideLoading ()   },2000)   }      }   })   }      }   })      

关于login.js,主要是写通信逻辑的,与咱们平时写js差异并不大,唯一不同的就是api长得不样罢了。

  

关于其中的getApp () .globalData.urlPath相当于全局变量,不用我每次都写一大串https之类的。

  

表单校验的效果如图:

  

微信小程序网络通信实现详解

  

微信小程序网络通信实现详解

  

代码说明:

  

显示消息提示框(相当于js的警觉提示):

        wx.showToast ({   标题:“邮箱有误”,   图标:“没有”,   持续时间:1500   })      

获取输入属性为名称的值(相当于js中form.email.value,前提是这个表单名称要为形式,且表单中输入要的存在一个name="电子邮件")

        e.detail.value.email;      

跳转代码(相当于window.location.href):

        wx.navigateTo ({   url:“. ./管理/管理”   })      

至于wx.request,我想只要是写过ajax的,都很好理解。

微信小程序网络通信实现详解