diff --git a/README.md b/README.md index 3b3980e807124b1c8e77b40b26c55a0e8289eaa9..6d7c2882d0a2f8319bdb87f00b23fdda73b00ff0 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ > base app目前还处于内测阶段,内测QQ群号:869926521,欢迎大家加入!内测期间享受有疑问实时解答的福利。 +### ps:文档处于完善过程中 + ### 介绍 `base app`,是一个云端一体的、集成了商用项目开发常见功能的项目模板。 如果说uniCloud admin是管理端项目的基础模板,那么base app则是用户端、尤其是移动端的基础模板。 @@ -42,23 +44,165 @@ img{ - 权限拦截,定位、拍照、相册涉及隐私权限和设备是否开关 8. h5版支持在页面顶部引导下载App -base app提供了baseapp.config.js,可指定该应用是否强制登录才能进入首页,可配置选择登录注册方式以及不同方式的优先级。 base app将节省开发者大量的时间,让开发者集中精力在自己的特色业务上。 有了base app,再加上schema2code生成前端页面,一个简单应用就可以快速完成。 base app + uniCloud admin,应用开发从未如此简单快捷! +base app提供了baseapp.config.js,可指定该应用是否强制登录才能进入首页,可配置选择登录注册方式以及不同方式的优先级等。 + +``` +module.exports = { + "h5": { + "url": "https://static-76ce2c5e-31c7-4d81-8fcf-ed1541ecbc6e.bspapp.com", // 前端网页托管的域名 + // 在h5端全局悬浮引导用户下载app的功能 更多自定义要求在/common/openApp.js中修改 + "openApp": { + //点击悬浮下载栏后打开的网页链接 + "openUrl": 'https://sj.qq.com/myapp/detail.htm?apkName=com.tencent.android.qqdownloader&info=6646FD239A6EBA9E2DEE5DFC7E18D867', + //左侧显示的应用名称 + "appname": 'base-app', + //应用的图标 + "logo": './static/logo.png', + } + }, + "mp": { + "weixin": { + //微信小程序原始id,微信小程序分享时 + "id": "gh_33446d7f7a26" + } + }, + "router": { + //配置需要路由拦截的页面地址,在打开这些页面之前会自动检查(不联网)uni_id_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"], + /* + 根据数组的第0项,决定登陆方式的第一优先级。 + 未列举到的,或设备环境不支持的选项,将被隐藏。 + 如果你需要在不同平台有不同的配置,直接用条件编译即可 + */ + }, + //关于应用 + "about": { + //应用名称 + "appName": "base-app", + //应用logo + "logo": "/static/logo.png", + //公司名称 + "company": "数字天堂(北京)网络技术有限公司", + //口号 + "slogan": "为开发而生", + //政策协议 + "agreements": [{ + "title": "用户服务协议", //协议名称 + "url": "https://ask.dcloud.net.cn/protocol.html" //对应的网络链接 + }, + { + "title": "隐私政策", + "url": "https://ask.dcloud.net.cn/protocol.html" + } + ], + //应用的链接,用于分享到第三方平台和生成关于我们页的二维码 + "download": "https://m3w.cn/uniapp" + }, + //用于打开应用市场评分界面 + "marketId":{ + "ios":"id1417078253", + "android":"123456" + } +} +``` + + ### 应用配置 #### 目录结构
-cloudfunctions
-├─────common 公共模块
-│		└─uni-config-center			// baseapp的服务端配置中心,项目所有云函数的配置在这里填写
-│			├─index.js				// config-center入口文件
-│			└─uni-id				// 插件uni-id对应的目录
-│				├─config.json		// uni-id对应的配置文件
-│				└─file.cert			// uni-id依赖的其他文件,假如你使用微信发红包功能,需要的证书文件就是放到这里
-├─ baseconfig						// baseapp的前端的配置文件,项目所有模块的配置在这里填写。详见该文件的代码注释。
-└─ manifest.json					// 配置应用名称、appid、logo、版本等打包信息,[详情](https://uniapp.dcloud.io/collocation/manifest)
+base-app
+├─uniCloud-aliyun	
+│	├─cloudfunctions 云函数目录
+│	|	├─common 公共模块
+│	│	|	├─uni-config-center		baseapp的服务端配置中心,项目所有云函数的配置在这里填写
+│	│	|	|	├─index.js			config-center入口文件
+│	│	|	|	└─uni-id			uni-id模块配置目录
+│	│	|	|		├─config.json	uni-id对应的配置数据
+│	│	|	|		└─file.cert		uni-id依赖的配置文件,假如你使用微信发红包功能,需要的证书文件就是放到这里
+│	|	|	└───uni-id				uni-id用户体系 详情
+│	|	├─uni-analyse-searchhot		云端一体搜索模板依赖的云函数 详情
+│	|	└─user-center				用户中心云函数,实现用户注册、修改密码、发送验证码、快捷登录(微信、短信、账户、一键登录)
+│	└──database						云数据目录
+│		├─db_init.json				db_init.json初始化数据库文件,其中不再包含schema 详情
+│		├─opendb-app-versions.schema.json		数据表xxx的DB Schema 详情
+│		├─opendb-banner.schema.json	        	数据表xxx的DB Schema 详情
+│		├─opendb-feedback.schema.json	        数据表xxx的DB Schema 详情
+│		├─opendb-news-articles.schema.json	    数据表xxx的DB Schema 详情
+│		├─opendb-news-categories.schema.json	数据表xxx的DB Schema 详情
+│		├─opendb-news-comments.schema.json		数据表xxx的DB Schema 详情
+│		├─opendb-news-favorite.schema.json		数据表xxx的DB Schema 详情
+│		├─opendb-search-hot.schema.json	        数据表xxx的DB Schema 详情
+│		├─opendb-search-log.schema.json	        数据表xxx的DB Schema 详情
+│		├─opendb-verify-codes.schema.json		数据表xxx的DB Schema 详情
+│		├─read-news-log.schema.json	        	数据表xxx的DB Schema 详情
+│		├─uni-id-log.schema.json	        	数据表xxx的DB Schema 详情
+│		├─uni-id-scores.schema.json	        	数据表xxx的DB Schema 详情
+│		└─uni-id-users.schema.json	        	数据表xxx的DB Schema 详情
+├─pages								业务页面文件存放的目录
+│	├─common						
+│	│	└─webview					webview目录
+│	│		└─webview.vue			webview页面	用于实现跨端的web页面浏览
+│	├─grid
+│	│	└─grid.vue	 				grid页面
+│	├─list
+│	│	├─list.vue	 				list页面
+│	│	├─search
+│	│	│	└─search				
+│	│	└─detail.vue
+│	├─ucenter
+│	│	├─about
+│	│	│	└─about
+│	│	├─login-page				登陆模块
+│	|	|	├─common				
+│	│	│	│	├─login-page.css
+│	│	│	│	├─login-page.mixin.js
+│	│	│	│	└─loginSuccess.js
+│	|	|	├─index
+│	|	|	├─phone-code
+│	|	|	├─pwd-login
+│	|	|	├─pwd-retrieve
+│	|	|	├─pwd-retrieve
+│	│	│	└─register
+│	│	│		├─validator.js
+│	│	│		└─register.vue
+│	│	├─read-news-log
+│	│	│	└─read-news-log
+│	│	├─settings
+│	│	│	├─dc-push
+│	│	│	│	└─push.js
+│	│	│	└─settings.vue
+│	│	├─userinfo
+│	│	│	├─bind-mobile
+│	│	│	│	└─bind-mobile.vue
+│	│	│	├─limeClipper
+│	│	│	│	├─images
+│	│	│	│	│	├─photo.svg
+│	│	│	│	│	└─rotate.svg
+│	│	│	│	├─index.css
+│	│	│	│	├─limeClipper.vue
+│	│	│	│	├─README.md
+│	│	│	│	└─utils.js
+│	│	│	├─main.js
+│	│	│	├─uploadCutImageToUnicloud.vue
+│	│	│	└─userinfo.vue
+│	|	└─ucenter.vue
+│	|
+├─static	 						存放应用引用的本地静态资源(如图片、视频等)的目录,注意:静态资源只能存放于此
+├─uni_modules						存放[uni_module](/uni_modules)规范的插件。
+├─main.js							Vue初始化入口文件
+├─App.vue							应用配置,用来配置App全局样式以及监听 应用生命周期
+├─baseconfig						baseapp的前端的配置文件,项目所有模块的配置在这里填写。详见该文件的代码注释。
+├─manifest.json	 					配置应用名称、appid、logo、版本等打包信息,详见
+└─pages.json						配置页面路由、导航条、选项卡等页面类信息,详见
 
完整的uni-app目录结构[详情](https://uniapp.dcloud.io/frame?id=%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84) #### 按功能模块 @@ -76,19 +220,28 @@ cloudfunctions + 更多`uni-upgrade-center`的介绍 [详情](https://uniapp.dcloud.io/uniCloud/upgrade-center) ### 应用启动时序介绍 -1. 初始化应用执行appInit +文件路径: App.vue +``` + import initApp from '@/common/appInit.js'; + export default { + onLaunch: function() { + initApp(); + } + } +``` +1. onLaunch还执行了initApp()包含以下操作 1. 读取baseapp.config并挂载到globalData的config下 2. 读取应用版本号,并存到globalData下。 3. 检查是否有可更新的应用版本。 - 4. 使用[拦截器](https://uniapp.dcloud.io/api/interceptor?id=addinterceptor) 实现了, + 4. 网络的变化与toast方式提醒 + 5. 使用[拦截器](https://uniapp.dcloud.io/api/interceptor?id=addinterceptor) 实现了, - 强制登陆路由拦截。 - 摄像头/相册权限,引导跳到设置界面 -2. 全局监听 - 1. 网络的变化与toast方式提醒 - 2. clientDB的err事件, +2. onLaunch还执行了: + 1. 全局监听clientDB的err事件, - 判断是否为token过期失效等需要重新登陆的问题。自动跳转到登陆页面 - 检测本地的token是否有效(存在且并未过期)否则跳转到登陆页面 -3. 预登陆一键登录功能 + 2. 预登陆一键登录功能 ## 快速体验部署流程 #### 1. 开通uniCloud - 开通`uniCloud`:本项目是云端一体的,它的云端代码需要部署在uniCloud云服务空间里,需要开通uniCloud。在[https://unicloud.dcloud.net.cn/](https://unicloud.dcloud.net.cn/)登录,按云厂商要求进行实名认证。 @@ -96,13 +249,19 @@ cloudfunctions - 使用HBuilderX 3.1以上版本(最好是最新版),把本项目导入到HBuilderX中,在项目根目录uniCloud上点右键菜单,关联服务空间 -> 选择之前创建的服务空间 #### 2. 关联项目与云服务空间 - - - - - - -#### 5. 真机运行 + + + +
+ +#### 3. 真机运行 注意:真机运行需要制作自定义基座,制作后选择运行到自定义基座. ### FAQ:常见问题