uniapp 云开发笔记

uniapp云开发官方文档icon-default.png?t=N7T8https://uniapp.dcloud.io/uniCloud/learning.html

新建

关联云空间

 

 

 云函数获取用户openID

uniCloud API列表icon-default.png?t=N7T8https://uniapp.dcloud.io/uniCloud/cf-functions.html#unicloud-api%E5%88%97%E8%A1%A8

自建云函数login

event中包含前端传来的参数

uniCloud.httpclient.request(URL,requestOptions)

云函数中通过http连接其他系统

httpclienticon-default.png?t=N7T8https://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

请求参数

属性类型默认值必填说明
appidstring小程序 appId
secretstring小程序 appSecret
js_codestring登录时获取的 code
grant_typestring授权类型,此处只需填写 authorization_code

返回值

Object

返回的 JSON 数据包

属性类型说明
openidstring用户唯一标识
session_keystring会话密钥
unionidstring用户在开放平台的唯一标识符,若当前小程序已绑定到微信开放平台帐号下会返回,详见 UnionID 机制说明。
errcodenumber错误码
errmsgstring错误信息

前端页面

uni.login(OBJECT)

登录

OBJECT 参数说明

参数名类型必填说明平台差异说明
providerString登录服务提供商,通过 uni.getProvider 获取,如果不设置则弹出登录列表选择界面
scopesString/Array见平台差异说明授权类型,默认 auth_base。支持 auth_base(静默授权)/ auth_user(主动授权) / auth_zhima(芝麻信用)支付宝小程序
timeoutNumber超时时间,单位ms微信小程序、百度小程序、京东小程序
univerifyStyleObject一键登录页面样式App 3.0.0+
onlyAuthorizeBoolean微信登录仅请求授权认证App 3.2.6+
successFunction接口调用成功的回调
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success 返回参数说明

参数名说明平台差异说明
authResult登录服务商提供的登录信息,服务商不同返回的结果不完全相同微信登录配置onlyAuthorize:true则此项为空,App 3.2.6+
code用户登录凭证。开发者需要在开发者服务器后台,使用 code 换取 openid 和 session_key 等信息微信登录配置onlyAuthorize:true才会返回,App 3.2.6+、京东小程序
appleInfoObject
errMsg描述信息

uniCloud.callFunction()客户端调用云函数 见下;云函数中调用另一个云函数 见下

普通云函数方式

uni-app的前端代码,不再执行uni.request联网,而是通过uniCloud.callFunction调用云函数,callFunction方法的参数和返回值如下:

方法参数

callFunction需要一个json对象作为参数,其中包含2个字段

字段类型必填说明
nameString云函数名称
dataObject客户端需要传递的参数

返回json

字段类型说明
resultObject云函数执行结果
requestIdString请求序列号,用于错误排查

前端示例代码

假使云服务空间有一个云函数名为“test”,那么前端可以通过如下方式调用这个云函数

uniCloud.callFunction({name: 'test',data: { a: 1 },success(){},fail(){},complete(){}
});

公共模块

公共模块依赖

 

云函数获取用户信息

前端页面

云数据库icon-default.png?t=N7T8https://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 参数说明

参数名类型必填说明
descString声明获取用户个人信息后的用途,不超过30个字符
langString指定返回用户信息的语言,默认为 en。更多值请参考下面的说明。
successFunction接口调用成功的回调
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

lang 值说明

说明
zh_CN简体中文
zh_TW繁体中文
en英文

**注意:**可以使用 if(uni.getUserProfile) 判断uni.getUserProfile是否可用。

success 返回参数说明

参数类型说明
userInfoOBJECT用户信息对象
rawDataString不包括敏感信息的原始数据字符串,用于计算签名。
signatureString使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息。
encryptedDataString包括敏感数据在内的完整用户信息的加密数据,详细见加密数据解密算法。
ivString加密算法的初始向量,详细见加密数据解密算法。
cloudIDString敏感数据对应的云 ID,开通云开发的小程序才会返回,可通过云调用直接获取开放数据,详细见云调用直接获取开放数据
errMsgString描述信息

userInfo 参数说明

参数类型说明
nickNameString用户昵称
avatarUrlString用户头像
genderNumber用户性别
countryString用户所在国家
provinceString用户所在省份
cityString用户所在城市
languageString显示 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数组类型字段追加头元素,支持数组

 查

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/527068.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux第74步_“设备树”下的LED驱动

使用新字符设备驱动的一般模板&#xff0c;以及设备树&#xff0c;驱动LED。 1、添加“stm32mp1_led”节点 打开虚拟机上“VSCode”&#xff0c;点击“文件”&#xff0c;点击“打开文件夹”&#xff0c;点击“zgq”&#xff0c;点击“linux”&#xff0c;点击“atk-mp1”&am…

使用阿里云服务器搭建网站教程,就这么简单!

使用阿里云服务器快速搭建网站教程&#xff0c;先为云服务器安装宝塔面板&#xff0c;然后在宝塔面板上新建站点&#xff0c;阿里云百科aliyunbaike.com以搭建WordPress网站博客为例&#xff0c;来详细说下从阿里云服务器CPU内存配置选择、Web环境、域名解析到网站上线全流程&a…

OS-Copilot:实现具有自我完善能力的通用计算机智能体

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ AI 缩小了人类间的知识和技术差距 论文标题&#xff1a;OS-Copilot: Towards Generalist Computer Agents with Self-Improvement 论文链接&#xff1a;https://arxiv.org/abs/2402.07456 项目主页&a…

软件报错提示缺少D3DCompiler_47.dll文件怎么解决

许多用户在运行游戏或电脑软件时&#xff0c;遇到了一个提示“找不到d3dcompiler_47.dll”的错误消息。这个问题相当普遍&#xff0c;这个错误通常是由于系统中缺少关键的d3dcompiler_47.dll文件所导致的&#xff0c;而这个文件是很多应用程序运行的必要条件&#xff0c;特别是…

ES分页查询的最佳实践:三种方案

Elasticsearch&#xff08;ES&#xff09;中进行分页查询时&#xff0c;最佳实践取决于具体的使用场景和需求。 以下是对每种分页方法的简要分析以及它们适用的情况&#xff1a; 1. From Size 最常见且直观的方法&#xff0c;通过from参数指定跳过多少条记录&#xff0c;si…

【MySQL】表的增删改查——MySQL基本查询、数据库表的创建、表的读取、表的更新、表的删除

文章目录 MySQL表的增删查改1. Create&#xff08;创建&#xff09;1.1 单行插入1.2 多行插入1.3 替换 2. Retrieve&#xff08;读取&#xff09;2.1 select查看2.2 where条件2.3 结果排序2.4 筛选分页结果 3. Update&#xff08;更新&#xff09;3.1 更新单个数据3.2 更新多个…

【Python】time模块

专栏文章索引&#xff1a;Python 目录 一、介绍​编辑 二、常用函数​编辑 一、介绍 Python 的 time 模块提供了处理时间的函数。 二、常用函数 1.time()&#xff1a;返回当前时间的时间戳&#xff08;从1970年1月1日开始计时的秒数&#xff09;。 import timecurrent_ti…

【Python数据结构与判断1/7】复杂的多向选择

目录 导入 举个栗子 代码优化 elif 栗子 执行顺序 情况一 情况二 情况三 if-elif-else特性 三种判断语句小结 if if-else if-elif-else 嵌套语句 if嵌套 栗子 执行顺序 相互嵌套 Tips Debug 总结 导入 在前面&#xff0c;我们学习了单向选择的if语句和多项…

人才推荐 | 高级半导体工艺工程师,美国凯斯西储大学电化学博士

编辑 / 木子 审核 / 朝阳 伟骅英才 伟骅英才致力于以大数据、区块链、AI人工智能等前沿技术打造开放的人力资本生态&#xff0c;用科技解决职业领域问题&#xff0c;提升行业数字化服务水平&#xff0c;提供创新型的产业与人才一体化服务的人力资源解决方案和示范平台&#x…

《深度学习风暴:掀起智能革命的浪潮》

在当今信息时代,深度学习已经成为科技领域的一股强大力量,其应用领域涵盖了从医疗到金融再到智能交互等方方面面。随着技术的不断进步和应用的不断拓展,深度学习的发展势头愈发迅猛,掀起了一股智能革命的浪潮。本文将从基本原理、应用实例、挑战与未来发展方向、与机器学习…

1923 基于单片机自动升旗、国旗控制系统设计(仿真、程序、电路图)

摘要 本文详细介绍了一款基于STC89C52单片机的国旗升降系统&#xff0c;其设计实现了按键控制国旗的匀速升降&#xff0c;同时考虑了误动作避免、半旗状态的判定、时间控制等方面的问题。文档还涵盖了STC89C52单片机的特性、硬件设计、程序控制&#xff0c;以及使用Proteus和A…

Visual Basic6.0零基础教学(2)—vb中类的介绍和基本控件的属性

Visual Basic 6.0中类的介绍和基本控件的属性 文章目录 Visual Basic 6.0中类的介绍和基本控件的属性前言一、对象的有关概念1.类2.对象3.对象的三要素4.5. VB程序的执行步骤 二、基本控件属性1.修改控件属性的练习案例 总结 前言 大家好&#xff0c;昨天我们学习了vb的简单介…