diff --git a/App.vue b/App.vue
index 08fe8aaf5e1dfb7ee77571d41c34eafb3f562342..367df18088a4d1ce06eb14ba4fc20c2e452d5fa8 100644
--- a/App.vue
+++ b/App.vue
@@ -35,8 +35,21 @@
});
}, err => {
console.error('获取服务供应商失败:' + JSON.stringify(err));
- })
- // #endif
+ })
+
+ //idfa有需要的用户在应用首次启动时自己获取存储到storage中
+ //https://ask.dcloud.net.cn/article/36107
+ /*if(~plus.storage.getItem('idfa')){
+ plus.device.getInfo({//需要勾选IDFA
+ success:function(e){
+ console.log('idfa = '+JSON.stringify(e.idfa));
+ },
+ fail:function(e){
+ console.log('getDeviceInfo failed: '+JSON.stringify(e));
+ }
+ });
+ }*/
+ // #endif
},
onShow: function() {
console.log('App Show')
diff --git a/changelog.md b/changelog.md
index 8911de1493aa8cdd283baea512acb6922ab2c3a2..7493f06c8ea93b5e98c6585423185e3dee840797 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,7 @@
+## 1.0.16(2021-06-08)
+新增,操作注册/登陆操作自动获取客户端设备:push_clientid、imei、oaid、idfa新增/更新到数据表uni-id-device
## 1.0.15(2021-06-07)
-为迎合苹果App Store的规则,登陆与分享功能项显示之前自动检测是否安装了对应客户端。比如:设备未安装微信则不显示微信快捷登陆和微信分享选项。
+为迎合苹果App Store的规则,登陆与分享功能项显示之前自动检测是否安装了对应客户端。比如:设备未安装微信则不显示微信快捷登陆和微信分享选项。为迎合苹果App Store的规则,登陆与分享功能项显示之前自动检测是否安装了对应客户端。比如:设备未安装微信则不显示微信快捷登陆和微信分享选项。
## 1.0.14(2021-06-07)
修改错误的表名称uni-verify为opendb-verify-codes
## 1.0.13(2021-06-04)
diff --git a/common/appInit.js b/common/appInit.js
index 95176a8bdd7602d16da2baa1b8e27a32d6f05fdd..1439267b1869e28ba01d99c1c3b2e370a8cc1b12 100644
--- a/common/appInit.js
+++ b/common/appInit.js
@@ -48,7 +48,6 @@ export default function() {
// 解绑clientDB错误事件
//db.off('error', onDBError)
-
db.on('refreshToken', function({
token,
tokenExpired
@@ -60,14 +59,59 @@ export default function() {
})
})
-
const Debug = true;
//拦截器封装callFunction
let callFunctionOption;
uniCloud.addInterceptor('callFunction',{
- invoke(e){
- console.log(JSON.stringify(e));
- callFunctionOption = e
+ async invoke(option){
+ // #ifdef APP-PLUS
+ // 判断如果是执行登陆(无论是哪种登陆方式),就记录用户的相关设备id
+ if(option.name == 'uni-id-cf'&&(option.data.action == 'register' || option.data.action.slice(0,5) =='login')){
+ let oaid = await new Promise((callBack,fail)=>{
+ if (uni.getSystemInfoSync().platform == "android") {
+ plus.device.getOAID({
+ success:function(e){
+ callBack(e.oaid)
+ console.log('getOAID success: '+JSON.stringify(e));
+ },
+ fail:function(e){
+ fail()
+ console.log('getOAID failed: '+JSON.stringify(e));
+ }
+ });
+ }else{
+ callBack()
+ }
+ })
+
+ let imei = await new Promise((callBack,fail)=>{
+ if (uni.getSystemInfoSync().platform == "android") {
+ plus.device.getInfo({
+ success:function(e){
+ callBack(e.imei)
+ console.log('getOAID success: '+JSON.stringify(e));
+ },
+ fail:function(e){
+ fail()
+ console.log('getOAID failed: '+JSON.stringify(e));
+ }
+ });
+ }else{
+ callBack()
+ }
+ })
+ let deviceInfo = {
+ "push_clientid":plus.push.getClientInfo().clientid,// 获取匿名设备标识符
+ "imei":imei,
+ "oaid":oaid,
+ "idfa":plus.storage.getItem('idfa')||'' //idfa有需要的用户在应用首次启动时自己获取存储到storage中
+ }
+ console.log("重新登陆/注册,获取设备id",deviceInfo);
+ option.data.deviceInfo = deviceInfo
+ }
+ // #endif
+ console.log(JSON.stringify(option));
+ callFunctionOption = option
},
complete(e){
// console.log(JSON.stringify(e));
@@ -155,7 +199,7 @@ export default function() {
list.forEach(item => { //用遍历的方式分别为,uni.navigateTo,uni.redirectTo,uni.reLaunch,uni.switchTab这4个路由方法添加拦截器
uni.addInterceptor(item, {
invoke(e) { // 调用前拦截
- console.log(e);
+ // console.log(e);
//获取用户的token
const token = uni.getStorageSync('uni_id_token')
//获取当前页面路径(即url去掉"?"和"?"后的参数)
diff --git a/package.json b/package.json
index aa1165681acb1f5034ddf7d09938edc28e4997b2..7ed49909b39f875b4193997eedf679fd70c5e42d 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"id": "uni-starter",
"displayName": "uni-starter",
- "version": "1.0.15",
+ "version": "1.0.16",
"description": "云端一体应用快速开发模版",
"keywords": [
"uni-starter",
diff --git a/pages/list/list.nvue b/pages/list/list.nvue
index 007e6cef56ded761259db7052d8f6bedb61f5a84..06a2c8a032051ba1405854a5fa9cf91bd020856d 100644
--- a/pages/list/list.nvue
+++ b/pages/list/list.nvue
@@ -63,7 +63,7 @@
}
}
},
- onReady() {
+ async onReady() {
// #ifdef APP-NVUE
this.listHight = uni.getSystemInfoSync().windowHeight - 96 + 'px'
// #endif
diff --git a/pages/ucenter/login-page/index/index.vue b/pages/ucenter/login-page/index/index.vue
index f90daa4c7a60c5840ac7d4cf4bf9d909c40c5f48..279bfd0feb543c347f48808c971b9490bc54796a 100644
--- a/pages/ucenter/login-page/index/index.vue
+++ b/pages/ucenter/login-page/index/index.vue
@@ -21,15 +21,20 @@
return {
phone: "",
agree: false,
- univerifyStyle: {
- "fullScreen": true, // 是否全屏显示,true表示全屏模式,false表示非全屏模式,默认值为false。
+ univerifyStyle: {
+ "fullScreen": true, // 是否全屏显示,true表示全屏模式,false表示非全屏模式,默认值为false。
"backgroundColor": "#ffffff", // 授权页面背景颜色,默认值:#ffffff
"buttons": { // 自定义登陆按钮
"iconWidth": "45px", // 图标宽度(高度等比例缩放) 默认值:45px
- "list": [{
- "iconPath": "/static/uni-quick-login/wechat.png" // 图标路径仅支持本地图片
- }
- ]
+ "list": []
+ },
+ "privacyTerms": {
+ "defaultCheckBoxState": "true", // 条款勾选框初始状态 默认值: true
+ "textColor": "#BBBBBB", // 文字颜色 默认值:#BBBBBB
+ "termsColor": "#5496E3", // 协议文字颜色 默认值: #5496E3
+ "prefix": "我已阅读并同意", // 条款前的文案 默认值:“我已阅读并同意”
+ "suffix": "并使用本机号码登录", // 条款后的文案 默认值:“并使用本机号码登录”
+ "privacyItems": []
}
}
}
@@ -37,25 +42,37 @@
computed: {
isPhone() {
return /^1\d{10}$/.test(this.phone);
+ },
+ agreements() {
+ return getApp().globalData.config.about.agreements || []
}
},
- onLoad(e) {
- uni.getProvider({
- service: 'oauth',
- success:res=>{
- if (~res.provider.indexOf('apple')) {
- this.univerifyStyle.buttons.list.push({
- "iconPath": "/static/uni-quick-login/apple.png" // 图标路径仅支持本地图片
- })
- }
- }
- });
-
-
+ onLoad(e) {
+ uni.getProvider({
+ service: 'oauth',
+ success: res => {
+ if (~res.provider.indexOf('weixin')&&plus.runtime.isApplicationExist({
+ pname: 'com.tencent.mm',
+ action: 'weixin://'
+ })) {
+ this.univerifyStyle.buttons.list.push({
+ "iconPath": "/static/uni-quick-login/wechat.png"
+ })
+ }
+ if (~res.provider.indexOf('apple')) {
+ this.univerifyStyle.buttons.list.push({
+ "iconPath": "/static/uni-quick-login/apple.png"
+ })
+ }
+ }
+ });
+
+
//是否优先启动一键登录。即:页面一加载就启动一键登录
univerify_first = e.univerify_first
//#ifdef APP-PLUS
if (univerify_first) {
+ this.univerifyStyle.privacyTerms.privacyItems = this.agreements
const pages = getCurrentPages();
currentWebview = pages[pages.length - 1].$getAppWebview();
currentWebview.setStyle({
@@ -67,7 +84,7 @@
onReady() {
//#ifdef APP-PLUS
if (univerify_first) {
- console.log('开始一键登录');
+ // console.log('开始一键登录');
this.agree = true
setTimeout(() => {
this.$refs.uniQuickLogin.login_before('univerify')
diff --git a/uni-starter.config.js b/uni-starter.config.js
index 45ec8784205bcb6b51f4332ff47f4a749ef02004..2832b013dea5553a5e0dec99803d6525c2fc4c33 100644
--- a/uni-starter.config.js
+++ b/uni-starter.config.js
@@ -26,7 +26,7 @@ module.exports = {
"/pages/ucenter/userinfo/uploadCutImageToUnicloud",
"/uni_modules/uni-feedback/pages/uni-feedback/add"
],
- "login": ["univerify","smsCode", "username", "weixin", "apple"],
+ "login": ["username","smsCode", "univerify", "weixin", "apple"],
/*
根据数组的第0项,决定登录方式的第一优先级。
未列举到的,或设备环境不支持的选项,将被隐藏。
diff --git a/uniCloud-aliyun/cloudfunctions/uni-id-cf/index.js b/uniCloud-aliyun/cloudfunctions/uni-id-cf/index.js
index 95447c59e738d4f7c370279827b0b62a47acf9b7..a9157c39b98a90c3eb7b4b482ed43f38661539ae 100644
--- a/uniCloud-aliyun/cloudfunctions/uni-id-cf/index.js
+++ b/uniCloud-aliyun/cloudfunctions/uni-id-cf/index.js
@@ -18,6 +18,7 @@ exports.main = async (event, context) => {
uniIdToken:系统自动传递的token,数据来源客户端的 uni.getStorageSync('uni_id_token')
*/
const {action,uniIdToken} = event;
+ const deviceInfo = event.deviceInfo || {};
let params = event.params || {};
/*
2.在某些操作之前我们要对用户对身份进行校验(也就是要检查用户的token)再将得到的uid写入params.uid
@@ -49,10 +50,16 @@ exports.main = async (event, context) => {
return payload
}
params.uid = payload.uid
- }
+ }
+
//3.注册成功后创建新用户的积分表方法
- async function registerSuccess(uid) {
+ async function registerSuccess(uid) {
+ //添加当前用户设备信息
+ await db.collection('uni-id-device').add({
+ ...deviceInfo,
+ user_id:uid
+ })
await db.collection('uni-id-scores').add({
user_id: uid,
score: 1,
@@ -60,7 +67,7 @@ exports.main = async (event, context) => {
balance: 1,
comment: "",
create_date: Date.now()
- })
+ })
}
//4.记录成功登录的日志方法
const loginLog = async (res = {}, type = 'login') => {
@@ -81,8 +88,13 @@ exports.main = async (event, context) => {
} : {
state: 0
})
- if (res.type == 'register') {
+ if (res.type == 'register') {
await registerSuccess(res.uid)
+ }else{
+ if(deviceInfo){
+ //更新当前用户设备信息
+ await db.collection('uni-id-device').where({user_id:res.uid}).update(deviceInfo)
+ }
}
return await uniIdLogCollection.add(logData)
}
@@ -181,8 +193,10 @@ exports.main = async (event, context) => {
res = await uniID.login({
...params,
queryField: ['username', 'email', 'mobile']
- });
- await loginLog(res);
+ });
+ if(res.code === 0){
+ await loginLog(res);
+ }
needCaptcha = await getNeedCaptcha();
}
@@ -353,4 +367,4 @@ exports.main = async (event, context) => {
}
//返回数据给客户端
return res
-};
+}
\ No newline at end of file
diff --git a/uniCloud-aliyun/database/opendb-admin-menus.schema.json b/uniCloud-aliyun/database/opendb-admin-menus.schema.json
new file mode 100644
index 0000000000000000000000000000000000000000..a733b17fa7d147aaf37f4a2585c077f1847c1bf5
--- /dev/null
+++ b/uniCloud-aliyun/database/opendb-admin-menus.schema.json
@@ -0,0 +1,53 @@
+{
+ "bsonType": "object",
+ "required": ["name", "menu_id"],
+ "properties": {
+ "_id": {
+ "description": "存储文档 ID,系统自动生成"
+ },
+ "menu_id": {
+ "bsonType": "string",
+ "description": "菜单项的ID,不可重复",
+ "trim": "both"
+ },
+ "name": {
+ "bsonType": "string",
+ "description": "菜单名称",
+ "trim": "both"
+ },
+ "icon": {
+ "bsonType": "string",
+ "description": "菜单图标",
+ "trim": "both"
+ },
+ "url": {
+ "bsonType": "string",
+ "description": "菜单url",
+ "trim": "both"
+ },
+ "sort": {
+ "bsonType": "int",
+ "description": "菜单序号(越大越靠后)"
+ },
+ "parent_id": {
+ "bsonType": "string",
+ "description": "父级菜单Id",
+ "parentKey": "menu_id"
+ },
+ "permission": {
+ "bsonType": "array",
+ "description": "菜单权限列表"
+ },
+ "enable": {
+ "bsonType": "bool",
+ "description": "是否启用菜单,true启用、false禁用"
+ },
+ "create_date": {
+ "bsonType": "timestamp",
+ "description": "菜单创建时间",
+ "forceDefaultValue": {
+ "$env": "now"
+ }
+ }
+ }
+}
diff --git a/uniCloud-aliyun/database/opendb-mall-goods.schema.json b/uniCloud-aliyun/database/opendb-mall-goods.schema.json
new file mode 100644
index 0000000000000000000000000000000000000000..3b6e3092d7884cb38355523d89f79926380327b9
--- /dev/null
+++ b/uniCloud-aliyun/database/opendb-mall-goods.schema.json
@@ -0,0 +1,123 @@
+{
+ "bsonType": "object",
+ "permission": {
+ "create": false,
+ "delete": false,
+ "read": "doc.is_on_sale == true",
+ "update": false
+ },
+ "properties": {
+ "_id": {
+ "description": "存储文档 ID(商品 ID),系统自动生成"
+ },
+ "add_date": {
+ "bsonType": "timestamp",
+ "defaultValue": {
+ "$env": "now"
+ },
+ "description": "上架时间"
+ },
+ "category_id": {
+ "bsonType": "string",
+ "description": "分类 id,参考`opendb-mall-categories`表",
+ "foreignKey": "opendb-mall-categories._id"
+ },
+ "comment_count": {
+ "bsonType": "int",
+ "description": "累计评论数"
+ },
+ "goods_banner_imgs": {
+ "bsonType": "array",
+ "description": "商品详情页的banner图地址"
+ },
+ "goods_desc": {
+ "bsonType": "string",
+ "description": "商品详细描述",
+ "title": "详细描述",
+ "trim": "both"
+ },
+ "goods_sn": {
+ "bsonType": "string",
+ "description": "商品的唯一货号",
+ "title": "货号",
+ "trim": "both"
+ },
+ "goods_thumb": {
+ "bsonType": "string",
+ "description": "商品缩略图,用于在列表或搜索结果中预览显示",
+ "pattern": "^(http:\/\/|https:\/\/|\/|.\/|@\/)\\S",
+ "title": "缩略图地址",
+ "trim": "both"
+ },
+ "is_alone_sale": {
+ "bsonType": "bool",
+ "description": "是否能单独销售;如果不能单独销售,则只能作为某商品的配件或者赠品销售"
+ },
+ "is_best": {
+ "bsonType": "bool",
+ "description": "是否精品"
+ },
+ "is_hot": {
+ "bsonType": "bool",
+ "description": "是否热销"
+ },
+ "is_new": {
+ "bsonType": "bool",
+ "description": "是否新品",
+ "title": "是否新品"
+ },
+ "is_on_sale": {
+ "bsonType": "bool",
+ "description": "是否上架销售",
+ "title": "是否上架"
+ },
+ "is_real": {
+ "bsonType": "bool",
+ "description": "是否实物",
+ "title": "是否为实物"
+ },
+ "keywords": {
+ "bsonType": "string",
+ "description": "商品关键字,为搜索引擎收录使用",
+ "title": "关键字",
+ "trim": "both"
+ },
+ "last_modify_date": {
+ "bsonType": "timestamp",
+ "defaultValue": {
+ "$env": "now"
+ },
+ "description": "最后修改时间"
+ },
+ "month_sell_count": {
+ "bsonType": "int",
+ "description": "月销量"
+ },
+ "name": {
+ "bsonType": "string",
+ "description": "商品名称",
+ "title": "名称",
+ "trim": "both"
+ },
+ "remain_count": {
+ "bsonType": "int",
+ "description": "库存数量",
+ "title": "库存数量"
+ },
+ "seller_note": {
+ "bsonType": "string",
+ "description": "商家备注,仅商家可见",
+ "permission": {
+ "read": false
+ },
+ "trim": "both"
+ },
+ "total_sell_count": {
+ "bsonType": "int",
+ "description": "总销量"
+ }
+ },
+ "required": ["goods_sn", "name", "remain_count", "month_sell_count", "total_sell_count", "comment_count", "is_real",
+ "is_on_sale", "is_alone_sale", "is_best", "is_new", "is_hot"
+ ]
+}
diff --git a/uniCloud-aliyun/database/opendb-news-articles-detail.schema.json b/uniCloud-aliyun/database/opendb-news-articles-detail.schema.json
new file mode 100644
index 0000000000000000000000000000000000000000..0e48ba8da70f5abdf2b37d52ea84fb323ce0150f
--- /dev/null
+++ b/uniCloud-aliyun/database/opendb-news-articles-detail.schema.json
@@ -0,0 +1,122 @@
+{
+ "bsonType": "object",
+ "permission": {
+ "create": "auth.uid != null",
+ "delete": "doc.uid == auth.uid",
+ "read": true,
+ "update": "doc.uid == auth.uid"
+ },
+ "properties": {
+ "_id": {
+ "description": "存储文档 ID(用户 ID),系统自动生成"
+ },
+ "article_status": {
+ "bsonType": "int",
+ "description": "文章状态:0 草稿箱 1 已发布",
+ "maximum": 1,
+ "minimum": 0
+ },
+ "avatar": {
+ "bsonType": "string",
+ "description": "缩略图地址",
+ "label": "封面大图"
+ },
+ "category_id": {
+ "bsonType": "string",
+ "description": "分类 id,参考`uni-news-categories`表"
+ },
+ "comment_count": {
+ "bsonType": "int",
+ "description": "评论数量",
+ "permission": {
+ "write": false
+ }
+ },
+ "comment_status": {
+ "bsonType": "int",
+ "description": "评论状态:0 关闭 1 开放",
+ "maximum": 1,
+ "minimum": 0
+ },
+ "content": {
+ "bsonType": "string",
+ "description": "文章内容",
+ "label": "文章内容"
+ },
+ "excerpt": {
+ "bsonType": "string",
+ "description": "文章摘录",
+ "label": "摘要"
+ },
+ "is_essence": {
+ "bsonType": "bool",
+ "description": "阅读加精",
+ "permission": {
+ "write": false
+ }
+ },
+ "is_sticky": {
+ "bsonType": "bool",
+ "description": "是否置顶",
+ "permission": {
+ "write": false
+ }
+ },
+ "last_comment_user_id": {
+ "bsonType": "string",
+ "description": "最后回复用户 id,参考`uni-id-users` 表"
+ },
+ "last_modify_date": {
+ "bsonType": "timestamp",
+ "description": "最后修改时间"
+ },
+ "last_modify_ip": {
+ "bsonType": "string",
+ "description": "最后修改时 IP 地址"
+ },
+ "like_count": {
+ "bsonType": "int",
+ "description": "喜欢数、点赞数",
+ "permission": {
+ "write": false
+ }
+ },
+ "mode": {
+ "bsonType": "number",
+ "description": "排版显示模式"
+ },
+ "publish_date": {
+ "bsonType": "timestamp",
+ "defaultValue": {
+ "$env": "now"
+ },
+ "description": "发表时间"
+ },
+ "publish_ip": {
+ "bsonType": "string",
+ "description": "发表时 IP 地址",
+ "forceDefaultValue": {
+ "$env": "clientIP"
+ }
+ },
+ "title": {
+ "bsonType": "string",
+ "description": "标题",
+ "label": "标题"
+ },
+ "user_id": {
+ "bsonType": "string",
+ "description": "文章作者ID, 参考`uni-id-users` 表"
+ },
+ "view_count": {
+ "bsonType": "int",
+ "description": "阅读数量",
+ "permission": {
+ "write": false
+ }
+ }
+ },
+ "required": ["user_id", "title", "content", "article_status", "view_count", "like_count", "is_sticky", "is_essence",
+ "comment_status", "comment_count", "mode"
+ ]
+}
diff --git a/uniCloud-aliyun/database/read-news-log.schema.json b/uniCloud-aliyun/database/read-news-log.schema.json
new file mode 100644
index 0000000000000000000000000000000000000000..02c6a323781abca4d2d6f2f9fc8ec48cc0e7c457
--- /dev/null
+++ b/uniCloud-aliyun/database/read-news-log.schema.json
@@ -0,0 +1,35 @@
+{
+ "bsonType": "object",
+ "required": ["user_id", "article_id"],
+ "permission": {
+ "read": "doc.uid == auth.uid",
+ "create": "auth.uid != null",
+ "update": "doc.uid == auth.uid"
+ //"delete": "doc.uid == auth.uid"
+ },
+ "properties": {
+ "_id": {
+ "description": "ID,系统自动生成"
+ },
+ "article_id": {
+ "bsonType": "string",
+ "description": "文章id,参考opendb-news-articles表",
+ "foreignKey": "opendb-news-articles._id"
+ },
+ "user_id": {
+ "bsonType": "string",
+ "description": "收藏者id,参考uni-id-users表",
+ "forceDefaultValue": {
+ "$env": "uid"
+ },
+ "foreignKey": "uni-id-users._id"
+ },
+ "last_time": { //设计策略是多次看同一个文章只做一次记录,重复看的文章时间更新为当前时间
+ "bsonType": "timestamp",
+ "description": "最后一次看的时间",
+ "defaultValue": {
+ "$env": "now"
+ }
+ }
+ }
+}
diff --git a/uniCloud-aliyun/database/uni-id-device.schema.json b/uniCloud-aliyun/database/uni-id-device.schema.json
new file mode 100644
index 0000000000000000000000000000000000000000..8efa4d5a6d0a0df7ccef7ca7b86f17f6f593417c
--- /dev/null
+++ b/uniCloud-aliyun/database/uni-id-device.schema.json
@@ -0,0 +1,64 @@
+{
+ "bsonType": "object",
+ "required": ["user_id"],
+ "properties": {
+ "_id": {
+ "description": "ID,系统自动生成"
+ },
+ "user_id": {
+ "bsonType": "string",
+ "description": "用户id,参考uni-id-users表"
+ },
+ "ua": {
+ "bsonType": "string",
+ "description": "userAgent"
+ },
+ "uuid": {
+ "bsonType": "string",
+ "description": "设备唯一标识(需要加密存储)"
+ },
+ "vendor": {
+ "bsonType": "string",
+ "description": "设备厂商"
+ },
+ "push_clientid": {
+ "bsonType": "string",
+ "description": "推送设备客户端标识"
+ },
+ "imei": {
+ "bsonType": "string",
+ "description": "国际移动设备识别码IMEI(International Mobile Equipment Identity)"
+ },
+ "oaid": {
+ "bsonType": "string",
+ "description": "移动智能设备标识公共服务平台提供的匿名设备标识符(OAID)"
+ },
+ "idfa": {
+ "bsonType": "string",
+ "description": "iOS平台配置应用使用广告标识(IDFA)"
+ },
+ "model": {
+ "bsonType": "string",
+ "description": "设备型号"
+ },
+ "platform": {
+ "bsonType": "string",
+ "description": "平台类型"
+ },
+ "create_date": {
+ "bsonType": "timestamp",
+ "description": "创建时间",
+ "forceDefaultValue": {
+ "$env": "now"
+ }
+ },
+ "last_active_date": {
+ "bsonType": "timestamp",
+ "description": "最后登录时间"
+ },
+ "last_active_ip": {
+ "bsonType": "string",
+ "description": "最后登录IP"
+ }
+ }
+}
diff --git a/uni_modules/uni-upgrade-center/uniCloud/database/opendb-app-list.schema.json b/uni_modules/uni-upgrade-center/uniCloud/database/opendb-app-list.schema.json
new file mode 100644
index 0000000000000000000000000000000000000000..31db799677c1148c9b1272656fd140d0b2f530e3
--- /dev/null
+++ b/uni_modules/uni-upgrade-center/uniCloud/database/opendb-app-list.schema.json
@@ -0,0 +1,62 @@
+// 文档教程: https://uniapp.dcloud.net.cn/uniCloud/schema
+{
+ "bsonType": "object",
+ "required": ["appid", "name", "description"],
+ "permission": {
+ "read": false,
+ "create": false,
+ "update": false,
+ "delete": false
+ },
+ "properties": {
+ "_id": {
+ "description": "ID,系统自动生成"
+ },
+ "appid": {
+ "bsonType": "string",
+ "description": "应用的AppID",
+ "label": "AppID",
+ "componentForEdit": {
+ "name": "uni-easyinput",
+ "props": {
+ "disabled": true
+ }
+ }
+ },
+ "name": {
+ "bsonType": "string",
+ "description": "应用名称",
+ "label": "应用名称",
+ "componentForEdit": {
+ "name": "uni-easyinput",
+ "props": {
+ "disabled": true
+ }
+ }
+ },
+ "description": {
+ "bsonType": "string",
+ "description": "应用描述",
+ "label": "应用描述",
+ "componentForEdit": {
+ "name": "textarea"
+ },
+ "componentForShow": {
+ "name": "textarea",
+ "props": {
+ "disabled": true
+ }
+ }
+ },
+ "create_date": {
+ "bsonType": "timestamp",
+ "label": "创建时间",
+ "forceDefaultValue": {
+ "$env": "now"
+ },
+ "componentForEdit": {
+ "name": "uni-dateformat"
+ }
+ }
+ }
+}
diff --git a/uni_modules_tools/copy/manifest.json b/uni_modules_tools/copy/manifest.json
index 762f6f9cb354cb5defafff27c60eb4822423b9fe..52544ce081add7b455b14527551ebeaeb29bcec7 100644
--- a/uni_modules_tools/copy/manifest.json
+++ b/uni_modules_tools/copy/manifest.json
@@ -1,129 +1,112 @@
{
- "name": "uni-starter",
- "appid": "",
- "description": "云端一体应用快速开发模版",
- "versionName": "1.0.0",
- "versionCode": "100",
- "transformPx": false,
- "app-plus": {
- "privacy": {
- "prompt": "template",
- "template": {
- "title": "服务协议和隐私政策",
- "message": " 请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。
你可阅读《服务协议》和《隐私政策》了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
- "buttonAccept": "同意",
- "buttonRefuse": "暂不同意"
- }
- },
- "compatible": {
- "ignoreVersion": true
- },
- "usingComponents": true,
- "nvueStyleCompiler": "uni-app",
- "compilerVersion": 3,
- "splashscreen": {
- "alwaysShowBeforeRender": true,
- "waiting": true,
- "autoclose": true,
- "delay": 0
- },
- "modules": {
- "Fingerprint": {
- },
- "Share": {
- },
- "Push": {
- },
- "OAuth": {
- },
- "FaceID": {
- }
- },
- "distribute": {
- "android": {
- "permissions": [
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- ""
- ],
- "abiFilters": [
- "armeabi-v7a",
- "arm64-v8a",
- "x86"
- ]
- },
- "ios": {
- },
- "sdkConfigs": {
- "oauth": {
- "univerify": {
- },
- "apple": {
- },
- "weixin": {
- "appid": "wxffdd8fa6ec4ef2a0",
- "appsecret": "",
- "UniversalLinks": ""
- }
+ "name" : "uni-starter",
+ "appid" : "__UNI__E5373F7",
+ "description" : "云端一体应用快速开发模版",
+ "versionName" : "1.0.0",
+ "versionCode" : "100",
+ "transformPx" : false,
+ "app-plus" : {
+ "privacy" : {
+ "prompt" : "template",
+ "template" : {
+ "title" : "服务协议和隐私政策",
+ "message" : " 请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。
你可阅读《服务协议》和《隐私政策》了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
+ "buttonAccept" : "同意",
+ "buttonRefuse" : "暂不同意"
+ }
},
- "ad": {
+ "compatible" : {
+ "ignoreVersion" : true
},
- "share": {
- "weixin": {
- "appid": "wxffdd8fa6ec4ef2a0",
- "UniversalLinks": ""
- }
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
},
- "geolocation": {
+ "modules" : {
+ "Fingerprint" : {},
+ "Share" : {},
+ "Push" : {},
+ "OAuth" : {},
+ "FaceID" : {}
},
- "push": {
- "unipush": {
- }
+ "distribute" : {
+ "android" : {
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ],
+ "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ]
+ },
+ "ios" : {},
+ "sdkConfigs" : {
+ "oauth" : {
+ "univerify" : {},
+ "apple" : {},
+ "weixin" : {
+ "appid" : "wxffdd8fa6ec4ef2a0",
+ "appsecret" : "",
+ "UniversalLinks" : ""
+ }
+ },
+ "ad" : {},
+ "share" : {
+ "weixin" : {
+ "appid" : "wxffdd8fa6ec4ef2a0",
+ "UniversalLinks" : ""
+ }
+ },
+ "geolocation" : {},
+ "push" : {
+ "unipush" : {}
+ },
+ "payment" : {}
+ }
},
- "payment": {
- }
- }
+ "nvueLaunchMode" : ""
+ },
+ "quickapp" : {},
+ "mp-weixin" : {
+ "appid" : "",
+ "setting" : {
+ "urlCheck" : false,
+ "es6" : false
+ },
+ "usingComponents" : true,
+ "betterScopedSlots" : true
+ },
+ "mp-alipay" : {
+ "usingComponents" : true
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true
},
- "nvueLaunchMode": ""
- },
- "quickapp": {
- },
- "mp-weixin": {
- "appid": "",
- "setting": {
- "urlCheck": false,
- "es6": false
+ "uniStatistics" : {
+ "enable" : false
},
- "usingComponents": true,
- "betterScopedSlots": true
- },
- "mp-alipay": {
- "usingComponents": true
- },
- "mp-baidu": {
- "usingComponents": true
- },
- "mp-toutiao": {
- "usingComponents": true
- },
- "uniStatistics": {
- "enable": false
- },
- "h5": {
- "template": ""
- }
-}
\ No newline at end of file
+ "h5" : {
+ "template" : ""
+ }
+}
diff --git a/uni_modules_tools/copy/uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json b/uni_modules_tools/copy/uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json
index 9655ed1230029ecaaf31711bf94c47446e496cf1..02ce9bbf5736bc5d4f76b9cc71d64416435daf1f 100644
--- a/uni_modules_tools/copy/uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json
+++ b/uni_modules_tools/copy/uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json
@@ -1,52 +1,52 @@
{
- "passwordSecret": "passwordSecret-demo",
- "tokenSecret": "tokenSecret-demo",
- "tokenExpiresIn": 7200,
- "tokenExpiresThreshold": 600,
- "passwordErrorLimit": 6,
- "bindTokenToDevice": true,
- "passwordErrorRetryTime": 3600,
- "autoSetInviteCode": false,
- "forceInviteCode": false,
- "app-plus": {
- "tokenExpiresIn": 2592000,
- "oauth": {
- "weixin": {
- "appid": "",
- "appsecret": ""
- },
- "apple": {
- "bundleId": ""
- }
- }
- },
- "mp-weixin": {
- "oauth": {
- "weixin": {
- "appid": "",
- "appsecret": ""
- }
- }
- },
- "mp-alipay": {
- "oauth": {
- "alipay": {
- "appid": "",
- "privateKey": ""
- }
- }
- },
- "service": {
- "sms": {
- "name": "",
- "codeExpiresIn": 300,
- "smsKey": "",
- "smsSecret": ""
- },
- "univerify": {
- "appid": "",
- "apiKey": "",
- "apiSecret": ""
- }
- }
+ "passwordSecret": "passwordSecret-demo",
+ "tokenSecret": "tokenSecret-demo",
+ "tokenExpiresIn": 7200,
+ "tokenExpiresThreshold": 600,
+ "passwordErrorLimit": 6,
+ "bindTokenToDevice": true,
+ "passwordErrorRetryTime": 3600,
+ "autoSetInviteCode": false,
+ "forceInviteCode": false,
+ "app-plus": {
+ "tokenExpiresIn": 2592000,
+ "oauth": {
+ "weixin": {
+ "appid": "wxffdd8fa6ec4ef2a0",
+ "appsecret": "6c9119430d7be0a147bcbbb73ef33acf"
+ },
+ "apple": {
+ "bundleId": "io.dcloud.hellouniapp"
+ }
+ }
+ },
+ "mp-weixin": {
+ "oauth": {
+ "weixin": {
+ "appid": "wx81dbb061d2258234",
+ "appsecret": "73be6e8b8b31b7b0783fe448cc1fe820"
+ }
+ }
+ },
+ "mp-alipay": {
+ "oauth": {
+ "alipay": {
+ "appid": "alipay appid",
+ "privateKey": "alipay privateKey"
+ }
+ }
+ },
+ "service": {
+ "sms": {
+ "name": "DCloud",
+ "codeExpiresIn": 300,
+ "smsKey": "71a19f38c954f7d768d68a050486bf15",
+ "smsSecret": "d6c424b702d73baa3b6e1a1452469213"
+ },
+ "univerify": {
+ "appid": "__UNI__03B096E",
+ "apiKey": "3fc28519d90d74173bcecf2daf4ffcc4",
+ "apiSecret": "dd793e5bc4b372ce932f35bbb4c5d61b"
+ }
+ }
}
\ No newline at end of file