diff --git a/README.md b/README.md index 364f641020623bdcf7e54df060cdf3bf8eccdbf9..c4e7e04c4631e65e33acd06c541f3b70e9953b60 100644 --- a/README.md +++ b/README.md @@ -29,9 +29,10 @@ base app将节省开发者大量的时间,让开发者集中精力在自己的 base app + uniCloud admin,应用开发从未如此简单快捷! ### 应用配置 +#### 目录结构
cloudfunctions -└─────common 公共模块 +├─────common 公共模块 │ └─uni-config-center // baseapp的服务端配置中心,项目所有云函数的配置在这里填写 │ ├─index.js // config-center入口文件 │ └─uni-id // 插件uni-id对应的目录 @@ -41,35 +42,21 @@ cloudfunctions └─ manifest.json // 配置应用名称、appid、logo、版本等打包信息,[详情](https://uniapp.dcloud.io/collocation/manifest)完整的uni-app目录结构[详情](https://uniapp.dcloud.io/frame?id=%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84) -#### 1. manifest.json配置 - -完成如下配置: -- App模块配置 --> OAuth(登录鉴权)--> 勾选微信登录 --> 填写`appid`、`appsecret`、`ios平台通用链接` -- App模块配置 --> OAuth(登录鉴权)勾选`苹果登录`,[IOS苹果授权登录参考文档](https://ask.dcloud.net.cn/article/36651)。如不发布到Appstore,不需要配置此项 -- App模块配置 --> Share(分享)--> 微信分享 --> 填写`appid`、`ios平台通用链接` -- App常用其他设置 --> 填写关联域Associated Domains [参考教程](https://ask.dcloud.net.cn/article/36393)。如不发布到Appstore,不需要配置此项 - -#### 2. uni-id配置 - -在项目目录`uniCloud`--> `cloudfunctions`--> `common`--> `uni-config-center`--> `uni-id`--> `config.json`文件里: -- 微信登录填写`appid` 、`appsecret`,在微信开放平台查看,[微信开放平台](https://open.weixin.qq.com/) -- 苹果登录需要配置,`app-plus`--> `oauth`--> `apple`,填写包名`bundleId` - -### 界面如下: - -## 项目构成 -#### baseapp中的主要模块介绍 -1. uni-id用户体系 [uni-id](https://uniapp.dcloud.io/uniCloud/uni-id) -2. uniCloud 配置中心 [uni-config-center](https://ext.dcloud.net.cn/plugin?id=4425) -2. 分享功能插件 [uni-share](https://ext.dcloud.net.cn/plugin?id=4860) -3. 升级中心 [uni-upgrade-center](https://ext.dcloud.net.cn/plugin?id=4542) -4. 云端一体搜索模板 [uni-search-template](https://ext.dcloud.net.cn/plugin?id=3851) - -#### 第三方插件(感谢插件作者,排名不分前后): -1. [limeClipper](https://ext.dcloud.net.cn/plugin?id=3594) @作者: 陌上华年 -2. [Sansnn-uQRCode](https://ext.dcloud.net.cn/plugin?id=1287) @作者: 3snn - -#### 时序介绍 +#### 按功能模块 +- 登陆模块 + + `manifest.json` App模块配置 --> OAuth(登录鉴权)--> 勾选并配置你所需要的模块 + + 登陆方式的优先级和登陆项(支持多平台条件编译)详情配置文件:`baseconfig`的`router -> login` + + 服务端配置详情:`/uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json` + + 更多`uni-config-center`的介绍 [详情](https://ext.dcloud.net.cn/plugin?id=4425) +- 分享模块 + + `manifest.json` App模块配置 --> Share(分享)--> 勾选并配置你所需要的模块 + + 分享功能配置参数,随着应用的业务场景决定,在各场景调用的时候配置。参考base app的`/pages/list/detail.vue`的`methods -> shareClick` + + 更多`uni-share`的介绍 [详情](https://ext.dcloud.net.cn/plugin?id=4860) +- 升级中心相关 + + `manifest.json` 基础配置 --> 应用版本名称 和 应用版本号 + + 更多`uni-upgrade-center`的介绍 [详情](https://uniapp.dcloud.io/uniCloud/upgrade-center) + +### 时序介绍 初始化应用执行appInit 读取baseapp.config并挂载到globalData的config下 读取应用版本号,检查是否有可更新的版本。并存到globalData下 @@ -78,51 +65,24 @@ cloudfunctions 监听网络的变化与toast方式提醒 预登陆一键登录功能 全局监听clientDB的err事件,判断是否为token过期失效等需要重新登陆的问题。自动跳转到登陆页面 - 判断入口页是否为强制登陆页面,Y.检测本地的token是否有效(存在且并未过期)否则跳转到登陆页面 - -## 真机体验快速部署流程 + 判断入口页是否为强制登陆页面,检测本地的token是否有效(存在且并未过期)否则跳转到登陆页面 +## 快速体验部署流程 #### 1. 开通uniCloud - - 开通`uniCloud`:本项目是云端一体的,它的云端代码需要部署在uniCloud云服务空间里,需要开通uniCloud。在[https://unicloud.dcloud.net.cn/](https://unicloud.dcloud.net.cn/)登录,按云厂商要求进行实名认证。 - 在uniCloud认证通过后,创建一个服务空间给本项目使用。选择阿里云或腾讯云均可。[参考](https://uniapp.dcloud.net.cn/uniCloud/price) - 使用HBuilderX 3.1以上版本(最好是最新版),把本项目导入到HBuilderX中,在项目根目录uniCloud上点右键菜单,关联服务空间 -> 选择之前创建的服务空间 -#### 2. 开通App一键登陆 - -一键登陆是运营商提供的、比短信验证码更方便、更安全、更便宜的方案。[详见](https://uniapp.dcloud.net.cn/univerify)。 - -- manifest.json -> App模块配置 -> OAuth(登录鉴权)-> 一键登录,点击后面的`开通配置` -- 在随后打开的web界面中,同意协议,并点击充值按钮充值。如只是测试,可以只充值1元钱。 -- 如果你已经确定包名,则可以在web界面点击“添加应用”,提交审核。这个是正式打包必须的。真机运行可以跳过此环节。 -- 记住页面上展示的`apiKey`和`apiSecret`,下一步需要用到。 - - -#### 3. uni-id里配置一键登录 - -打开文件 `uniCloud` --> `cloudfunctions` --> `common` --> `uni-config-center`--> `uni-id` --> `config.json`, - -找到如下节点:`service` --> `univerify`,填写`appid`、`apiKey`和 `apiSecret`。`appid`就是`manifest`里的`DCloudAppId`。`apiKey`和`apiSecret`则是从上一步的web界面得来的。 - -#### 4. 上传云函数 - -在`uniCloud` -> `cloudfunctions`目录右键,选择 “上传所有云函数、公共模块及actions”。 - -注意:cloudfunctions--》common--》uni-config-center 目录需要单独上传一次,右键‘上传公共模块’。 +#### 2. 关联项目与云服务空间 - -#### 5. 初始化数据库 - +#### 3. 初始化数据库 方式一: - 在项目`uniCloud`目录-->`database`-->`db_init.json`文件,右键选择 “初始化云数据库”。 - 在`database`目录,右键选择 “上传所有数据集合Schema及扩展校验函数”。 - 方式二: - 在项目`uniCloud`目录右键,选择“运行云服务空间初始化向导”,点击“下一步”,点击“开始部署”。 - - -#### 6. 跨域配置 +#### 4. 跨域配置 如运行在iOS上,需解决本地页面跨域问题。 @@ -130,40 +90,14 @@ cloudfunctions ![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/a60dd5c0-614e-11eb-8d54-21c4ca4ce5d7.jpg) - -#### 7. 真机运行 - -到此为止,就可以真机运行跑起来了。这里运行的广告,是测试广告位,不会产生真实收益。 - -如果你要商用,还得申请各种资质。具体见下一章文档。 - +#### 5. 真机运行 注意:真机运行需要制作自定义基座,制作后选择运行到自定义基座. +### FAQ:常见问题 -### 准备工作 - -首先确定App的应用名称、包名、证书,后续在各个三方服务申请时,都需要包名和证书摘要。并且注意在HBuilderX中打包时,必须使用相同的包名和证书。应用名称在`manifest`里设置。 -- 上架应用市场需要有域名已经获得ICP备案的官网,你可以提前做好备案工作。另外网站你可以直接部署到uniCloud前端网页托管 -- 申请软件著作权:加入DCloud软著优惠加急申请QQ专用群:893532138 -- 申请一键登录:在 manifest.json -> App模块配置 -> OAuth(登录鉴权)-> 一键登录,点击后面的`开通配置`,在打开的web页面添加应用,充值。 -- 申请微信登录:在微信开放平台申请移动应用,获得的appid和appsecret,用于微信登录、微信分享。[微信开放平台](https://open.weixin.qq.com/) - -以上业务都有审核周期,请提前处理。 - -#### 7. APP云打包 -IOS和Android云打包,配置正确的包名,打包。 -注意:打包安卓或者苹果时,需要在开发者中心后台一键登录中配置相应平台的Android 包名或IOS BundleId 。 - - -## 二次开发 - -## 其他说明 - -### 上架说明 -上架应用市场需要有域名已经获得ICP备案的官网,你可以提前做好备案工作。另外网站你可以直接部署到uniCloud前端网页托管 - -先上架苹果的App Store,和腾讯应用宝。然后在上架其他应用市场的时候说明,本应用在腾讯应用宝和苹果App Store均已上架成功,可以大大地提升审核通过率。 - -## FAQ:常见问题 1. 提示“公共模块uni-id缺少配置信息”解决方案:在cloudfunctions右键‘上传所有云函数、公共模块及actions’之后,需要在cloudfunctions--》common--》uni-config-center 目录单独上传一次,右键‘上传公共模块’。 -2. 本项目代码可以商用,无需为DCloud付费。但不能把本项目的代码改造用于非uni-app和uniCloud的技术体系。即,不能将后台改成php、java等其他后台,这将违反使用许可协议。 \ No newline at end of file +2. 本项目代码可以商用,无需为DCloud付费。但不能把本项目的代码改造用于非uni-app和uniCloud的技术体系。即,不能将后台改成php、java等其他后台,这将违反使用许可协议。 + +### 第三方插件(感谢插件作者,排名不分前后): +1. [limeClipper](https://ext.dcloud.net.cn/plugin?id=3594) @作者: 陌上华年 +2. [Sansnn-uQRCode](https://ext.dcloud.net.cn/plugin?id=1287) @作者: 3snn \ No newline at end of file diff --git a/manifest.json b/manifest.json index d9e843c5567e84a9e7493b76b2e934722bbd49d9..92c722e65480285a0b3ad3cd8bd0088cf32a6d1e 100644 --- a/manifest.json +++ b/manifest.json @@ -30,7 +30,6 @@ }, /* 模块配置 */ "modules" : { - "OAuth" : {}, "Fingerprint" : {}, "Share" : {}, "Push" : {},