uniapp云开发官方文档https://uniapp.dcloud.io/uniCloud/learning.html
新建
关联云空间
云函数获取用户openID
uniCloud API列表https://uniapp.dcloud.io/uniCloud/cf-functions.html#unicloud-api%E5%88%97%E8%A1%A8
自建云函数login
event中包含前端传来的参数
uniCloud.httpclient.request(URL,requestOptions) | 云函数中通过http连接其他系统 |
httpclienthttps://uniapp.dcloud.io/uniCloud/cf-functions.html#httpclient
微信openID
请求地址
GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
请求参数
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
appid | string | 是 | 小程序 appId | |
secret | string | 是 | 小程序 appSecret | |
js_code | string | 是 | 登录时获取的 code | |
grant_type | string | 是 | 授权类型,此处只需填写 authorization_code |
返回值
Object
返回的 JSON 数据包
属性 | 类型 | 说明 |
---|---|---|
openid | string | 用户唯一标识 |
session_key | string | 会话密钥 |
unionid | string | 用户在开放平台的唯一标识符,若当前小程序已绑定到微信开放平台帐号下会返回,详见 UnionID 机制说明。 |
errcode | number | 错误码 |
errmsg | string | 错误信息 |
前端页面
uni.login(OBJECT)
登录
OBJECT 参数说明
参数名 | 类型 | 必填 | 说明 | 平台差异说明 |
---|---|---|---|---|
provider | String | 否 | 登录服务提供商,通过 uni.getProvider 获取,如果不设置则弹出登录列表选择界面 | |
scopes | String/Array | 见平台差异说明 | 授权类型,默认 auth_base。支持 auth_base(静默授权)/ auth_user(主动授权) / auth_zhima(芝麻信用) | 支付宝小程序 |
timeout | Number | 否 | 超时时间,单位ms | 微信小程序、百度小程序、京东小程序 |
univerifyStyle | Object | 否 | 一键登录页面样式 | App 3.0.0+ |
onlyAuthorize | Boolean | 否 | 微信登录 仅请求授权认证 | App 3.2.6+ |
success | Function | 否 | 接口调用成功的回调 | |
fail | Function | 否 | 接口调用失败的回调函数 | |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
success 返回参数说明
参数名 | 说明 | 平台差异说明 |
---|---|---|
authResult | 登录服务商提供的登录信息,服务商不同返回的结果不完全相同 | 微信登录配置onlyAuthorize:true 则此项为空,App 3.2.6+ |
code | 用户登录凭证。开发者需要在开发者服务器后台,使用 code 换取 openid 和 session_key 等信息 | 微信登录配置onlyAuthorize:true 才会返回,App 3.2.6+、京东小程序 |
appleInfo | Object | 否 |
errMsg | 描述信息 |
uniCloud.callFunction() | 客户端调用云函数 见下;云函数中调用另一个云函数 见下 |
普通云函数方式
uni-app的前端代码,不再执行uni.request联网,而是通过uniCloud.callFunction
调用云函数,callFunction
方法的参数和返回值如下:
方法参数
callFunction
需要一个json对象作为参数,其中包含2个字段
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
name | String | 是 | 云函数名称 |
data | Object | 否 | 客户端需要传递的参数 |
返回json
字段 | 类型 | 说明 |
---|---|---|
result | Object | 云函数执行结果 |
requestId | String | 请求序列号,用于错误排查 |
前端示例代码
假使云服务空间有一个云函数名为“test”,那么前端可以通过如下方式调用这个云函数
uniCloud.callFunction({
name: 'test',
data: { a: 1 },
success(){},
fail(){},
complete(){}
});
公共模块
公共模块依赖
云函数获取用户信息
前端页面
云数据库https://uniapp.dcloud.net.cn/uniCloud/hellodb.html#base
uniCloud.database() | 客户端访问云数据库,获取云数据库对象引用 |
// 获取 `user` 集合的引用
const collection = db.collection('user');
#集合 Collection
通过 db.collection(name)
可以获取指定集合的引用,在集合上可以进行以下操作
类型 | 接口 | 说明 |
---|---|---|
写 | add | 新增记录(触发请求) |
计数 | count | 获取符合条件的记录条数 |
读 | get | 获取集合中的记录,如果有使用 where 语句定义查询条件,则会返回匹配结果集 (触发请求) |
引用 | doc | 获取对该集合中指定 id 的记录的引用 |
查询条件 | where | 通过指定条件筛选出匹配的记录,可搭配查询指令(eq, gt, in, ...)使用 |
skip | 跳过指定数量的文档,常用于分页,传入 offset | |
orderBy | 排序方式 | |
limit | 返回的结果集(文档数量)的限制,有默认值和上限值 | |
field | 指定需要返回的字段 |
查询及更新指令用于在 where
中指定字段需满足的条件,指令可通过 db.command
对象取得。
uni.getUserProfile(OBJECT)
获取用户信息。每次请求都会弹出授权窗口,用户同意后返回 userInfo。为保证用户隐私,不能直接调用,必须由点击按钮才可以调用。
OBJECT 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
desc | String | 是 | 声明获取用户个人信息后的用途,不超过30个字符 |
lang | String | 否 | 指定返回用户信息的语言,默认为 en。更多值请参考下面的说明。 |
success | Function | 否 | 接口调用成功的回调 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
lang 值说明
值 | 说明 |
---|---|
zh_CN | 简体中文 |
zh_TW | 繁体中文 |
en | 英文 |
**注意:**可以使用 if(uni.getUserProfile) 判断uni.getUserProfile是否可用。
success 返回参数说明
参数 | 类型 | 说明 |
---|---|---|
userInfo | OBJECT | 用户信息对象 |
rawData | String | 不包括敏感信息的原始数据字符串,用于计算签名。 |
signature | String | 使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息。 |
encryptedData | String | 包括敏感数据在内的完整用户信息的加密数据,详细见加密数据解密算法。 |
iv | String | 加密算法的初始向量,详细见加密数据解密算法。 |
cloudID | String | 敏感数据对应的云 ID,开通云开发的小程序才会返回,可通过云调用直接获取开放数据,详细见云调用直接获取开放数据 |
errMsg | String | 描述信息 |
userInfo 参数说明
参数 | 类型 | 说明 |
---|---|---|
nickName | String | 用户昵称 |
avatarUrl | String | 用户头像 |
gender | Number | 用户性别 |
country | String | 用户所在国家 |
province | String | 用户所在省份 |
city | String | 用户所在城市 |
language | String | 显示 country,province,city 所用的语言 |
gender 的合法值
值 | 说明 |
---|---|
0 | 未知 |
1 | 男性 |
2 | 女性 |
language 的合法值
值 | 说明 |
---|---|
en | 英文 |
zh_CN | 简体中文 |
zh_TW | 繁体中文 |
更新云数据库信息
建立索引
db.command
查询筛选指令 Query Command
以下指令挂载在 db.command
下
类型 | 接口 | 说明 |
---|---|---|
比较运算 | eq | 字段等于 == |
neq | 字段不等于 != | |
gt | 字段大于 > | |
gte | 字段大于等于 >= | |
lt | 字段小于 < | |
lte | 字段小于等于 <= | |
in | 字段值在数组里 | |
nin | 字段值不在数组里 | |
逻辑运算 | and | 表示需同时满足指定的所有条件 |
or | 表示需同时满足指定条件中的至少一个 |
如果你熟悉SQL,可查询mongodb与sql语句对照表 (opens new window)进行学习。
#字段更新指令 Update Command
以下指令挂载在 db.command
下
类型 | 接口 | 说明 |
---|---|---|
字段 | set | 设置字段值 |
remove | 删除字段 | |
inc | 加一个数值,原子自增 | |
mul | 乘一个数值,原子自乘 | |
push | 数组类型字段追加尾元素,支持数组 | |
pop | 数组类型字段删除尾元素,支持数组 | |
shift | 数组类型字段删除头元素,支持数组 | |
unshift | 数组类型字段追加头元素,支持数组 |
增
查
删