微信小程序常用 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();