1. 用户信息
API 名称 | 常用参数 | 功能描述 |
---|---|---|
uni.getUserInfo({withCredentials}) | withCredentials (是否包含敏感信息) | 获取用户信息,包括昵称、头像等 |
uni.login({success(res){}}) | 无 | 获取用户登录凭证(code) |
2. 数据存储
API 名称 | 常用参数 | 功能描述 |
---|---|---|
uni.setStorageSync(key, data) | key (键名)、data (存储的数据) | 同步方式存储数据到本地缓存 |
uni.getStorageSync(key) | key (键名) | 同步方式从本地缓存获取数据 |
uni.removeStorageSync(key) | key (键名) | 同步方式移除本地缓存数据 |
uni.clearStorageSync() | 无 | 同步方式清空本地缓存 |
3. 网络请求
API 名称 | 常用参数 | 功能描述 |
---|---|---|
uni.request(url, data, method) | url (请求地址)、data (请求参数)、method (请求方法) | 发起 HTTPS 网络请求 |
4. 支付
API 名称 | 常用参数 | 功能描述 |
---|---|---|
uni.requestPayment(timeStamp, nonceStr, package) | timeStamp (时间戳)、nonceStr (随机字符串)、package (订单信息) | 发起微信支付请求 |
5. 设备信息
API 名称 | 常用参数 | 功能描述 |
---|---|---|
uni.getSystemInfoSync() | 无 | 获取系统信息,如屏幕宽度、高度等 |
6. 位置信息
API 名称 | 常用参数 | 功能描述 |
---|---|---|
uni.getLocation({type, isHighAccuracy}) | type (坐标类型, wgs84 返回 gps 坐标,gcj02 返回可用于 wx. openLocation 的坐标)、isHighAccuracy (是否高精度)highAccuracyExpireTime 高精度超时时间,要求 3000ms 以上 | 获取用户地理位置 |
7. 媒体
API 名称 | 常用参数 | 功能描述 |
---|---|---|
uni.chooseImage(count, sizeType) | count (选择图片数量)、sizeType (图片尺寸类型) | 从相册或相机选择图片 |
uni.previewImage(urls, current) | urls (图片链接列表)、current (当前显示图片的链接) | 预览图片 |
8. 分享
API 名称 | 常用参数 | 功能描述 |
---|---|---|
uni.shareAppMessage(title, path) | title (分享标题)、path (分享路径) | 分享小程序页面 |
9. 文件操作
API 名称 | 常用参数 | 功能描述 |
---|---|---|
uni.chooseFile(count, type) | count (选择文件数量)、type (文件类型,如 image 、video ) | 从本地选择文件 |
uni.uploadFile(url, filePath, name) | url (上传地址)、filePath (文件路径)、name (文件字段名) | 上传文件到服务器 |
10. 导航
API 名称 | 常用参数 | 功能描述 |
---|---|---|
uni.navigateTo(url) | url (目标页面路径) | 跳转到非 tabBar 页面 |
uni.switchTab(url) | url (目标 tabBar 页面路径) | 跳转到 tabBar 页面 |
11. 通知
API 名称 | 常用参数 | 功能描述 |
---|---|---|
uni.showToast(title, icon, duration) | title (提示内容)、icon (图标类型)、duration (显示时长) | 显示消息提示框 |
uni.showModal(title, content) | title (标题)、content (内容) | 显示模态对话框 |
12. 设备能力
API 名称 | 常用参数 | 功能描述 |
---|---|---|
uni.scanCode(onlyFromCamera) | onlyFromCamera (是否只从相机扫码) | 调起扫码功能 |
uni.vibrateLong() | 无 | 使手机振动 |
13. 网络状态
API 名称 | 常用参数 | 功能描述 |
---|---|---|
uni.getNetworkType() | 无 | 获取当前网络类型 |
uni.onNetworkStatusChange(callback) | callback (网络状态变化回调函数) | 监听网络状态变化 |
14. 补充 API
API 名称 | 常用参数 | 功能描述 |
---|---|---|
uni.createInnerAudioContext() | 无 | 创建音频播放器 |
uni.createMapContext(mapId) | mapId (地图组件 ID) | 创建地图上下文 |
uni.makePhoneCall(phoneNumber) | phoneNumber (电话号码) | 拨打电话 |
uni.setClipboardData(data) | data (要复制的数据) | 设置剪贴板数据 |
Uniapp 登录流程
调用
uni.login()
小程序调用uni.login()
获取临时登录凭证code
。发送
code
到服务器
将code
发送到开发者服务器,服务器通过微信接口(如code2Session
)换取用户的唯一标识openid
和会话密钥session_key
。生成自定义登录态
服务器根据openid
和session_key
生成自定义登录态(如 token),并返回给小程序。存储登录态
小程序将登录态存储在本地(如uni.setStorageSync
),用于后续请求的身份验证。
Uniapp 支付流程
生成订单
用户在小程序中选择商品并提交订单,后端生成支付订单,包括订单号、金额等信息。调用统一下单接口
后端调用微信支付的统一下单接口,获取支付参数(如timeStamp
、nonceStr
、package
等)。发起支付请求
小程序调用uni.requestPayment()
,传入支付参数,唤起微信支付界面。支付结果回调
用户完成支付后,微信服务器会通知后端支付结果,后端更新订单状态并返回支付结果给小程序。支付成功提示
小程序根据支付结果提示用户支付成功或失败。 以下是关于小程序 分包配置 的详细说明,重新整理并解释每个配置的作用,使用 Markdown 语法编写:
小程序分包配置详解
分包是将小程序的代码和资源拆分为多个包,以减少主包体积,提升加载速度。以下是 app.json
中分包相关配置的详细说明。
1. 主包配置
主包是小程序的默认包,包含启动页面和核心功能。
配置项 | 作用描述 |
---|---|
pages | 定义主包的页面路径。主包页面会优先加载,通常包括首页和核心功能页面。 |
示例
{
"pages": [
"pages/index/index",
"pages/logs/logs"
]
}
2. 分包配置
分包用于将非核心功能的代码和资源拆分为独立的包,按需加载。
配置项 | 作用描述 |
---|---|
subPackages | 定义分包信息,包括分包根目录和分包页面路径。 |
root | 指定分包的根目录路径。分包的所有页面和资源都应放在该目录下。 |
pages | 定义分包中的页面路径。路径相对于分包根目录。 |
independent | (可选)是否独立分包。独立分包不依赖主包,可以单独加载。默认值为 false 。 |
示例
{
"subPackages": [
{
"root": "subpackage1",
"pages": [
"pages/subpage1/subpage1",
"pages/subpage2/subpage2"
]
},
{
"root": "subpackage2",
"pages": [
"pages/subpage3/subpage3"
],
"independent": true
}
]
}
3. 预下载配置
预下载用于提前下载分包资源,提升用户体验。
配置项 | 作用描述 |
---|---|
preloadRule | 定义分包预下载规则。可以指定在某个页面加载时,预下载哪些分包。 |
packages | 指定需要预下载的分包路径。可以是分包根目录或主包路径("__APP__" )。 |
network | (可选)指定预下载的网络环境,如 wifi 或 all 。默认值为 wifi 。 |
示例
{
"preloadRule": {
"pages/index/index": {
"packages": ["subpackage1"],
"network": "wifi"
}
}
}
4. 分包与发布注意事项
- 分包限制:
- 主包大小不超过 2MB,所有分包大小不超过 20MB。
- 单个分包大小不超过 2MB。
- 独立分包:
- 独立分包不依赖主包,可以单独加载,适合功能相对独立的分包。
- 预下载优化:
- 合理使用预下载功能,可以提升用户访问分包页面的速度。
使用微信开发者工具检测包大小
微信开发者工具提供了内置的检测功能,可以快速检查包是否符合规范。
操作步骤: 打开微信开发者工具。 在工具栏中点击详情 -> 基本信息。 查看当前代码包大小,确保主包和分包的大小符合限制: 主包大小不超过 2MB。 所有分包大小不超过 20MB。 单个分包大小不超过 2MB。 点击详情 -> 本地设置,勾选上传时压缩代码,进一步优化包体积。