[TOC]
1.常用api
1.获取用户信息
获取用户信息。页面产生点击事件(例如
button
上bindtap
的回调中)后才可调用,每次请求都会弹出授权窗口,用户同意后返回userInfo
。
getUserProfile(e) {
// 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认
// 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
wx.getUserProfile({
desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
})
},
2.路由(页面跳转)
image-20210908165803563.png保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层
image-20210908165922263.png关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages 获取当前的页面栈,决定需要返回几层。
示例代码:
// 注意:调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,而 redirectTo 方法则不会。见下方示例代码
// 此处是A页面
wx.navigateTo({
url: 'B?id=1'
})
// 此处是B页面
wx.navigateTo({
url: 'C?id=1'
})
// 在C页面内 navigateBack,将返回A页面
wx.navigateBack({
delta: 2
})
image-20210908165838368.png关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。
关闭所有页面,打开到应用内的某个页面
跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
示例:
// app.json
{
"tabBar": {
"list": [{
"pagePath": "index",
"text": "首页"
},{
"pagePath": "other",
"text": "其他"
}]
}
}
//currentPage.js
wx.switchTab({
url: '/index'
})
wx.navigateTo({
url: 'test/test?id=1'
})
wx.redirectTo({
url: 'test/test?id=1'
})
wx.switchTab({
url: 'test/test?id=1'
})
wx.reLauch({
url: 'test/test?id=1'
})
3.请求数据 wx.request()
发起 HTTPS 网络请求。
可通过RequestTask.abort() 取消发送请求
const requesttask = wx.request({
url: '/test', //仅为示例,并非真实的接口地址
data: { //数据
x: '',
y: ''
},
method: "GET", //请求类型
dataType: "json", //数据类型
header: {
'content-type': 'application/json' // 默认值
},
success (res) {
console.log(res.data)
}
})
requesttask.abort(); //取消请求任务
4.上传/下载文件
4.1下载文件
==wx.downloadFile==
image-20210908191938287.png下载文件资源到本地。客户端直接发起一个 HTTPS GET 请求,返回文件的本地临时路径 (本地路径),单次下载允许的最大文件为 200MB。
示例代码:
wx.downloadFile({
url: 'https://example.com/audio/123', //仅为示例,并非真实的资源
success (res) {
// 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容
if (res.statusCode === 200) {
filePath: res.tempFilePath
}
}
})
4.2 上传文件
==wx.uploadFile==
image-20210908192752520.png将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求,其中
content-type
为multipart/form-data
。
示例代码:
wx.chooseImage({
success (res) {
const tempFilePaths = res.tempFilePaths
wx.uploadFile({
url: 'https://example.weixin.qq.com/upload', //仅为示例,非真实的接口地址
filePath: tempFilePaths[0],
name: 'file',
formData: {
'user': 'test'
},
success (res){
const data = res.data
//do something
}
})
}
})
网友评论