From 349ccbc1949d9de81bb59d7a7e46c0a2964f5e88 Mon Sep 17 00:00:00 2001 From: linju-json Date: Mon, 10 May 2021 22:01:29 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E4=B8=80=E6=AD=A5=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 77 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 44 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 4b684e1a..8acb5cd6 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,9 @@ #### 项目背景 我们一直想出一个结合uni-app、uniCloud和openDB以及uni-id和uniCloud admin等,uni全家桶的项目模板; 为了照顾各类应用的开发者,我们取交集最终罗列了如下功能,发现这些就是除业务逻辑外的项目基本功能并把它命名为`uni-starter`。 - +uni-starter将节省开发者大量的时间,让开发者集中精力在自己的特色业务上。 +有了uni-starter,再加上schema2code生成前端页面,一个简单应用就可以快速完成。 +uni-starter + uniCloud admin,应用开发从未如此简单快捷! ### 界面效果 @@ -32,24 +34,20 @@ img{ ### uni-starter集成的功能包括: -1. 个人中心:登录注册(含用户名密码登录、手机号验证码登录、app一键登陆、微信登录、Apple登录、支付宝小程序登录)、修改密码、忘记密码、头像更换、昵称修改、积分查看、指纹绑定、退出 +1. 个人中心:登录注册(含用户名密码登录、手机号验证码登录、app一键登陆、微信登录、Apple登录、微信小程序登录)、修改密码、忘记密码、头像更换、昵称修改、积分查看、指纹绑定、退出登陆 2. 设置:App更新(整包升级、wgt升级、强制升级,后台搭配uniCloud admin的升级中心插件管理)、权限引导(app)、推送开关(app)、清除缓存(app)、用户协议、隐私协议(app)、问题与反馈、分享推荐、关于 3. 启动引导:iOS初次启动被用户禁止网络权限后引导开启、Android弹出隐私协议后再申请权限 4. 首页集成banner(后台搭配uniCloud admin的banner插件管理)、搜索、列表、详情、分享,均为云端一体。实际使用中将clientDB的表名更改为自己业务表名即可 5. 首页采用nvue,fast编译模式,加快App端启动速度 6. 内置联网失败的重试页面(不是错误弹框,页面有重试按钮)、更漂亮的分享菜单页面 7. 内置拦截器: - - 网络拦截 - - 页面路由拦截,需要登录才能用的,自动跳转到登陆页,登陆后自动继续 - - 权限拦截,定位、拍照、相册涉及隐私权限和设备是否开关 -8. h5版支持在页面顶部引导下载App + - 页面路由拦截,配置需强制登陆的页面;打开时检测,如果token无效就自动跳转到登陆页 + - 优雅实现:自动引导打开`选择图片`所需要的权限。当调用`uni.chooseImage`时检测到无权限自动开启引导。并不是在每次调用接口时处理这类问题,你可以参考该例子做更多该类场景的处理。uni-starter也会持续完善 +8. h5版在页面顶部引导用户`点击下载App` -uni-starter将节省开发者大量的时间,让开发者集中精力在自己的特色业务上。 -有了uni-starter,再加上schema2code生成前端页面,一个简单应用就可以快速完成。 -uni-starter + uniCloud admin,应用开发从未如此简单快捷! - -uni-starter提供了uni-starter.config.js,可指定该应用是否强制登录才能进入首页,可配置选择登录注册方式以及不同方式的优先级等。 -配置项内容如下: +#### 应用配置 +##### 配置文件 +uni-starter提供了uni-starter.config.js,可指定该应用是否强制登录才能进入首页,可配置选择登录注册方式以及不同方式的优先级等。配置项内容如下: ``` module.exports = { "h5": { @@ -67,21 +65,21 @@ module.exports = { "mp": { "weixin": { //微信小程序原始id,微信小程序分享时 - "id": "gh_33446d7f7a26" + "id": "gh_132465798" } }, "router": { - //配置需要路由拦截的页面地址,在打开这些页面之前会自动检查(不联网)uni_id_token的值是否存在/过期等 + //配置需要路由拦截的页面地址,在打开这些页面之前会自动检查(无需联网)uni_id_token的值,如果token无效就自动跳转到登陆页 "needLogin": [ "/pages/ucenter/userinfo/userinfo", "/uni_modules/uni-news-favorite/pages/uni-news-favorite/list", "/pages/ucenter/userinfo/uploadCutImageToUnicloud" ], - "login": ["smsCode","uniVerify", "username", "weixin", "apple"], + "login": ["smsCode","univerify", "username", "weixin", "apple"], /* - 根据数组的第0项,决定登陆方式的第一优先级。 - 未列举到的,或设备环境不支持的选项,将被隐藏。 - 如果你需要在不同平台有不同的配置,直接用条件编译即可 + 这里会根据数组的第0项,决定登陆方式的第一优先级是哪种登陆方式。 + 所有你希望拥有的登陆方式这里都需要一一列举,未列举到的或设备环境不支持的登陆方式将被隐藏。 + 如果你需要在不同平台有不同的配置,直接用条件编译即可。 */ }, //关于应用 @@ -115,8 +113,15 @@ module.exports = { } ``` +##### 模块配置 +为了你可以快速体验uni-starter需要配置以下模块 +1. Fingerprint 指纹识别 +2. push消息推送 +3. OAuth登陆模块 + 1. 一键登陆univerify + 2. 苹果登陆 Sign in with Apple + 3. 微信登陆 -### 应用配置 #### 目录结构
 uni-starter
@@ -216,6 +221,8 @@ uni-starter
 - 升级中心相关
 	+ `manifest.json` 基础配置 --> 应用版本名称 和 应用版本号
 	+ 更多`uni-upgrade-center`的介绍 [详情](https://uniapp.dcloud.io/uniCloud/upgrade-center)
+- 开通一键登录
+
 
 ### 应用启动时序介绍
 文件路径: App.vue
@@ -227,19 +234,20 @@ uni-starter
 		}
 	}
 ```
-1. onLaunch还执行了initApp()包含以下操作
+onLaunch生命周期执行了
+1. 全局监听clientDB的err事件,
+	- 判断是否为token过期失效等需要重新登陆的问题。自动跳转到登陆页面
+	- 检测本地的token是否有效(存在且并未过期)否则跳转到登陆页面
+2. 预登陆一键登录功能
+3. 执行了initApp()包含以下操作
 	1. 读取uni-starter.config并挂载到globalData的config下
-	2. 读取应用版本号,并存到globalData下。
-	3. 检查是否有可更新的应用版本。
-	4. 网络的变化与toast方式提醒
-	5. 使用[拦截器](https://uniapp.dcloud.io/api/interceptor?id=addinterceptor) 实现了,
-	 - 强制登陆路由拦截。
-	 - 摄像头/相册权限,引导跳到设置界面
-2. onLaunch还执行了:
-	1. 全局监听clientDB的err事件,
-		- 判断是否为token过期失效等需要重新登陆的问题。自动跳转到登陆页面
-		- 检测本地的token是否有效(存在且并未过期)否则跳转到登陆页面
-	2. 预登陆一键登录功能
+	2. 读取应用版本号,并存到globalData下
+	3. 检查是否有可更新的应用版本,决定是否启动在线更新版本
+	4. 监听设备的网络变化并以uni.showToast APi的方式提醒用户
+	5. 使用[拦截器](https://uniapp.dcloud.io/api/interceptor?id=addinterceptor) 实现
+		- 页面路由拦截,配置需强制登陆的页面;打开时检测,如果token无效就自动跳转到登陆页
+		- 优雅实现:自动引导打开`选择图片`所需要的权限。当调用`uni.chooseImage`时检测到无权限自动开启引导。并不是在每次调用接口时处理这类问题,你可以参考该例子做更多该类场景的处理。uni-starter也会持续完善
+
 ## 快速体验部署流程
 #### 1. 开通uniCloud
 - 开通`uniCloud`:本项目是云端一体的,它的云端代码需要部署在uniCloud云服务空间里,需要开通uniCloud。在[https://unicloud.dcloud.net.cn/](https://unicloud.dcloud.net.cn/)登录,按云厂商要求进行实名认证。
@@ -259,8 +267,11 @@ img.cloud{
 	float:left
 }
 
-#### 3. 真机运行
-注意:真机运行需要制作自定义基座,制作后选择运行到自定义基座.
+
+### 注意事项
+1. 真机运行需要制作自定义基座,制作后选择运行到自定义基座
+2. 苹果登陆的图标,需要满足苹果应用市场的审核规范请勿随便修改;如需修改请先阅读:[Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/sign-in-with-apple/overview/buttons/)
+3. 应用登陆功能,默认不勾选同意隐私权限是响应安卓应用市场的规范;请勿修改该逻辑。
 
 ### FAQ:常见问题
 1. 提示“公共模块uni-id缺少配置信息”解决方案:在cloudfunctions右键‘上传所有云函数、公共模块及actions’之后,需要在cloudfunctions--》common--》uni-config-center 目录单独上传一次,右键‘上传公共模块’。
-- 
GitLab