6.4 获取最新学习信息
上一节的登录,我们使用了wx.request方法,接下来我们继续用这个方法,来获取更多的数据。
首先我们可以从网址上访问这个地址
这就是本节要获取的数据。
wx.request我们已经使用过了,之前我们说这个方法是发起一个http请求,现在可以给它的下一个通俗的定义:此方法是用编程的方法访问网址,并得到网址返回的信息。
如果是正常的一个网页,那么将返回一个完整的页面所需要的信息,一大堆的html代码。如果这个页面返回的是json格式,那么结果就好像我们上面点击的网址的效果了。
小程序只有这唯一一种方式,获取外部的数据。
1.新建小程序页面
注意,要按照小程序的编程规范来,先在pages文件夹下新建一个页面的文件夹,这里我们命名为main,然后再在这个文件夹里新建page,命名为main。
注意,只有新建page才会直接生成4个文件(xml、js、json、wxss),才会自动在app.json注册该页面。
2.修改登录成功逻辑
登录成功后跳转到main页面
wx.navigateTo({
url:"../main/main"
})
这里url就是要跳转的页面,写法参考示例程序跳转到log页面
3.在main页面发起请求
使用wx.request发起请求,https://www.codessp.cn/wxCodessp.jsp?type=main&username=abcd&c=1
参数说明:
c是课程id,1代表java课
type=main是固定,用来区分请求的类型,就好像上一节登录验证的type是account
username是登录用户
将结果显示在页面上。这里就涉及到一个问题,main发起的请求用到了username,怎么把登录页面的username传到main呢?
有两种方法:
1)页面跳转的时候参数传递
wx.navigateTo({
url:"../main/main?username=" +
this.data.username})
然后在main.js的onload事件里,获得这个传过来的参数,这个方法和网页的做法一致。
onLoad:function(query){
var username=query.username;
console.log(username);
...
})
如果onLoad方法没有query这个参数,可以直接添加上去。
2)将username设置为全局变量,定义在app.js的data里,如果app.js里没有data,可自行添加:
app({
data:{
username:''
},
...
})
使用的时候是这样的:
getApp().data.username
可以直接赋值,不需要setData函数。如果使用此方法,需要修改前面的代码,所有修改username的地方,都要用getApp().data.username=xxx这样的形式赋值,以便让全局的username变量是最新的。
跳转到main页面后,直接使用全局的username,getApp().data.username,就能获得username的值