提交 1083bc4a 编写于 作者: DCloud_JSON's avatar DCloud_JSON

补充文档,未完待续...

上级 2bf63f5a
......@@ -16,17 +16,8 @@
//checkIsAgree(); 暂时先用默认生成的,自定义的等待原生支持后实现。因为启动vue界面时已经,请求了部分权限这并不符合国家的法规
// #endif
//#ifdef APP-NVUE || H5
//预加载设置页面
uni.preloadPage({
url: "/pages/ucenter/settings/settings",
complete: e => {
// console.log(e);
}
});
//#endif
// #ifdef APP-PLUS
//预加载一键登录
//一键登录 功能预登陆
plus.oauth.getServices(oauthServices => {
// console.log(oauthServices);
oauthServices.forEach(({
......
> baseapp目前还处于内测阶段,内测QQ群号:869926521,欢迎大家加入!内测期间享受有疑问实时解答的福利。
### 介绍
base app,是一个云端一体的、集成了商用项目开发常见功能的项目模板。
如果说uniCloud admin是管理端项目的基础模板,那么base app则是用户端、尤其是移动端的基础模板。
在HBuilderX新建项目时选择base app项目模板,在这个模板基础之上快速填充自己的业务,即可很快完成一个应用。
地址:[https://gitee.com/dcloud/base-app](https://gitee.com/dcloud/base-app)
#### 项目背景
我们一直想出一个结合uni-app、uniCloud和openDB以及uni-id和uniCloud admin等,uni全家桶的项目模板;
为了照顾各类应用的开发者,我们最终取交集推出了baseapp.
无论是什么类型的应用都需要这些功能。换句话来说开发者直接基于baseapp开发项目会事半功倍!
base app集成的功能包括:
### base app集成的功能包括:
1. 个人中心:登录注册(含用户名密码登录、手机号验证码登录、app一键登陆、微信登录、Apple登录、支付宝小程序登录)、修改密码、忘记密码、头像更换、昵称修改、积分查看、指纹绑定、退出
2. 设置:App更新(整包升级、wgt升级、强制升级,后台搭配uniCloud admin的升级中心插件管理)、权限引导(app)、推送开关(app)、清除缓存(app)、用户协议、隐私协议(app)、问题与反馈、分享推荐、关于
3. 启动引导:iOS初次启动被用户禁止网络权限后引导开启、Android弹出隐私协议后再申请权限
......@@ -16,22 +22,177 @@ base app集成的功能包括:
- 页面路由拦截,需要登录才能用的,自动跳转到登陆页,登陆后自动继续
- 权限拦截,定位、拍照、相册涉及隐私权限和设备是否开关
8. h5版支持在页面顶部引导下载App
9. 插屏公告
base app提供了baseapp.config.js,可指定该应用是否强制登录才能进入首页,可配置选择登录注册方式以及不同方式的优先级。
base app将节省开发者大量的时间,让开发者集中精力在自己的特色业务上。
有了base app,再加上schema2code生成前端页面,一个简单应用就可以快速完成。
base app + uniCloud admin,应用开发从未如此简单快捷!
baseapp中的主要功能,插件列表
#### 时序介绍
初始化应用执行appInit
读取baseapp.config并挂载到globalData的config下
读取应用版本号,检查是否有可更新的版本。并存到globalData下
使用[拦截器](https://uniapp.dcloud.io/api/interceptor?id=addinterceptor)
实现了,1、路由拦截。2、摄像头/相册权限,引导跳到设置界面
监听网络的变化与toast方式提醒
预登陆一键登录功能
全局监听clientDB的err事件,判断是否为token过期失效等需要重新登陆的问题。自动跳转到登陆页面
判断入口页是否为强制登陆页面,Y.检测本地的token是否有效(存在且并未过期)否则跳转到登陆页面
#### 应用配置
##### 前端配置
baseconfig
manifest.json
##### 服务端配置
uni-config-center
提下直接在uni-id下的config配置
### 界面如下:
## 项目构成
#### baseapp中的主要模块介绍
1. uni-id用户体系 [uni-id](https://uniapp.dcloud.io/uniCloud/uni-id)
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
\ No newline at end of file
2. [Sansnn-uQRCode](https://ext.dcloud.net.cn/plugin?id=1287) @作者: 3snn
## 真机体验快速部署流程
#### 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 目录需要单独上传一次,右键‘上传公共模块’。
#### 5. 初始化数据库
方式一:
- 在项目`uniCloud`目录-->`database`-->`db_init.json`文件,右键选择 “初始化云数据库”。
-`database`目录,右键选择 “上传所有数据集合Schema及扩展校验函数”。
方式二:
- 在项目`uniCloud`目录右键,选择“运行云服务空间初始化向导”,点击“下一步”,点击“开始部署”。
#### 6. 跨域配置
如运行在iOS上,需解决本地页面跨域问题。
在uniCloud web 控制台跨域配置里添加:localhost:13131
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/a60dd5c0-614e-11eb-8d54-21c4ca4ce5d7.jpg)
#### 7. 真机运行
到此为止,就可以真机运行跑起来了。这里运行的广告,是测试广告位,不会产生真实收益。
如果你要商用,还得申请各种资质。具体见下一章文档。
注意:真机运行需要制作自定义基座,制作后选择运行到自定义基座.
### 准备工作
首先确定App的应用名称、包名、证书,后续在各个三方服务申请时,都需要包名和证书摘要。并且注意在HBuilderX中打包时,必须使用相同的包名和证书。应用名称在`manifest`里设置。
- 上架应用市场需要有域名已经获得ICP备案的官网,你可以提前做好备案工作。另外网站你可以直接部署到uniCloud前端网页托管
- 申请软件著作权:加入DCloud软著优惠加急申请QQ专用群:893532138
- 申请一键登录:在 manifest.json -> App模块配置 -> OAuth(登录鉴权)-> 一键登录,点击后面的`开通配置`,在打开的web页面添加应用,充值。
- 申请微信登录:在微信开放平台申请移动应用,获得的appid和appsecret,用于微信登录、微信分享。[微信开放平台](https://open.weixin.qq.com/)
以上业务都有审核周期,请提前处理。
### 配置参数
#### 1. manifest.json配置
完成如下配置:
- App模块配置 --> OAuth(登录鉴权)--> 勾选微信登录 --> 填写`appid``appsecret``ios平台通用链接`(如不发布到Appstore,不需要填通用链接)
- App模块配置 --> OAuth(登录鉴权)勾选`苹果登录`[IOS苹果授权登录参考文档](https://ask.dcloud.net.cn/article/36651)。如不发布到Appstore,不需要配置此项
- App模块配置 --> Share(分享)--> 微信分享 --> 填写`appid``ios平台通用链接`(如不发布到Appstore,不需要填通用链接。)
- 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`
#### 3. 申请接入微信商户支付
在项目目录`uniCloud`--> `cloudfunctions`目录
- `minectrl`--> `controller`--> `mine.js`配置如下:
- `uni-admin`--> `controller`--> `admin.js`配置如下:
```js
appid: 'wxxxxxxxxxxxxxxx', //公众号id
mchid: '00000000000', //商户id
partnerKey: 'xxxxxxxxxxxxxxxxxxxxx', //安全密钥
```
教程参考,[微信App支付功能申请](https://uniapp.dcloud.net.cn/api/plugins/payment?id=app%e5%b9%b3%e5%8f%b0%e6%94%af%e4%bb%98%e6%b5%81%e7%a8%8b)
`uniCloud`--> `cloudfunctions`目录点右键,上传所有云函数及公共模块。
#### 5. 配置分享下载链接
裂变拉新是必要的传播手段,本项目集成了DCloud的[应用发行平台](https://www.dcloud.io/dportal.html)服务,直接提供了分享下载的功能。
1. 申请开通m3w服务:加入qq群645630288,向管理员提供appid,管理员审核
2. 在HBuilderX中选择好本项目,点菜单发行 -> 生成统一发布页面,在新界面上传图文介绍,就会得到一个短网址
3. 在项目根目录`common`--> `globalunit.js`里面修改`downloadurl`下载地址为上一步得到的短网址
#### 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
......@@ -15,23 +15,7 @@ export default function() {
// 初始化appVersion(仅app生效)
initAppVersion();
/*
这里应用拦截器实现了,路由拦截。当应用无访问摄像头/相册权限,引导跳到设置界面
1.添加拦截器说明如下:
uni.addInterceptor(item, {
invoke(e) { // 调用前拦截
},
success() { // 成功回调拦截
},
fail(err) { // 失败回调拦截
console.log(err);
},
complete(e) { // 完成回调拦截
//console.log(e);
},
returnValue() { // 返回结果拦截
}
})
2.移除拦截器API removeInterceptor('request')
这里应用了[拦截器](https://uniapp.dcloud.io/api/interceptor?id=addinterceptor)实现了,路由拦截。当应用无访问摄像头/相册权限,引导跳到设置界面
*/
//自定义路由拦截
const {
......@@ -130,7 +114,6 @@ export default function() {
duration:3000
})
}else{
showNetworkErrPage()
uni.showToast({
title:'网络类型:'+res.networkType,
icon:'none',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册