diff --git a/common/appInit.js b/common/appInit.js index a22b828b1e238e0d5aaee488c04633d43484871b..af310b359a509700b8d122e3ec9cfe7fb1eae82d 100644 --- a/common/appInit.js +++ b/common/appInit.js @@ -1,12 +1,12 @@ -import checkUpdate from '@/uni_modules/uni-upgrade-center-app/utils/check-update'; -import baseappConfig from '@/baseapp.config.json'; +import baseappConfig from '@/baseapp.config.json'; +// #ifdef APP-PLUS +import checkUpdate from '@/uni_modules/uni-upgrade-center-app/utils/check-update'; +import callCheckVersion from '@/uni_modules/uni-upgrade-center-app/utils/call-check-version'; +// #endif export default function() { // 初始化appVersion initAppVersion(); - - // 检查更新 - checkUpdate(); //自定义路由拦截 const {"router":{needLogin}} = baseappConfig //需要登陆的页面 @@ -61,17 +61,29 @@ function initAppVersion() { // #ifdef APP-PLUS let appid = plus.runtime.appid; plus.runtime.getProperty(appid, (wgtInfo) => { - wgtInfo.version - let appVersion = plus.runtime; + let appVersion = plus.runtime; + let currentVersion = appVersion.versionCode > wgtInfo.versionCode ? appVersion : wgtInfo; getApp({ allowDefault: true - }).appVersion = { + }).appVersion = { + ...currentVersion, appid, - version: appVersion, - wgtVersion: wgtInfo, - finall: appVersion.versionCode > wgtInfo.versionCode ? appVersion : wgtInfo - } - }); + hasNew:true + } + // 检查更新小红点 + callCheckVersion() + .then(res=>{ + if(res.result.code>0){ + // 有新版本 + getApp({ + allowDefault: true + }).appVersion.hasNew = true; + } + }) + }); + + // 检查更新 + checkUpdate(); // #endif } diff --git a/pages/ucenter/agree-list/privacy/privacy.html b/pages/ucenter/agree-list/privacy/privacy.html index 1df8ef98575bc563fb7edf784a05ff586f4d1e46..c2d8a0d6f071cd6380ad33615a99e7a5d21ded50 100644 --- a/pages/ucenter/agree-list/privacy/privacy.html +++ b/pages/ucenter/agree-list/privacy/privacy.html @@ -6,7 +6,8 @@ 隐私政策 @@ -30,7 +33,8 @@

1.适用范围

-

a.在您注册我们帐号时,您根据我们要求提供的个人注册信息;
+

+ a.在您注册我们帐号时,您根据我们要求提供的个人注册信息;
b.在您使用我们网络服务,或访问我们平台网页时,我们自动接收并记录的您的浏览器和计算机上的信息,包括但不限于您的IP地址、浏览器的类型、使用的语言、访问日期和时间、软硬件特征信息及您需求的网页记录等数据;
c.我们通过合法途径从商业伙伴处取得的用户个人数据。

diff --git a/pages/ucenter/agree-list/privacy/privacy.vue b/pages/ucenter/agree-list/privacy/privacy.vue index e103d26bcd2b82e04bfc6b46aacf7f21ddd983e1..76e9eec27f90987e9642c1551bdec0af1e88fe02 100644 --- a/pages/ucenter/agree-list/privacy/privacy.vue +++ b/pages/ucenter/agree-list/privacy/privacy.vue @@ -1,34 +1,6 @@ diff --git a/pages/ucenter/agree-list/service/service.html b/pages/ucenter/agree-list/service/service.html index 7fe8e962cad180801d8f7e7961e386ece0d617fb..169b01d8cdfe8823805934bcf5ab124cc41ae738 100644 --- a/pages/ucenter/agree-list/service/service.html +++ b/pages/ucenter/agree-list/service/service.html @@ -6,7 +6,8 @@ 服务协议 @@ -36,8 +39,8 @@ 条款如下:

- 一、定义条款 接受并同意本服务协议全部条款及发布的其他各类规则,通过网站注册成为会员,且具备完全民事行为能力或者获经法定代理人同意的限制民事行为能力的自然人、法人、个体工商户或者其他组织。 - 用户分为商家用户和普通用户。 1.1.1 商家用户 指通过注册成为的会员,并发布商家及其产品或者服务信息的法人、个体工商户或者其他组织,即为本服务协议文中“商家”。 1.1.2 普通用户 指享受服务的普通用户,即为本服务协议文中“用户”。  + 一、定义条款 接受并同意本服务协议全部条款及发布的其他各类规则,通过网站注册成为会员,且具备完全民事行为能力或者获经法定代理人同意的限制民事行为能力的自然人、法人、个体工商户或者其他组织。
+ 用户分为商家用户和普通用户。 1.1.1 商家用户 指通过注册成为的会员,并发布商家及其产品或者服务信息的法人、个体工商户或者其他组织,即为本服务协议文中“商家”。 1.1.2 普通用户 指享受服务的普通用户,即为本服务协议文中“用户”。

二、用户注册  2.1 注册资格 用户保证,其具有完全民事权利能力和行为能力或虽不具有完全民事权利能力和行为能力但经其法定代理人同意享用服务。否则,其与之间的服务协议自始无效,一经发现,有权立即注销该用户,并追究其使用提供服务的一切法律责任。 2.2 注册流程 2.2.1 用户同意根据用户注册页面要求提供有效电子邮箱、联系电话等信息,设置账号及密码,用户应确保所提供全部信息的真实性、完整性和准确性。 2.2.2 用户合法、完整并有效提供注册所需信息的,有权获得账号和密码,账号和密码用于用户在进行会员登录。同时用户应当对以其账号进行的所有活动和事件负法律责任。 2.2.3 用户获得账号及密码时视为用户注册成功,用户同意接收发送的与管理、运营相关的电子邮件和/或短消息。 2.3 税费承担 用户通过购销产品或服务而发生的全部应纳税赋,均由用户自行支付。 " diff --git a/pages/ucenter/agree-list/service/service.vue b/pages/ucenter/agree-list/service/service.vue index 79a1e6c9b67014b4ecd6e95a99db7b867e0669c1..215efc5e8d6669bc6a9a1531c2f410942c9081bf 100644 --- a/pages/ucenter/agree-list/service/service.vue +++ b/pages/ucenter/agree-list/service/service.vue @@ -1,25 +1,6 @@ diff --git a/pages/ucenter/ucenter.vue b/pages/ucenter/ucenter.vue index 3215d753607df350165b907511e12ae1226ee017..7885ee7d6aa37279c5e52487609b0a8da3aca465 100644 --- a/pages/ucenter/ucenter.vue +++ b/pages/ucenter/ucenter.vue @@ -20,7 +20,12 @@ :clickable="true" :to="item.to" @click="ucenterListClick(item)" - > + > + + {{item.rightText}} + + + @@ -74,8 +79,9 @@ //#ifdef APP-PLUS { title: '检查更新', - rightText: `V${getApp().appVersion.finall.version}_${getApp().appVersion.finall.versionCode}`, - event:'checkVersion' + rightText: `V${getApp().appVersion.version}_${getApp().appVersion.versionCode}`, + event:'checkVersion', + showBadge:true } //#endif ], @@ -250,6 +256,26 @@ -webkit-transform: scaleY(0.2); transform: scaleY(0.2); } -/* #endif */ +/* #endif */ +.item-footer{ + flex-direction: row; + align-items: center; +} +.item-footer-text{ + color: #999; + font-size: 24rpx; + padding-right: 10rpx; +} +.item-footer-badge{ + width: 20rpx; + height: 20rpx; + /* #ifndef APP-NVUE */ + border-radius: 50%; + /* #endif */ + /* #ifdef APP-NVUE */ + border-radius: 10rpx; + /* #endif */ + background-color: #DD524D; +} diff --git a/static/tabbar/grid.png b/static/tabbar/grid.png index 93819d2e015d15200540be73ef88c95c19bce14e..6bb1d837bc8a3b37d909746eba22b2e2293fe664 100644 Binary files a/static/tabbar/grid.png and b/static/tabbar/grid.png differ diff --git a/static/tabbar/grid_active.png b/static/tabbar/grid_active.png index 61107d5339cd6278dadd308b4a556b6a08b3adb7..81df4c78f5562c303606bd515b928c741e803edf 100644 Binary files a/static/tabbar/grid_active.png and b/static/tabbar/grid_active.png differ diff --git a/static/tabbar/list.png b/static/tabbar/list.png index f3316ac8a9c54d2e51a9f1869775e42bb349d8d2..7ddda5e31e93694190259410b1e7eec2dcb35186 100644 Binary files a/static/tabbar/list.png and b/static/tabbar/list.png differ diff --git a/static/tabbar/list_active.png b/static/tabbar/list_active.png index 1bd401fe7a992d861c025eb4d6d6369b7929b776..195b149b2fbf4f224d390507954635c9fa2a83e7 100644 Binary files a/static/tabbar/list_active.png and b/static/tabbar/list_active.png differ diff --git a/static/tabbar/me.png b/static/tabbar/me.png index 4cde52f09f4334c5816af0af49e75b36ac6284ab..1bff84a5047cc57dcb03d76e476bd1fda120c43c 100644 Binary files a/static/tabbar/me.png and b/static/tabbar/me.png differ diff --git a/static/tabbar/me_active.png b/static/tabbar/me_active.png index 6ad06f475695a84ec09816563ca8f95cc65ec02e..c509f7f8ab06f5affa1ea1a8df02def3aedb3035 100644 Binary files a/static/tabbar/me_active.png and b/static/tabbar/me_active.png differ diff --git a/uni_modules/uni-upgrade-center-app/changelog.md b/uni_modules/uni-upgrade-center-app/changelog.md index 48b9ee4442738d666bc1804bbb822a09e594c31d..74cd62c22cf526cd4d039d39ad18eef9e74a8530 100644 --- a/uni_modules/uni-upgrade-center-app/changelog.md +++ b/uni_modules/uni-upgrade-center-app/changelog.md @@ -1,3 +1,7 @@ +## 0.1.4(2021-04-13) +- 更新文档。明确云函数调用结果 +## 0.1.3(2021-04-13) +- 解耦云函数与弹框处理。utils中新增 call-check-version.js,可用于单独检测是否有更新 ## 0.1.2(2021-04-07) - 更新版本对比函数 compare ## 0.1.1(2021-04-07) diff --git a/uni_modules/uni-upgrade-center-app/package.json b/uni_modules/uni-upgrade-center-app/package.json index fbaf85dbbaccdf9788ee8fc40ee55b2c93c98973..86cd3b408a21f5d56ef33e736ec0363ea7f0573e 100644 --- a/uni_modules/uni-upgrade-center-app/package.json +++ b/uni_modules/uni-upgrade-center-app/package.json @@ -1,7 +1,7 @@ { "id": "uni-upgrade-center-app", "displayName": "升级中心 uni-upgrade-center - App", - "version": "0.1.2", + "version": "0.1.4", "description": "升级中心前台检查更新", "keywords": [ "uniCloud", diff --git a/uni_modules/uni-upgrade-center-app/readme.md b/uni_modules/uni-upgrade-center-app/readme.md index b434a383d0f4896135ebf8166eb5b9ebd8a28bb9..2f6fd08846fedeff6457a63a8b977537edc500e7 100644 --- a/uni_modules/uni-upgrade-center-app/readme.md +++ b/uni_modules/uni-upgrade-center-app/readme.md @@ -71,25 +71,46 @@ 6. 检查更新前端使用示例:`uni_modules/uni-upgrade-center-app/utils/check-update.js`,在要检查更新的地方导入调用即可 + +**Tips** + +1. `check-version`云函数内部有版本对比函数(compare)。 + - 使用多段式版本格式(如:"3.0.0.0.0.1.0.1", "3.0.0.0.0.1")。如果不满足对比规则,请自行修改。 + - 如果修改,请将*pages/upgrade-popup.vue*中*compare*函数一并修改 + ## 项目代码说明 ### 更新弹框 - `upgrade-popup.vue` - 更新应用: - - 如果`check-version`返回的参数表明需要更新,则将参数保存在localStorage中,带着键值跳转该页面 - - 进入时会先从localStorage中尝试取出之前存的安装包路径(此包不会是强制安装类型的包) - - 如果有已经保存的包,则和传进来的 `version` 进行比较,如果相等则安装。大于和小于都不进行安装,因为admin端可能会调整包的版本。不符合更新会将此包删除 - - 如果本地没有包或者包不符合安装条件,则进行下载安装包 - - 点击下载会有进度条、已下载大小和下载包的大小 - - 下载完成会提示安装: - - 如果是 wgt 包,安装时则会提示 正在安装…… 和 安装完成。安装完成会提示是否重启 - - 如果是 原生安装包,则直接跳出去覆盖安装 - - 下载过程中,如果退出会提示是否取消下载。如果是强制更新,则只会提示正在下载请稍后,此时不可退出 - - 如果是下载完成了没有安装就退出,则会将下载完成的包保存在本地。将包的本地路径和包version保存在localStorage中 + - 如果云函数`check-version`返回的参数表明需要更新,则将参数保存在localStorage中,带着键值跳转该页面 + - 进入时会先从localStorage中尝试取出之前存的安装包路径(此包不会是强制安装类型的包) + - 如果有已经保存的包,则和传进来的 `version` 进行比较,如果相等则安装。大于和小于都不进行安装,因为admin端可能会调整包的版本。不符合更新会将此包删除 + - 如果本地没有包或者包不符合安装条件,则进行下载安装包 + - 点击下载会有进度条、已下载大小和下载包的大小 + - 下载完成会提示安装: + - 如果是 wgt 包,安装时则会提示 正在安装…… 和 安装完成。安装完成会提示是否重启 + - 如果是 原生安装包,则直接跳出去覆盖安装 + - 下载过程中,如果退出会提示是否取消下载。如果是强制更新,则只会提示正在下载请稍后,此时不可退出 + - 如果是下载完成了没有安装就退出,则会将下载完成的包保存在本地。将包的本地路径和包version保存在localStorage中 + +### 工具类 utils +- `call-check-version` + - 请求云函数`check-version`拿取版本检测结果 +- `check-update` + - 调用`call-check-version`并根据结果判断是否显示更新弹框 ### 云函数 - `check-version` - 检查应用更新: - - 根据传参,先检测传参是否完整,appid appVersion wgtVersion 必传 - - 先从数据库取出所有该平台(会从上下文读取平台信息)的所有线上发行更新 - - 再从所有线上发行更新中取出版本最大的一版。如果可以,尽量先检测wgt的线上发行版更新 - - 使用上一步取出的版本包的版本号 和传参 appVersion、wgtVersion 来检测是否有更新。必须同时大于这两项,因为上一次可能是wgt热更新,否则返回暂无更新 - - 如果库中 wgt包 版本大于传参 appVersion,但是不满足 min_uni_version < appVersion,则不会使用wgt更新,会接着判断库中 app包version 是否大于 appVersion \ No newline at end of file + - 根据传参,先检测传参是否完整,appid appVersion wgtVersion 必传 + - 先从数据库取出所有该平台(会从上下文读取平台信息)的所有线上发行更新 + - 再从所有线上发行更新中取出版本最大的一版。如果可以,尽量先检测wgt的线上发行版更新 + - 使用上一步取出的版本包的版本号 和传参 appVersion、wgtVersion 来检测是否有更新。必须同时大于这两项,因为上一次可能是wgt热更新,否则返回暂无更新 + - 如果库中 wgt包 版本大于传参 appVersion,但是不满足 min_uni_version < appVersion,则不会使用wgt更新,会接着判断库中 app包version 是否大于 appVersion + - 返回结果: + |code|message| + |:-:|:-:| + |0|当前版本已经是最新的,不需要更新| + |101|wgt更新| + |102|整包更新| + |-101|暂无更新或检查appid是否填写正确| + |-102|请检查传参是否填写正确| \ No newline at end of file diff --git a/uni_modules/uni-upgrade-center-app/utils/call-check-version.js b/uni_modules/uni-upgrade-center-app/utils/call-check-version.js new file mode 100644 index 0000000000000000000000000000000000000000..722b7c442095026cbcfce6ac3813659cd0b6a658 --- /dev/null +++ b/uni_modules/uni-upgrade-center-app/utils/call-check-version.js @@ -0,0 +1,29 @@ +export default function() { + // #ifdef APP-PLUS + return new Promise((resolve, reject) => { + plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) { + uniCloud.callFunction({ + name: 'check-version', + data: { + appid: plus.runtime.appid, + appVersion: plus.runtime.version, + wgtVersion: widgetInfo.version + }, + success: (e) => { + resolve(e) + }, + fail: (error) => { + reject(error) + } + }) + }) + }) + // #endif + // #ifndef APP-PLUS + return new Promise((resolve, reject) => { + reject({ + message: '请在App中使用' + }) + }) + // #endif +} diff --git a/uni_modules/uni-upgrade-center-app/utils/check-update.js b/uni_modules/uni-upgrade-center-app/utils/check-update.js index da21b102bb00c107ee16a86e87656a3445a7aef9..4fb4d42a190f684e65a865d5e9d8c40930c31396 100644 --- a/uni_modules/uni-upgrade-center-app/utils/check-update.js +++ b/uni_modules/uni-upgrade-center-app/utils/check-update.js @@ -1,82 +1,73 @@ +import callCheckVersion from './call-check-version' + // 推荐再App.vue中使用 const PACKAGE_INFO_KEY = '__package_info__' export default function() { // #ifdef APP-PLUS - plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) { - uniCloud.callFunction({ - name: 'check-version', - data: { - appid: plus.runtime.appid, - appVersion: plus.runtime.version, - wgtVersion: widgetInfo.version - }, - success: async (e) => { - if (!e.result) return; - const { - code, - message, - is_silently, // 是否静默更新 - url, // 安装包下载地址 - platform, // 安装包平台 - type // 安装包类型 - } = e.result; + callCheckVersion().then(async (e) => { + if (!e.result) return; + const { + code, + message, + is_silently, // 是否静默更新 + url, // 安装包下载地址 + platform, // 安装包平台 + type // 安装包类型 + } = e.result; - // 此处逻辑仅为实例,可自行编写 - if (code > 0) { - // 腾讯云和阿里云下载链接不同,需要处理一下,阿里云会原样返回 - const { - fileList - } = await uniCloud.getTempFileURL({ - fileList: [url] - }); - e.result.url = fileList[0].tempFileURL + // 此处逻辑仅为实例,可自行编写 + if (code > 0) { + // 腾讯云和阿里云下载链接不同,需要处理一下,阿里云会原样返回 + const { + fileList + } = await uniCloud.getTempFileURL({ + fileList: [url] + }); + e.result.url = fileList[0].tempFileURL - // 静默更新,只有wgt有 - if (is_silently) { - uni.downloadFile({ - url: e.result.url, - success: res => { - if (res.statusCode == 200) { - // 下载好直接安装,下次启动生效 - plus.runtime.install(res.tempFilePath, { - force: false - }); - } - } - }); - return; + // 静默更新,只有wgt有 + if (is_silently) { + uni.downloadFile({ + url: e.result.url, + success: res => { + if (res.statusCode == 200) { + // 下载好直接安装,下次启动生效 + plus.runtime.install(res.tempFilePath, { + force: false + }); + } } + }); + return; + } - /** - * 提示升级一 - * 使用 uni.showModal - */ - // return updateUseModal(e.result) + /** + * 提示升级一 + * 使用 uni.showModal + */ + // return updateUseModal(e.result) - /** - * 提示升级二 - * 官方适配的升级弹窗,可自行替换资源适配UI风格 - */ - uni.setStorageSync(PACKAGE_INFO_KEY, e.result) - uni.navigateTo({ - url: `/uni_modules/uni-upgrade-center-app/pages/upgrade-popup?local_storage_key=${PACKAGE_INFO_KEY}`, - fail: (err) => { - console.error('更新弹框跳转失败', err) - uni.removeStorageSync(PACKAGE_INFO_KEY) - } - }) - } else if (code < 0) { - // TODO 云函数报错处理 - console.error(message) + /** + * 提示升级二 + * 官方适配的升级弹窗,可自行替换资源适配UI风格 + */ + uni.setStorageSync(PACKAGE_INFO_KEY, e.result) + uni.navigateTo({ + url: `/uni_modules/uni-upgrade-center-app/pages/upgrade-popup?local_storage_key=${PACKAGE_INFO_KEY}`, + fail: (err) => { + console.error('更新弹框跳转失败', err) + uni.removeStorageSync(PACKAGE_INFO_KEY) } - }, - fail: (err) => { - // TODO 云函数报错处理 - console.error(err.message) - } - }) - }); + }) + } else if (code < 0) { + // TODO 云函数报错处理 + console.error(message) + } + }).catch(err => { + // TODO 云函数报错处理 + console.error(err.message) + }) // #endif }