为什么你需要一份 API 使用场景清单
做小程序开发,最难的不是写页面,而是“这个需求该用哪个 API”。微信官方文档有上千个接口,但真正高频使用的不过几十个。这篇文章按业务场景整理一份常用接口速查表,帮你少翻文档、少踩坑。
一、用户身份与登录
登录几乎是每个小程序的起点,核心是拿到 openid 并建立自己的会话体系。
wx.login:获取临时登录凭证code,传给后端换openid和session_key。wx.checkSession:检查登录态是否过期,常用于启动时静默续期。wx.getUserProfile:获取用户昵称、头像(注意:2022 年后返回的是匿名信息,需用户主动授权)。wx.getUserInfo:旧接口,新项目不建议再使用。
wx.login({
success(res) {
if (res.code) {
wx.request({
url: 'https://api.example.com/login',
method: 'POST',
data: { code: res.code },
success(r) { /* 保存自定义 token */ }
})
}
}
})二、网络请求与数据交互
小程序没有 axios,网络请求统一走 wx.request,建议封装成 Promise 并统一处理 token 与错误码。
wx.request:HTTPS 请求,需在后台配置合法域名。wx.uploadFile:上传图片、文件到服务器。wx.downloadFile:下载文件,配合wx.openDocument预览 PDF/Word。wx.connectSocket:实时通信,适合聊天、弹幕、订单推送。
三、界面交互与导航
页面跳转和反馈提示是使用频率最高的接口,直接影响用户体验。
wx.navigateTo:保留当前页跳转,最多十层。wx.redirectTo:关闭当前页跳转,适合登录后跳首页。wx.switchTab:跳转到 tabBar 页面。wx.showToast/wx.showModal/wx.showLoading:轻提示、确认弹窗、加载中。wx.setNavigationBarTitle:动态修改标题。
四、媒体与文件能力
图片、音视频、扫码是小程序区别于 H5 的强项。
wx.chooseMedia:选图/拍视频,替代旧的chooseImage。wx.previewImage:图片预览,支持多图滑动。wx.createInnerAudioContext:播放音频,适合音乐、语音播报。wx.createVideoContext:控制视频播放、暂停、全屏。wx.scanCode:扫码,可用于核销、加好友、跳转。
五、设备与位置能力
涉及线下场景时,位置和传感器接口非常关键。
wx.getLocation:获取经纬度,需申请权限并配置隐私协议。wx.chooseLocation:打开地图选点,适合收货地址。wx.openLocation:在地图中查看位置。wx.getSystemInfo:获取机型、屏幕、状态栏高度,常用于自定义导航栏适配。wx.onAccelerometerChange:监听重力感应,做摇一摇。
六、数据缓存与本地存储
缓存适合存放 token、草稿、配置等小数据,上限 10MB。
wx.setStorageSync/wx.getStorageSync:同步读写,简单直接。wx.setStorage/wx.getStorage:异步版本,适合大数据。wx.removeStorageSync/wx.clearStorageSync:删除与清空。
七、分享、支付与订阅消息
这三类接口直接关系增长与变现,务必掌握。
wx.showShareMenu与onShareAppMessage:开启并自定义转发。wx.requestPayment:发起微信支付,参数由后端签名返回。wx.requestSubscribeMessage:订阅消息,用于订单提醒、服务通知。wx.getUpdateManager:检测并提示小程序新版本。
八、实战建议
- 把
wx.request、wx.showToast、登录态检查封装成工具模块,业务层只调用语义化方法。 - 所有涉及隐私的接口(位置、相册、麦克风)都要在
app.json中声明并处理拒绝授权后的降级逻辑。 - 善用
wx.getSystemInfo与wx.getMenuButtonBoundingClientRect解决自定义导航栏适配问题。 - 接口调用尽量加
try/catch或fail回调,避免单个失败导致页面白屏。
API 不在多,而在用对场景。建议把这份清单收藏,开发时按模块对照查找,效率会明显提升。
评论 (0)
还没有评论,快来抢沙发吧~