Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
言程序plus
uni-starter
提交
1083bc4a
U
uni-starter
项目概览
言程序plus
/
uni-starter
与 Fork 源项目一致
Fork自
DCloud / uni-starter
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-starter
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
1083bc4a
编写于
4月 29, 2021
作者:
DCloud_JSON
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
补充文档,未完待续...
上级
2bf63f5a
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
173 addition
and
38 deletion
+173
-38
App.vue
App.vue
+1
-10
README.md
README.md
+171
-10
common/appInit.js
common/appInit.js
+1
-18
未找到文件。
App.vue
浏览文件 @
1083bc4a
...
...
@@ -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
(({
...
...
README.md
浏览文件 @
1083bc4a
> 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
common/appInit.js
浏览文件 @
1083bc4a
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录