公告
Skip to content

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 登录流程 ​

  1. 调用 uni.login()
    小程序调用 uni.login() 获取临时登录凭证 code。

  2. 发送 code 到服务器
    将 code 发送到开发者服务器,服务器通过微信接口(如 code2Session)换取用户的唯一标识 openid 和会话密钥 session_key。

  3. 生成自定义登录态
    服务器根据 openid 和 session_key 生成自定义登录态(如 token),并返回给小程序。

  4. 存储登录态
    小程序将登录态存储在本地(如 uni.setStorageSync),用于后续请求的身份验证。

Uniapp 支付流程 ​

  1. 生成订单
    用户在小程序中选择商品并提交订单,后端生成支付订单,包括订单号、金额等信息。

  2. 调用统一下单接口
    后端调用微信支付的统一下单接口,获取支付参数(如 timeStamp、nonceStr、package 等)。

  3. 发起支付请求
    小程序调用 uni.requestPayment(),传入支付参数,唤起微信支付界面。

  4. 支付结果回调
    用户完成支付后,微信服务器会通知后端支付结果,后端更新订单状态并返回支付结果给小程序。

  5. 支付成功提示
    小程序根据支付结果提示用户支付成功或失败。 以下是关于小程序 分包配置 的详细说明,重新整理并解释每个配置的作用,使用 Markdown 语法编写:

小程序分包配置详解 ​

分包是将小程序的代码和资源拆分为多个包,以减少主包体积,提升加载速度。以下是 app.json 中分包相关配置的详细说明。

1. 主包配置 ​

主包是小程序的默认包,包含启动页面和核心功能。

配置项作用描述
pages定义主包的页面路径。主包页面会优先加载,通常包括首页和核心功能页面。

示例 ​

json
{
  "pages": [
    "pages/index/index",
    "pages/logs/logs"
  ]
}

2. 分包配置 ​

分包用于将非核心功能的代码和资源拆分为独立的包,按需加载。

配置项作用描述
subPackages定义分包信息,包括分包根目录和分包页面路径。
root指定分包的根目录路径。分包的所有页面和资源都应放在该目录下。
pages定义分包中的页面路径。路径相对于分包根目录。
independent(可选)是否独立分包。独立分包不依赖主包,可以单独加载。默认值为 false。

示例 ​

json
{
  "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。

示例 ​

json
{
  "preloadRule": {
    "pages/index/index": {
      "packages": ["subpackage1"],
      "network": "wifi"
    }
  }
}

4. 分包与发布注意事项 ​

  1. 分包限制:
    • 主包大小不超过 2MB,所有分包大小不超过 20MB。
    • 单个分包大小不超过 2MB。
  2. 独立分包:
    • 独立分包不依赖主包,可以单独加载,适合功能相对独立的分包。
  3. 预下载优化:
    • 合理使用预下载功能,可以提升用户访问分包页面的速度。

使用微信开发者工具检测包大小 ​

微信开发者工具提供了内置的检测功能,可以快速检查包是否符合规范。

操作步骤: 打开微信开发者工具。 在工具栏中点击详情 -> 基本信息。 查看当前代码包大小,确保主包和分包的大小符合限制: 主包大小不超过 2MB。 所有分包大小不超过 20MB。 单个分包大小不超过 2MB。 点击详情 -> 本地设置,勾选上传时压缩代码,进一步优化包体积。