微信小程序开发系列六:微信框架API的调用

继承季风
• 阅读 2402

微信小程序开发系列教程

微信小程序开发系列一:微信小程序的申请和开发环境的搭建

微信小程序开发系列二:微信小程序的视图设计

微信小程序开发系列三:微信小程序的调试方法

微信小程序开发系列四:微信小程序之控制器的初始化逻辑

微信小程序开发系列五:微信小程序中如何响应用户输入事件

通过前面五个章节的介绍,大家对微信小程序的视图和控制器,微信调试器,以及如何在微信控制器里编写JavaScript函数来响应微信小程序的用户事件已经有了一个最基本的认识了。我们现在来开发一些和微信应用相关的知识,进一步巩固以前学到的知识。

微信小程序开发系列六:微信框架API的调用

本文实现的效果:

在微信小程序上显示一个按钮:“获取头像昵称”。

微信小程序开发系列六:微信框架API的调用

点击之后,微信小程序会自动通过微信框架提供的API把当前点击这个按钮的微信用户的明细,比如昵称,头像,所在省份,城市等信息取回来,并且显示在小程序页面上, 如下图所示。

微信小程序开发系列六:微信框架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调用成功取回微信用户明细后,会将微信用户明细作为输入参数,调用我们写的这个回调函数。

微信小程序开发系列六:微信框架API的调用

jerry_getUserInfo: function(e) {

app.globalData.userInfo = e.detail.userInfo

      this.setData({

           userInfo: e.detail.userInfo

      });

}

在小程序能够访问的上下文里,有一个全局变量wx,里面包含了所有微信框架暴露出来的API:

微信小程序开发系列六:微信框架API的调用

在微信小程序官网上有关于这个wx的所有成员说明:

https://developers.weixin.qq....

微信小程序开发系列六:微信框架API的调用

我们再试试另外一个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等详细信息。

微信小程序开发系列六:微信框架API的调用

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
微信小程序开发系列六:微信框架API的调用

微信小程序开发系列六:微信框架API的调用

点赞
收藏
评论区
推荐文章
胡哥有话说 胡哥有话说
4年前
喜大普奔,微信终于支持外网打开小程序啦!
前言千呼万唤始出来,微信小程序终于支持以URLScheme的形式从外部唤起了。longlongago我们只能在微信内的网页中使用微信开发标签小程序跳转按钮
梦
4年前
微信小程序modal
首先创建一个组件component,组件命名可以为modalmodal.wxml的内容为<viewclass'modalmask'wx:if'{{show}}'bindtap'clickMask'<viewclass'modalcontent'<scrollviewscrollyclass'mainc
梦
4年前
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT
Wesley13 Wesley13
3年前
PHP微信小程序支付——签名错误
!(https://static.oschina.net/uploads/space/2018/0509/141657_Tqix_3477605.png)先分清几个概念:微信公众平台、微信开放平台、微信商户平台1.微信公众平台、微信开放平台、微信商户平台是三个不同的平台2.微信公众平台:用于公众号、小程序等等的设置平台,包括APPID、APP
Easter79 Easter79
3年前
Taro小程序自定义顶部导航栏
微信自带的顶部导航栏是无法支持自定义icon和增加元素的,在开发小程序的时候自带的根本满足不了需求,分享一个封装好的组件,支持自定义icon、扩展dom,适配安卓、ios、h5,全面屏。我用的是京东的Taro多端编译框架写的小程序,原生的也可以适用,用到的微信/taro的api做调整就行,实现效果如下。!在这里插入图片描述(https://i
Wesley13 Wesley13
3年前
5G消息与微信小程序互联互通?北京国都互联这么做……
最近微信小程序上线了一个超级流量的新入口URLScheme,据微信官网介绍,scheme码适用于短信、邮件、外部网页等拉起小程序的业务场景。通过小程序页面的URLScheme,可以在短信、邮件或微信外部的网页中打开微信小程序。意义在于将微信流量生态延伸到微信以外渠道,进一步完善了小程序和外部渠道互通的营销场景。北京国都互联第一时
壹立科技 壹立科技
2年前
外卖小程序为何愈发火热?创业者有必要去尝试入局吗?
微信外卖平台系统:即基于微信公众平台的外卖配送系统,用户在外卖小程序中完成自助订餐。并由平台的配送团队进行外卖配送。此外,对于骑手、商家、团队还具有相应的后台系统,相互连接,是一个完整的系统。使用微信小程序作为外卖平台入口的优势:1.开发成本低,连通H5
继承季风
继承季风
Lv1
行人无限秋风思,隔水青山似故乡。
文章
3
粉丝
0
获赞
0