uni-starter:云端一体应用快速开发的新选择

news2024/9/20 8:15:48

一、引言

随着移动互联网的快速发展,应用开发面临着日益增长的效率挑战。如何在保证应用功能丰富性的同时,快速迭代和上线,成为了众多开发者关注的焦点。在这样的背景下,uni-starter作为一款集成商用项目常见功能的云端一体应用快速开发项目模版,为开发者提供了全新的解决方案。

图片

二、uni-starter简介

uni-starter不仅仅是一个项目模版,它更是一个集成了众多常用功能的开发框架。通过uni-starter,开发者可以快速构建出具备登录注册、个人中心、设置、权限管理、拦截器等功能的应用。更重要的是,uni-starter支持在HBuilderx中直接新建项目选择,极大简化了开发流程。

uni-starter是集成商用项目常见功能的、云端一体应用快速开发项目模版。

一个应用有很多通用的功能,比如登录注册、个人中心、设置、权限管理、拦截器、banner... ,uni-starter将这些功能都已经集成好。

直接在HBuilderx新建项目选择uni-starter模板,即可在此基础上快速开发自己的特色业务。

有了uni-starter,再加上schema2code生成前端页面,一个简单应用就可以快速完成。

如果说uni-admin是管理端项目的基本项目模版,那么uni-starter则是用户端、尤其是移动端的基础项目模板。

uni-starter + uni-admin 提供了用户端和管理端的全套模版,开箱即用,应用开发从未如此简单快捷!

体验示例

  • h5版地址

    • 阿里云版演示项目:https://uni-starter.dcloud.net.cn

    • 扫码体验:

      图片

    • 支付宝云版演示项目:https://uni-starter.dcloud.net.cn/alipay/

  • apk地址

    • 支付宝云版地址:https://env-00jx4wokha6m.normal.cloudstatic.cn/__UNI__StarterWithCMS__20231206115357.apk

下载地址:https://ext.dcloud.net.cn/plugin?id=5057

GitCode 仓库:https://gitcode.net/dcloud/uni-starter

图片

三、uni-starter的核心功能

  1. 用户管理:uni-starter的用户管理本质是集成了uni-id-pages,它包括众多功能:

    • 登录注册(用户名密码登录、手机号验证码登录、APP一键登录、微信登录、Apple登录、微信小程序登录、手机微信扫码登录、微信公众号内登录)

    • 修改密码、忘记密码、头像更换(集成图片裁剪)、昵称修改、积分查看、退出登录、账号注销

  2. 系统设置:

    • 内置App升级中心(整包升级、wgt升级、强制升级,后台搭配uni-admin的升级中心插件管理)

    • 推送开关(app)、清除缓存(app)

    • 指纹解锁(app)、人脸解锁(app)

    • 多语言切换

  3. 隐私权限:内置Android先弹出隐私协议对话框,然后再向用户申请设备权限

  4. 权限引导:当应用拒绝授权某些权限,但在后续使用中又需要这个权限;此时实现:引导用户可“一键跳转至系统设置”中开启。

    • 而不是报错让用户自己去找解决方案(更好的用户体验)。

    • 采用高内聚低耦合的设计结构,直接在应用启动时,应用拦截器中实现。免去在每个业务代码中处理这类问题,更优雅更方便。

    • 已实现项目:摄像头、相册、获取GPS定位、网络2/3/4/5G和Wi-Fi。你可以参考这些实现,处理更多该类场景的处理。uni-starter也会持续更新完善。

  5. 实用功能

    • 问题与反馈、关于、隐私政策、用户服务协议

    • banner(后台搭配uni-admin的banner插件管理)

    • 新闻的搜索、列表、详情、分享。通过clientDB实现,开发者直接修改定义的表名等参数,即可轻松改为自己的业务

    • 可覆盖原生层的分享菜单

    • h5版在页面顶部(全局悬浮)引导用户点击下载App

    • 营销裂变:点击“分销推荐”,生成带用户inviteCode参数的应用下载页(H5),一键分享到微信或微信朋友圈等。被邀请人打开下载页面点击下载,设备剪贴板的内容会被自动设置为邀请者的inviteCode。被邀请人下载app之后通过任何方式登录(含:注册并登录),uni-starter框架会自动获取设备剪切板中的inviteCode提交到服务端绑定关联关系。

  6. 更好的性能:首页采用nvue,fast编译模式,加快App端启动速度

  7. 内置拦截器:

    • 页面路由拦截,配置需强制登录的页面;打开时自动检测token若无效就自动跳转到登录页

    • 调用云函数(callFunction)拦截器,自动携带必要参数、自动处理响应体。详见8.自动完成1-2

  8. 自动完成:

    • 分析uniCloud.callFunction和clientDB操作的响应体,判断code执行对应的操作如跳转到登录页,自动续期token

    • 操作注册/登录操作自动获取客户端设备:push_clientid、imei、oaid、idfa新增/更新到数据表uni-id-device

    • 异常恢复处理:断网恢复后自动重连“因网络错误导致的”网络请求

    • 为迎合苹果App Store的规则,登录与分享功能项显示之前自动检测是否安装了对应客户端。比如:设备未安装微信则不显示微信快捷登录和微信分享选项

四、uni-starter与uni-admin的结合

uni-admin是另一款强大的管理端项目模版,与uni-starter结合使用,可以为用户提供完整的前后端开发体验。通过uni-admin,开发者可以方便地管理应用的升级、推送、权限等设置,而uni-starter则负责实现这些设置的具体功能。两者相辅相成,使得应用开发更加简单快捷。

图片

五、结论

uni-starter作为一款云端一体应用快速开发项目模版,以其丰富的功能和便捷的开发流程赢得了众多开发者的青睐。通过uni-starter,开发者可以快速构建出功能完善、性能优越的应用,并快速迭代和上线。同时,uni-starter还具备高内聚低耦合的设计结构,使得应用的可维护性和可扩展性得到了极大的提升。因此,对于追求高效开发的开发者来说,uni-starter无疑是一个值得尝试的选择。

项目地址:

https://ext.dcloud.net.cn/plugin?id=5057

文档地址:

https://doc.dcloud.net.cn/uniCloud/uni-starter.html

前端技术交流:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++初学者指南-2.输入和输出---命令行参数

C初学者指南-2.输入和输出—命令行参数 文章目录 C初学者指南-2.输入和输出---命令行参数1.这是什么&为什么这样?2.如何在C中访问3.转换为std::string、int......4.字符串到数字的转换函数5.命令行参数解析库 1.这是什么&为什么这样? 程序调用后…

Halcon 根据霍夫变换在图像中寻找直线

一 霍夫变换 1 定义 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一.几何形状包括圆,椭圆,直线等等. 2 直线方程 直线的方程可以用yk*xb 来表示,其中k和b是参数,分别是斜率和截距; 3 霍夫变换原理: 设…

本地服务怎么发布成rpc服务

目录 1.引入 2.user.proto 3.userservice.cc 1.引入 example文件夹作为我们框架项目的使用实例,在example文件夹下创建callee和caller两个文件夹 callee是RPC服务的提供者。在callee创建一个文件:userservice.cc 我们有没有这样一个框架,把…

VMware Workstation安装Windows Server2019系统详细操作步骤

虚拟机版本 VMware Workstation 16 Prp 16.2.5 build-20904516 实现操作 创建虚拟机 创建新的虚拟机 自定义->下一步 默认即可,下一步 稍后安装操作系统->下一步 按照图下所示选择好系统->下一步 设置好虚拟机名称和位置->下一步 默认即可&#xff0…

ONLYOFFICE桌面编辑器8.1版:个性化编辑和功能强化的全面升级

ONLYOFFICE是一款全面的办公套件,由Ascensio System SIA开发。该软件提供了一系列与微软Office系列产品相似的办公工具,包括处理文档(ONLYOFFICE Document Editor)、电子表格(ONLYOFFICE Spreadsheet Editor&#xff0…

React+TS 从零开始教程(3):useState

源码链接:下载 在开始今天的内容之前呢,我们需要先看一个上一节遗留的问题,就是给属性设置默认值。 我们不难发现,这个defaultProps已经被废弃了,说明官方并不推荐这样做。其实,这个写法是之前类组件的时候…

Excel 宏录制与VBA编程 —— 12、文本字符串类型相关(附示例)

字符串分割,文末示例(文末代码3附有源码) 代码1 - 基础字符串 代码2 - 字符串拆分 代码3 - 字符串分割 Option ExplicitSub WorkbooksClear()Dim DataRange As RangeSet DataRange Range("C2:E12")DataRange.Clear End SubSub Wo…

QGIS在VS2019开发

QGIS二次开发(1)—加载矢量、栅格图层(QGIS 2.14.16 && Qt-4.8.6 && VS2010 )_qgis开发教程-CSDN博客 VS2019QT5.15.2QGIS二次开发环境搭建(非源码方式)_qt qgis-CSDN博客 也许面向对象课…

MVVM——CommunityToolKit第三方详情

CommunityToolkit是微软推出的轻量级工具包,它集成了现代、快速和模块化的 MVVM 库。 安装 在NuGet 工具箱上搜索CommunityToolKit进行下载 观测对象 ObservableObject ObservableObject 是通过实现 INotifyPropertyChanged 和 INotifyPropertyChanging 接口可观…

单门户上集成多种数据库查询入口

(作者:陈玓玏) 开源项目,欢迎star哦,https://github.com/tencentmusic/cube-studio 在一家公司,我们通常会有多种数据库,每种数据库因为其特性承担不同的角色,比如mysql这种轻量…

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇域控系统提权NetLogonADCSPACKDC永恒之蓝CVE漏洞

红队内网攻防渗透 1. 内网横向移动1.1 横向移动-域控提权-CVE-2020-1472 NetLogon1.2 横向移动-域控提权-CVE-2021-422871.3 横向移动-域控提权-CVE-2022-269231.4 横向移动-系统漏洞-CVE-2017-01461.5 横向移动-域控提权-CVE-2014-63241. 内网横向移动 1、横向移动-域控提权-…

LeetCode.32最长有效括号详解

问题描述 给你一个只包含 ( 和 ) 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 解题思路1 有效的括号字符串意味着每一个左括号 ( 都可以找到一个相匹配的右括号 )。栈可以帮助我们追踪尚未匹配的括号,并有效地处理…

缓存雪崩、穿透、击穿的概念和如何避免

雪崩 概念 高并发请求多个key,此时多个key同时失效、不在缓存中,请求全部打到数据库,使数据库无法处理这么多的连接,导致数据库死机 如何避免 防止多个key同时过期,设置随机的过期时间不设置过期时间,有…

编程精粹—— Microsoft 编写优质无错 C 程序秘诀 08:剩下的就是态度问题

这是一本老书,作者 Steve Maguire 在微软工作期间写了这本书,英文版于 1993 年发布。2013 年推出了 20 周年纪念第二版。我们看到的标题是中译版名字,英文版的名字是《Writing Clean Code ─── Microsoft’s Techniques for Developing》&a…

chatglm系列知识

一、目录 chatglm 是什么语言模型与transformer decoder 的区别解释prefix LM与Cause LMchatglm(prefix LM)与decoder-only LM 核心区别glm 架构chatglm 预训练方式chatglm 微调chatglm与chatglm2、chatglm3的区别chatglm 激活函数采用gelu, 为什么chat…

融资融券账户与普通账户有何区别?一文读懂为什么要开通两融账户

01 融资融券账户与普通账户的区别 1、开通条件不同: ①普通账户:开户的门槛低,一般年满18岁以上就能开通。(70岁以上需要临柜开户)。 ②融资融券:融资融券的准入门槛相对较高,需要满足以下几…

SQLite3的使用

14_SQLite3 SQLite3是一个嵌入式数据库系统,它的数据库就是一个文件。SQLite3不需要一个单独的服务器进程或操作系统,不需要配置,这意味着不需要安装或管理,所有的维护都来自于SQLite3软件本身。 安装步骤 在Linux上安装SQLite…

python桌面应用

py文件 import osimport wx import wx.html2class MyFrame(wx.Frame):def __init__(self, parent):wx.Frame.__init__(self, parent, title"启动啦", size(1000, 700))# 创建一个Web视图组件self.browser wx.html2.WebView.New(self)# 加载本地HTML文件# self.brow…

WebFlux 和 Spring Security 会碰出哪些火花?

项目创建成功后,我们添加一个接口,用来获取登录用户信息,如下: RestController public class UserController { GetMapping(“/user”) public Mono getCurrentUser(Mono principal) { return principal; } } 注意我们的返…