基于微信小程序开发企业报修系统

来源 :大众科学·下旬 | 被引量 : 0次 | 上传用户:yefenggege
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:本文主要针对使用Web方式开发的设备报修系统的不足,通过微信小程序的方式移植系统到移动端,充分利用手机端的多媒体优势与微信小程序的消息系统打造一个简洁,具有良好用户体验的企业设备报修系统。实际使用中证明,可有效提高系统功能的实用性和信息传递的及时性,提高用户使用的体验。
  关键词:微信小程序;维修系统;消息订阅
  0 引言:
  单位现在使用的设备报修系统是基于asp.net与数据库sqlServer设计开发的。在使用过程中逐渐发现了一些问题:设备发生故障时,需要到车间的计算机上登录报修,不能做到随手报修处理;维修人员须在计算机上登录查看才会接到报修信息;故障现象以文字描述为主,不直观具体;如需上传图片或视频过程太过繁琐;维修人员反馈维修进度信息给用户不够直接。因此,设想开发一个移动端的应用,解决上述问题。
  1 技术选取
  移动端应用一般有基于系统的App、基于手机浏览器的Web应用和基于微信、支付宝的小程序应用等多種方式。基于系统的App虽然功能丰富,但开发成本过高,一般要适配Android和IOS两套系统。基于手机浏览器的Html应用对信息的传递有所欠缺,无法解决原Web应用的问题。微信小程序是基于微信(几手每人都安装有微信)而运行的,是一种不需要下载安装即可使用的应用,用户扫一扫或搜一下即可打开。而且开发门槛相对较低,不需考虑兼容手机系统。对本系统来说可在直接扫描设备资产编号报修设备,可充分利用手机的拍照与摄像功能上传故障信息,还有具有消息系统可直接推送报修信息给维修人员,维修人员也可反馈维修进度给报修人员。
  2 功能实现
  2.1 微信小程序简介
  微信小程序基于微信运行,本质上是一种HTML5(移动端)应用,它和普通的浏览器的前端应用很像,但又有所不同,具有更多的权限与功能。其主要开发语言是JavaScript,用WXSS来修饰页面。对于开发者而言,从Web应用迁移到小程序的开发成本并不高。
  2.2 系统框架
  本系统主要以微信小程序作为前端,后端修改原Web系统,两者之间以json相互传递数据。如图1所示
  2.3 功能设计
  2.3.1 登录
  用户输入帐号与密码(如图2),小程序调用wx.request把数据传输到服务端验证,通过后调用wx.setStorageSync缓存用户信息,使用户下次不必再次输入帐号与密码。同时跳转到报修页面,根据获取的用户权限设定访问不同的页面。
  
  2.3.2 报修人员
  用户登录系统后,具报修设备、查询已报修设备的维修进度、反馈设备维修结束后使用状况给维修人员等权限。报修时可通过扫码(wx.scanCode)扫描设备上的资产码、通过查询功能查找设备或直接手工填写报修单据的方式来报修设备(如图3)。报修成功后小程序会通过消息系统通知维修人员。
  2.3.3 维修人员
  维修人员通过消息系统接收到维修工单后可直接接单,维修期间可实时反馈工单进度给报修人员。可查询自己有多少个正在进行中的维修工单,进度如何。可查看已完工的任务工单,用户的反馈等。
  2.3.4 管理
  管理员登录后可管理设备的信息,人员信息,可查询所有维修人员的任务进度,维修反馈等。
  3 系统几个要点
  3.1 微信小程序与服务端通讯
  微信小程序与服务端之间的数据交互一般选用JSON传输。JSON是一种轻量级的数据交换格式,具有简洁和清晰的层次结构,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率, 是一种理想的数据交换语言。以登录功能为例:
  在微信小程序端
  使用小程序WXML标签语言与WXSS样式语言设计一个小程序登录页面,在登录按钮上绑定事件方法,调用wx.request向后端请求数据,验证通过后存储登录数据,跳转其他页面。关键代码如下:
  btnLoginSubmit: function(e) {    //登录按钮事件
   var that = this;
   var userId = e.detail.value.loginId;    //登录帐号
   var userPsw = md5.hexMD5(e.detail.value.loginPsw);   //MD5加密密码
   wx.request({     //请求数据
   url: this.data.host + '/LoginUser.aspx', // 请求接口地址
   data: {
   loginId: userId,
   loginPsw: userPsw
   },
   header: {
   'content-type': 'application/x-www-form-urlencoded'   // Post方式头部
   },
   method: "POST",    //请求方式
   success(res) {
   if (res.data.Id == userId && res.data.Password == userPsw) {
   //缓存用户信息
   wx.setStorageSync('userInfo', res.data)    app.globalData.userInfo = res.data;
   that.authorSet("true")
   //跳转报修页面
   wx.switchTab({
   url: '/pages/repair/repair'
   })
  ……
  在服务端(asp.net)
  引入类库Newtonsoft.Json。这是一个开源的Json操作类库,性能与通用性都比较好。新建一个asp.net页面(LoginUser.aspx,即小程序端请求接口地址)用于接收小程序端发送过来的帐号与密码数据。验证通过后以Response.Write返回结果,其中注意帐号密码的加密。代码如下:
  using Newtonsoft.Json;
  ……
  string loginId = HttpContext.Current.Request.Form["loginId"].ToString();//獲取帐号
  string loginPsw = HttpContext.Current.Request.Form["loginPsw"].ToString();//获取密码
  LoginUser user = new LoginUser(loginId);
  if (user.Exist && user.Password.Equals(loginPsw) && !user.Prohibit)//验证
  {
  Response.Write(JsonConvert.SerializeObject(user));返回结果
  ……
  3.2小程序消息系统——订阅消息
  小程序的订阅消息功能是替代模板消息的一项新消息推送服务。订阅消息把服务方发送消息的权限给了用户,即用户自主订阅了消息后服务方才具有给用户发送消息的能力。具体步骤如下:
  第一步:同模板消息一样要使用订阅消息须生成个人订阅消息模板,获取模板ID,如图4所示:
  其中:一次性订阅消息,即用户订阅了消息,小程序方可发送一次消息。
  第二步:获取订阅消息下发权限。在小程序中用户发生点击的行为或者发起支付回调后,在事件函数中调用wx.requestSubscribeMessage打开订阅消息面板(如图5),从而获取用户的授权发送订阅消息。其中当用户勾选了订阅面板中的“总是保持以上选择,不再询问”时,订阅消息会被添加到用户的小程序设置页中,但在小程序中wx.requestSubscribeMessage后台还是会默认调用,只是不再弹出订阅消息面板。示例如下:
  wx.requestSubscribeMessage({
   tmplIds: ['xIO1F5Vdbozo11rjcSHB5b0l2hy7guDaXed4s2ed6cIM'],//订阅消息模板Id
   success(res) {
   wx.showToast({
   title: '订阅成功!',
   icon: 'none',
   duration: 1000
   })
   },
   fail(r) {
  ……
  注:不可在form事件函数中调用。
  第三步:调用接口下发送订阅消息。在服务端通过如下小程序请求地址
  https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN
  发送订阅消息,服务器具体代码如下:
  public static string getToken()// 获取用户接口凭证
  {
  string grant_type = "client_credential";
  string appid = "***********************";//小程序唯一凭证,即 AppID
  string secret = "**********************************";//小程序唯一凭证密钥,即 AppSecret
  string wxUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=" + grant_type
   + "&appid=" + appid + "&secret=" + secret;//请求地址
  string token = Utils.HttpGet(wxUrl);//get请求获取凭证
  //定义存储凭证的类
  var wxToken = new { access_token = string.Empty, expires_in = string.Empty, errcode = 0, errmsg = string.Empty };
  wxToken = JsonConvert.DeserializeAnonymousType(token, wxToken);//解析Json
  if (wxToken.errcode == 0)//成功
  {
   return wxToken.access_token;//返回凭证    (下转440页)
  (上接439页)
  }
  else
  {
  return wxToken.errmsg;
  }
  }
  /// 微信发送订阅消息
  /// </summary>
  /// <param name="openid">接收者(用户)的 openid</param>
  /// <param name="template_id">消息模板Id</param>
  /// <param name="page">微信小程序中的跳转的页面</param>
  /// <param name="data">模板内容</param>
  /// <returns></returns>
  public static int sendRequestMessage(string openid, string template_id, string page, Dictionary<string, Dictionary<string, string>> data)
  {
   string access_token = Utils.getToken();    //获取接口调用凭证
   string wxUrl = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + access_token;
   //模板数据
   RequestRepairMessage mess = new RequestRepairMessage();
   mess.touser = openid; //接收者(用户)的 openid
   mess.template_id = template_id;
   mess.page = page;//点击模板卡片后的跳转页面
   mess.data = data;
   string postData = JsonConvert.SerializeObject(mess);
   string result = Utils.HttpPost(wxUrl, postData);   //Post调用
   var wxResult = new { errcode = 0, errmsg = string.Empty };
   wxResult = JsonConvert.DeserializeAnonymousType(result, wxResult);
   return wxResult.errcode;
  }
  4 结束语
  移动端应用随着技术的发展越来越普遍,而微信小程序正以其使用便捷,用完即走,开发成本低,易移植等特性使得到用户与广大开发者的喜爱。本文所开发的维修系统小程序正是移植于Web应用,把小程序作为前端,后端稍微修改一下代碼。即可发挥移动端的便捷优势,又可使用Web端本身丰富的功能。
  参考文献
  [1]微信公众平台官方团队发布 微信小程序官方文档
  https://developers.weixin.qq.com/miniprogram/dev/framework/
  [2]Christian Nagel,Bill Evjen,Jay Glynn等著   李铭译  C#高级编程(第7版)  清华大学出版社, 2010.11
  [3]马 骏  编著 C#网络应用编程(第2版)  人民邮电出版社 2010.2
其他文献
摘 要:党史党建工作是对我党指导思想的建设工作,让各部门、各工作单位都能够受到党的教育和指导。而在党史党建工作当中加入“以人为本”的理念,是对我党指导思想工作的一种升华,是将马克思主义思想理论运用到实践的最好体现,也能更好地继承和发展马克思主义思想理论。这种方式对于我国政治经济文化的发展起到很好的推动作用。  关键词:“以人为本”;党史党建工作;推动作用;贯彻实施  引言:  随着社会经济的高速发
期刊
摘 要: 自东野圭吾的《白夜行》问世以来,人们关于主人公亮司和雪穗爱情的讨论从未中断。绕不过的话题就是两人之间是否存在爱情,以及如果存在爱情,这种爱情是单方面付出还是两情相悦。同时,《白夜行》中的缜密推理也是推理小说中值得探究的地方。极端的爱情也是爱,依旧值得被承认、被肯定。同时小说将无望却坚守的凄凉爱情和执著而缜密的冷静推理完美结合,并一一剖析。  关键词:《白夜行》凄美爱情;缜密推理  前言 
期刊
摘 要:随着我国社会发展水平的不断提升,我国事业单位中思想政治工作必须进行一些创新。具体来讲可以从工作内容和工作形式上,坚持“以人为本”的思想,充分发挥互联网技术的优势,从而不断提高思想政治的质量。只有充分发挥思政的积极作用,激发干部和职工的工作积极性,才能进而推动事业单位健康发展。  关键词:事业单位;思想政治工作;内容与形式;创新  在新时期背景下,事业单位中思想政治工作面对新的情况,需要解决
期刊
摘 要:随着时代的发展,“纪录片”不仅逐渐成为了一种集新闻、纪实及娱乐于一身的大众传播手段,更加成为了世界各国之间展示“软实力”、塑造本国国家文化形象的方式。作为独特的叙事媒介,“纪录片”更多的精神内涵体现为影像符号的融入与展现。国家文化形象的建构与传播,既影响着世界各国对一个国家的总体印象,同时也决定着本国人民对于自己祖国的认同程度。从这个角度上来说,良好的国家文化形象是形成本国文化自觉与自信的
期刊
摘 要:在经济发展新常态下,企业面临艰巨的转型发展任务,还要通过开展有效思想政治工作密切联系青年职工,为企业改革创新提供动力。基于此,本文结合企业青年职工思想政治教育问题及成因,从形势任务教育开展、以人为本思想体现等方面提出了青年职工思想政治工作策略,为关注这一话题的人们提供参考。  关键词:新常态;青年职工;思想政治工作  引言:  伴随着国家经济发展进入新常态,企业成为了推动国家经济建设的主力
期刊
摘 要:研究指出思政教育对企业的发展起到积极作用,不仅能提高基层员工的政治素养与工作能力,也可以强化管理层的能动能力和责任意识,推动企业实现更高层面的发展。各种实践证实对员工开展思政教育是具备多种价值的,如构建健康的企业文化和发展平台,通过各项教育活动的开展提升员工们的综合技能。所以企业应该在科学思想的指导下开展思政教育,重视引导员工们树立大局和责任意识,立足思政教育实现企业和员工的共同前行和发展
期刊
摘 要:What is the influence of Mono no aware on interior design? "Thing" refers to all things in nature, and "sorrow" refers to sadness. Seeing the sadness, seeing the scenery and feeling the same sorro
期刊
文若春華思如泉涌
期刊
摘 要:幼儿时期是每个人身心发展的黄金时期,人的逻辑能力、创造能力等都是在这一时期形成,怎么让幼儿从小养成良好天性是每个新时代幼儿园教师的职责,在最新《幼儿园工作纲要》的指导下,幼儿教师应该大力推进学生的素质教育,为之后的九年义务教育,甚至人生发展奠定坚实的基础。当代幼儿园养成教育课程可以大致分为幼儿行为的引导,良好习惯、思维习惯、语言习惯等的培养,本文就幼儿园养成教育课程建设的实践与探索进行浅析
期刊
摘 要:升旗仪式是少先队仪式教育的重要组成部分,分析升旗仪式的过程对于加强相关学者对于仪式过程的研究具有重大意义。本文从维克多·特纳仪式过程的理论出发,认为升旗仪式的主体是班级,在升旗仪式的准备阶段,每个班级都存在着差异,是结构的;在阈限阶段,这种差异消失,是反结构的;最后,每个班级伴随着升旗仪式的结束,又回到了结构的阶段,但是获得了身份的重新塑造。并且在阈限阶段,升旗仪式是一种地位逆转仪式。  
期刊