微信小程序常用 API
微信小程序提供了丰富的 API,覆盖用户交互、数据处理、设备控制等多个场景。以下是常用 API 及其典型应用场景的详细说明:
一、用户信息与授权
1.wx.getUserProfile
- 场景:获取用户头像、昵称等基础信息(需用户主动授权)。
- 使用:在用户注册或完善资料时调用,替代旧版wx.getUserInfo,需通过按钮点击触发授权流程。
- 示例:
wx.getUserProfile({ desc: \'用于完善会员资料\', success(res) { /* 处理用户信息 */ }});
2. wx.login
- 场景:获取临时登录凭证(code),用于后端换取 OpenID。
- 使用:小程序码登录、手机号绑定等需身份验证的场景。
- 流程:前端调用wx.login获取 code,后端通过 AppID 和 AppSecret 换取用户唯一标识。
二、界面与交互
1.wx.navigateTo
- 场景:保留当前页面,跳转到新页面(如商品详情页)。
- 示例:
wx.navigateTo({ url: \'/pages/detail/detail\' });
2.wx.showModal
- 场景:弹出模态对话框,用于操作确认(如删除、退出登录)。
- 示例:
wx.showModal({ title: \'提示\', content: \'确定要删除吗?\', success(res) { if (res.confirm) { /* 执行删除 */ } }});
3.wx.setNavigationBarTitle
- 场景:动态修改页面导航栏标题(如搜索结果页显示关键词)。
三、网络与数据交互
1.wx.request
- 场景:发送 HTTP 请求获取或提交数据(如加载商品列表、提交订单)。
- 示例:
wx.request({ url: \'https://api.example.com/data\', method: \'GET\', success(res) { /* 处理返回数据 */ }});
2.wx.uploadFile
- 场景:上传文件(如图像、文档)至服务器(如用户头像上传)。
- 示例:
wx.chooseImage({ count: 1, success(res) { wx.uploadFile({ url: \'https://api.example.com/upload\', filePath: res.tempFilePaths[0], name: \'file\' }); }});
四、数据存储
1.wx.setStorageSync
- 场景:同步存储数据到本地(如用户设置、临时缓存)。
- 示例:
wx.setStorageSync(\'token\', \'xxx\');
2.云开发数据库 API
- 场景:云端存储结构化数据(如用户订单、商品信息)。
- 示例:
const db = wx.cloud.database();db.collection(\'orders\').add({ data: { /* 订单数据 */ } });
-
TypeScript取消自动换行复制
const db = wx.cloud.database();
db.collection(\'orders\').add({ data: { /* 订单数据 */ } });
五、支付与交易
1.wx.requestPayment
- 场景:发起微信支付(如电商下单、在线课程购买)。
- 流程:前端调用云函数生成预支付订单,后端通过微信支付接口获取支付凭证,最后调用wx.requestPayment唤起支付界面。
- 注意:需配置商户号、API 密钥,并处理支付结果通知。
2.云开发支付模板
- 场景:通过云开发快速集成支付功能,包括下单、退款查询等,减少服务器运维成本。
六、地理位置与设备
1.wx.getLocation
- 场景:获取用户位置(如附近商家推荐、地图导航)。
- 示例:
wx.getLocation({ type: \'wgs84\', success(res) { /* 获取经纬度 */ }});
2.wx.getSystemInfo
- 场景:获取设备信息(如屏幕尺寸、操作系统),用于界面适配。
- 示例:
wx.getSystemInfo({ success(res) { console.log(res.model); } // 输出设备型号});
七、多媒体与分享
1.wx.chooseImage
- 场景:选择本地图片或拍照(如社交动态发布、商品图片上传)。
- 示例:
wx.chooseImage({ count: 3, // 最多选3张 success(res) { /* 处理图片路径 */ }});
2.wx.shareAppMessage
- 场景:自定义分享内容到微信好友或朋友圈(如文章、活动页)。
- 示例:
Page({ onShareAppMessage() { return { title: \'推荐好物\', path: \'/pages/goods/goods?id=1\' }; }});
八、事件监听与系统管理
1.wx.onAppShow
- 场景:监听小程序从后台切回前台的事件(如更新未读消息数)。
- 使用:在 App.js 中注册全局监听。
2.wx.getUpdateManager
- 场景:检查并处理小程序版本更新(如强制用户升级以使用新功能)。
- 示例:
const manager = wx.getUpdateManager();manager.onUpdateReady(() => { wx.showModal({ content: \'新版本已下载,重启生效\', success: () => manager.applyUpdate() });});
九、模板消息与通知
1.模板消息 API
- 场景:发送订单通知、服务提醒(如支付成功、物流状态更新)。
- 限制:需通过支付或表单提交获取 formId,且仅在 7 天内有效。
- 合规建议:优先通过支付场景获取 formId,避免滥用导致封禁。
十、云开发与 AI 能力
1.云开发 AI 接口
- 场景:调用大模型生成文本、智能客服等(如商品描述生成、用户问题自动回答)。
- 示例:
const ai = wx.cloud.extend().AI;const model = ai.createModel(\'hunyuan-exp\');model.generateText({ messages: [{ role: \'user\', content: \'介绍一款手机\' }] });
2.云数据库操作
- 场景:云端数据增删改查(如用户评论管理、活动报名统计)。
- 示例:
db.collection(\'comments\').where({ userId: \'123\' }).get();