微信小程序开发系列一:微信小程序的申请和开发环境的搭建javascript
微信小程序开发系列四:微信小程序之控制器的初始化逻辑微信小程序
微信小程序开发系列五:微信小程序中如何响应用户输入事件api
经过前面五个章节的介绍,你们对微信小程序的视图和控制器,微信调试器,以及如何在微信控制器里编写JavaScript函数来响应微信小程序的用户事件已经有了一个最基本的认识了。咱们如今来开发一些和微信应用相关的知识,进一步巩固之前学到的知识。微信
本文实现的效果:数据结构
在微信小程序上显示一个按钮:“获取头像昵称”。app
点击以后,微信小程序会自动经过微信框架提供的API把当前点击这个按钮的微信用户的明细,好比昵称,头像,所在省份,城市等信息取回来,而且显示在小程序页面上, 以下图所示。框架
视图设计:函数
<view class="userinfo"> <button open-type="getUserInfo" bindgetuserinfo="jerry_getUserInfo"> 获取头像昵称 </button> <image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image> <text class="userinfo-nickname">{{userInfo.nickName}}</text> <text class="userinfo-nickname">{{userInfo.city}}</text> <text class="userinfo-nickname">{{userInfo.country}}</text> <text class="userinfo-nickname">{{userInfo.province}}</text> </view>
这个视图里一共有6个UI元素,其中1个button元素,1个image元素和4个text元素。button元素负责响应用户点击事件,调用微信框架的API读取用户明细。
1个image元素负责显示点击该按钮的微信用户头像,剩下的4个text元素显示微信用户的明细。后5个UI元素的绑定路径均为userInfo,而userInfo的数据是点了button后经过调用微信API读取的。
这个userInfo是咱们在控制器index.js里定义的数据模型:
Page({ data: { userInfo: {} } });
咱们回过头来看本文这个小程序最重要的button元素,它有两个属性:
open-type="getUserInfo" :说明该button点击以后,自动调用微信框架的API:getUserInfo
bindgetuserinfo="jerry_getUserInfo":指定了一个回调函数的名称,该回调函数在咱们的控制器index.js里实现。当微信框架的API调用成功取回微信用户明细后,会将微信用户明细做为输入参数,调用咱们写的这个回调函数。
jerry_getUserInfo: function(e) { app.globalData.userInfo = e.detail.userInfo this.setData({ userInfo: e.detail.userInfo }); }
在小程序可以访问的上下文里,有一个全局变量wx,里面包含了全部微信框架暴露出来的API:
在微信小程序官网上有关于这个wx的全部成员说明:
https://developers.weixin.qq....
咱们再试试另一个API:getSystemInfo
首先在小程序视图里定义一个按钮,绑定一个JavaScript函数jerry_systeminfo, 用于触发getSystemInfo:
<button bindtap = "jerry_systeminfo"> 获取系统信息 </button>
而后定义七个UI元素,用于显示getSystemInfo的返回结果。
<text class="userinfo-nickname">{{systeminfo.model}}</text> <text class="userinfo-nickname">{{systeminfo.pixelRatio}}</text> <text class="userinfo-nickname">{{systeminfo.windowWidth}}</text> <text class="userinfo-nickname">{{systeminfo.windowHeight}}</text> <text class="userinfo-nickname">{{systeminfo.language}}</text> <text class="userinfo-nickname">{{systeminfo.version}}</text> <text class="userinfo-nickname">{{systeminfo.platform}}</text>
wx.getSystemInfo返回的结果做为一个输入参数,自动传入到咱们定义的success回调函数里,而后再用setData设置到视图的数据结构里。
jerry_systeminfo: function(){ var that = this; wx.getSystemInfo({ success: function (res) { var systeminfo = {}; systeminfo.model = res.model; systeminfo.pixelRatio = res.pixelRatio; systeminfo.windowWidth = res.windowWidth; systeminfo.windowHeight = res.windowHeight; systeminfo.language = res.language; systeminfo.version = res.version; systeminfo.platform = res.platform; try { that.setData({ systeminfo: systeminfo }); } catch(e){ console.log(e); } } }) },
最后我在个人Android三星手机上点击“获取系统信息”以后,就显示出了我三星手机的型号SM-C7010等详细信息。
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码: