微信的小程序上线已经快一年了,期间一直没有去尝试,最近有机会尝试了下,把My Life Time的生存时间功能移植到了微信小程序上
WebUI界面:
https://dev.minirplus.com/my-life-time/
微信小程序界面:
技术细节
微信小程序的核心和Chrome扩展的性质一样,都是一个打包后的JS程序,但是微信小程序的特点是手机界面都是长条形的,所以界面布局没有什么需要特别注意的地方,把各种组件直接黏贴进去就行了。
另外在这次的移植中,没有使用JS来做后台运算,而是采用和微信公众号一样的API来实现运算功能,所以小程序承担的功能只是接受用户输入并转换成API请求和处理从API回复的内容并加载到界面。
如何发送API请求
在wx小程序中,提供了一个方法来发送API请求,最简单的请求结构如下,其中url/data/method/header/datatype是请求前需要设置的参数,success/fail是两个处理请求结果的函数。请求的data参数就是向服务器发送的QUERY_STRING,服务器通过$_GET[”] 来接收参数,在这个功能中,向服务器发送的数据主要是birthday。
wx.request({ url: requestUrl, data: { noncestr: Date.now(), mode: "mylifetime", birthDay: birthDay }, method: "GET", header: { 'Content-Type': 'application/json' }, dataType: "json", success: function (result) { self.setData({ isLoading: false }) var mylifetime = result.data that.setData({ relRatioTime: mylifetime.relRatioTime*100, text: "You Survived: " + mylifetime.hasLivedTime.yearsPart + " year " + mylifetime.hasLivedTime.monthPart + " month " + mylifetime.hasLivedTime.daysPart + " days" }); }, fail: function ({ errMsg }) { console.log('request fail', errMsg) self.setData({ loading: false }) } })