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. 关联项目与云服务空间 -