diff --git a/src/App.vue b/src/App.vue index 39585a8..5bfcb10 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,7 +2,6 @@ import { onLaunch, onShow, onHide } from "@dcloudio/uni-app"; import { getEvnUrl } from "@/request/base/config"; import { refreshToken } from "@/hooks/useGoLogin"; -import { updateManager } from "@/utils/UpdateManager"; let wasOffline = false; let isRecoveringNetwork = false; @@ -78,8 +77,6 @@ const checkNetworkStatus = () => { }; onLaunch(() => { - updateManager(); - uni.onNetworkStatusChange((res) => { if (!res.isConnected || res.networkType === "none") { wasOffline = true; diff --git a/src/uni_modules/uni-upgrade-center-app/changelog.md b/src/uni_modules/uni-upgrade-center-app/changelog.md deleted file mode 100644 index f2ecf5c..0000000 --- a/src/uni_modules/uni-upgrade-center-app/changelog.md +++ /dev/null @@ -1,129 +0,0 @@ -## 0.9.10(2026-04-27) -- 修复 uni-app-x 项目编译时 warning -## 0.9.9(2026-02-03) -- 修复 安卓端非强制更新 kotlin 报错 `onClick has not been intialized` -## 0.9.8(2026-01-05) -- 更新 移除 vapor 模式不支持的 class 选择器 -## 0.9.7(2025-07-28) -- 修复 使用腾讯云时,wgt 更新报错的Bug -- 改进 uni-app-x 平台弹窗该用 script setup 实现 -## 0.9.6(2025-04-01) -- 新增 升级中心适配鸿蒙 uni-app x **需要 HBuilderX 4.61+** -## 0.9.5(2025-02-06) -- 新增 完善下载失败时的处理逻辑 -## 0.9.4(2024-12-28) -- 修复 腾讯云在使用扩展存储时报错的 Bug -## 0.9.3(2024-12-23) -- 修复 升级中心在大屏上的显示效果 -## 0.9.2(2024-11-06) -- 更新 部分 ts 类型 -## 0.9.1(2024-11-01) -- 更新 支持 HarmonyOS Next 设备整包更新、wgt 更新。需要 `HBuilderX 4.32+` [详情](https://doc.dcloud.net.cn/uniCloud/upgrade-center.html#uni-upgrade-center-app-harmonyos) -## 0.9.0(2024-10-30) -- **重要更新** 在 uni-app x 项目中弃用之前弹窗方案使用[dialogPage](https://doc.dcloud.net.cn/uni-app-x/api/dialog-page.html)实现,需要 `HBuilderX 4.31+` -## 0.8.5(2024-10-26) -- 优化 去除不必要代码 -## 0.8.4(2024-10-26) -- 修复 uni-app x 项目升级到 4.31 alpha 后中间有空隙的Bug -## 0.8.3(2024-07-31) -- 修复 部分类型报错 -## 0.8.2(2024-07-15) -- 更新 static 下的静态图片放入 static/app 目录下,防止编译除 app 平台以外的平台时带入 -## 0.8.1(2024-04-28) -- 修复 在 HX 4.0.3+ uni-app x 项目运行到 Android 调不起安装的Bug -## 0.8.0(2024-04-15) -- 修复 更新弹窗 data 中新增初始化字段 -## 0.7.9(2024-03-15) -- 移除无用代码 -- 调整 is_silently 类型为可为 null -## 0.7.8(2024-01-04) -- 新增 移除无用代码 -## 0.7.7(2024-01-04) -- 新增 uni-app x 项目中新增 @show 回调 -## 0.7.6(2023-12-21) -- 修复 iOS使用升级中心云打包时报错(使用新版的 [uts-progressNotification](https://ext.dcloud.net.cn/plugin?name=uts-progressNotification) 插件,如果之前下载过请删除 `uts-progressNotification\utssdk\app-ios` 文件夹) -## 0.7.5(2023-12-12) -- 新增 通知栏进度条使用 uts-progressNotification 插件 -- 新增 依赖 uni-installApk、uts-progressNotification。使用前要安装插件三方依赖 -## 0.7.4(2023-11-29) -- 修复 uni-app-x 项目中由上版引发的无法升级的Bug -## 0.7.3(2023-11-27) -- 修复 在 uni-app x 中无更新时报错的Bug -## 0.7.2(2023-11-20) -- 新增 插件根目录 utils 文件夹中新增 check-update-nvue.js 文件(vue2 的 nvue 页面请引用该文件) -## 0.7.1(2023-11-17) -- 修复 运行至浏览器 ts 语法报错 -## 0.7.0(2023-11-10) -- 新增 兼容 uni-app x 项目 [详情](https://uniapp.dcloud.net.cn/uniCloud/upgrade-center.html) -## 0.6.5(2023-10-27) -- 修复 安装 wgt 报错 manifest.json 文件不存在的Bug -## 0.6.4(2023-09-01) -chore: 优化代码结构 -## 0.6.3(2023-08-30) -- 修复 下载 wgt 时如果后缀名不正确,重命名后安装 -## 0.6.2(2022-11-21) -- 处理 cloudfunctions 目录 -## 0.6.1(2022-08-17) -- 修复 后台添加应用市场,但都没有启用的情况下报错的Bug (需要 uni-admin 1.9.3+) -## 0.6.0(2022-07-19) -- 新增 支持多应用商店配置(需要 uni-admin 1.9.3+) -## 0.4.1(2022-05-27) -- 修复 上版引出的报错问题 -## 0.4.0(2022-05-27) -- 新增 Android 支持跳转手机自带商店,填写升级包地址时请填写跳转商店链接 -- 新增 改为云对象调用方式,使用更直观 -## 0.3.3(2022-04-14) -- 修复 调用 check-update,当 code 为 0 时没有回调 -## 0.3.2(2022-01-12) -- 优化显示逻辑 -## 0.3.1(2021-11-24) -- 修复 vue3 上图片不显示的Bug -## 0.3.0(2021-11-18) -- 移除 wgt 安装成功后提示,防止重启过快弹框不消失 -## 0.2.2(2021-08-25) -- 兼容vue3.0 -## 0.2.1(2021-07-26) -- 修复 使用腾讯云并手动填写地址时,导致下载链接失效的bug -## 0.2.0(2021-07-13) -- 更新文档 关于报错local_storage_key 为空,请不要将页面路径设置为pages.json中第一项 -## 0.1.9(2021-06-28) -- 更新文档 -- 修复 wgt安装失败时,按钮状态不对 -## 0.1.8(2021-06-16) -- 修复 跳转安装时,导致上次下载的apk还没安装就被删掉的bug -## 0.1.7(2021-06-03) -- 修改 移除static中的图片 -## 0.1.6(2021-06-03) -- 修改 下载更新按钮使用CSS渐变色 -## 0.1.5(2021-04-22) -- 更新check-update函数。现在返回一个Promise,有更新时成功回调,其他情况错误回调 -## 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) -- 修复 腾讯云空间下载链接不能下载问题 -## 0.1.0(2021-04-07) -- 新增使用uni.showModal提示升级示例 -- 修改iOS升级提示方式 -## 0.0.7(2021-04-02) -- 修复在iOS上打开弹框报错 -## 0.0.6(2021-04-01) -- 兼容旧版本安卓 -## 0.0.5(2021-04-01) -- 修复低版本安卓上进度条错位 -## 0.0.4(2021-04-01) -- 更新readme -- 修复check-update语法错误 -## 0.0.3(2021-04-01) -- 新增前台更新弹框,详见readme -- 更新前台检查更新方法 - -## 0.0.2(2021-03-29) -- 更新文档 -- 移除 dependencies - -## 0.0.1(2021-03-25) -- 升级中心前台检查更新 diff --git a/src/uni_modules/uni-upgrade-center-app/package.json b/src/uni_modules/uni-upgrade-center-app/package.json deleted file mode 100644 index 56f2d7e..0000000 --- a/src/uni_modules/uni-upgrade-center-app/package.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "id": "uni-upgrade-center-app", - "displayName": "升级中心 uni-upgrade-center - App", - "version": "0.9.10", - "description": "uni升级中心 - 客户端检查更新", - "keywords": [ - "uniCloud", - "update", - "升级", - "wgt" -], - "repository": "https://gitee.com/dcloud/uni-upgrade-center/tree/master/uni_modules/uni-upgrade-center-app", - "engines": { - "HBuilderX": "^4.31", - "uni-app": "^4.35", - "uni-app-x": "^4.65" - }, - "dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "插件不采集任何数据", - "permissions": "无" - }, - "npmurl": "", - "type": "unicloud-template-page", - "darkmode": "x", - "i18n": "x", - "widescreen": "√" - }, - "uni_modules": { - "dependencies": [ - "uts-progressNotification", - "uts-openSchema" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "√", - "aliyun": "√", - "alipay": "√" - }, - "client": { - "uni-app": { - "vue": { - "vue2": "√", - "vue3": "√" - }, - "web": { - "safari": "-", - "chrome": "-" - }, - "app": { - "vue": "√", - "nvue": { - "extVersion": "0.8.3", - "minVersion": "" - }, - "android": { - "extVersion": "0.8.3", - "minVersion": "21" - }, - "ios": { - "extVersion": "0.8.3", - "minVersion": "12" - }, - "harmony": { - "extVersion": "0.9.1", - "minVersion": "12" - } - }, - "mp": { - "weixin": "x", - "alipay": "x", - "toutiao": "x", - "baidu": "x", - "kuaishou": "x", - "jd": "x", - "harmony": "x", - "qq": "x", - "lark": "x", - "xhs": "-" - }, - "quickapp": { - "huawei": "x", - "union": "x" - } - }, - "uni-app-x": { - "web": { - "safari": "x", - "chrome": "x" - }, - "app": { - "android": { - "extVersion": "0.9.0", - "minVersion": "21" - }, - "ios": { - "extVersion": "0.9.0", - "minVersion": "12" - }, - "harmony": "√" - }, - "mp": { - "weixin": "x" - } - } - } - } - } -} \ No newline at end of file diff --git a/src/uni_modules/uni-upgrade-center-app/pages/uni-app-x/upgrade-popup.uvue b/src/uni_modules/uni-upgrade-center-app/pages/uni-app-x/upgrade-popup.uvue deleted file mode 100644 index 6a30575..0000000 --- a/src/uni_modules/uni-upgrade-center-app/pages/uni-app-x/upgrade-popup.uvue +++ /dev/null @@ -1,546 +0,0 @@ - - - - - diff --git a/src/uni_modules/uni-upgrade-center-app/pages/upgrade-popup.vue b/src/uni_modules/uni-upgrade-center-app/pages/upgrade-popup.vue deleted file mode 100644 index e9769d6..0000000 --- a/src/uni_modules/uni-upgrade-center-app/pages/upgrade-popup.vue +++ /dev/null @@ -1,679 +0,0 @@ - - - - - diff --git a/src/uni_modules/uni-upgrade-center-app/readme.md b/src/uni_modules/uni-upgrade-center-app/readme.md deleted file mode 100644 index 53ff781..0000000 --- a/src/uni_modules/uni-upgrade-center-app/readme.md +++ /dev/null @@ -1 +0,0 @@ -文档已移至 [uni-upgrade-center](https://uniapp.dcloud.net.cn/uniCloud/upgrade-center.html) \ No newline at end of file diff --git a/src/uni_modules/uni-upgrade-center-app/static/app/app_update_close.png b/src/uni_modules/uni-upgrade-center-app/static/app/app_update_close.png deleted file mode 100644 index 8b2ffe6..0000000 Binary files a/src/uni_modules/uni-upgrade-center-app/static/app/app_update_close.png and /dev/null differ diff --git a/src/uni_modules/uni-upgrade-center-app/static/app/bg_top.png b/src/uni_modules/uni-upgrade-center-app/static/app/bg_top.png deleted file mode 100644 index 015f698..0000000 Binary files a/src/uni_modules/uni-upgrade-center-app/static/app/bg_top.png and /dev/null differ diff --git a/src/uni_modules/uni-upgrade-center-app/uniCloud/database/db_init.json b/src/uni_modules/uni-upgrade-center-app/uniCloud/database/db_init.json deleted file mode 100644 index 0967ef4..0000000 --- a/src/uni_modules/uni-upgrade-center-app/uniCloud/database/db_init.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/src/uni_modules/uni-upgrade-center-app/utils/call-check-version.ts b/src/uni_modules/uni-upgrade-center-app/utils/call-check-version.ts deleted file mode 100644 index 82b4de1..0000000 --- a/src/uni_modules/uni-upgrade-center-app/utils/call-check-version.ts +++ /dev/null @@ -1,120 +0,0 @@ -export type StoreListItem = { - enable : boolean - id : string - name : string - scheme : string - priority : number // 优先级 -} - -export type UniUpgradeCenterResult = { - _id : string - appid : string - name : string - title : string - contents : string - url : string // 安装包下载地址 - platform : Array // Array<'Android' | 'iOS' | 'Harmony'> - version : string // 版本号 1.0.0 - uni_platform : string // "android" | "ios" | 'harmony' - stable_publish : boolean // 是否是稳定版 - is_mandatory : boolean // 是否强制更新 - is_silently : boolean | null // 是否静默更新 - create_env : string // "upgrade-center" - create_date : number - message : string - code : number - - type : string // "native_app" | "wgt" - store_list : StoreListItem[] | null - min_uni_version : string | null // 升级 wgt 的最低 uni-app 版本 -} - -export default function () : Promise { - // #ifdef APP - return new Promise((resolve, reject) => { - const systemInfo = uni.getSystemInfoSync() - const appId = systemInfo.appId - const appVersion = systemInfo.appVersion //systemInfo.appVersion - // #ifndef UNI-APP-X - if (typeof appId === 'string' && typeof appVersion === 'string' && appId.length > 0 && appVersion.length > 0) { - plus.runtime.getProperty(appId, function (widgetInfo) { - if (widgetInfo.version) { - let data = { - action: 'checkVersion', - appid: appId, - appVersion: appVersion, - wgtVersion: widgetInfo.version - } - uniCloud.callFunction({ - name: 'uni-upgrade-center', - data, - success: (e) => { - resolve(e.result as UniUpgradeCenterResult) - }, - fail: (error) => { - reject(error) - } - }) - } else { - reject('widgetInfo.version is EMPTY') - } - }) - } else { - reject('plus.runtime.appid is EMPTY') - } - // #endif - // #ifdef UNI-APP-X - if (typeof appId === 'string' && typeof appVersion === 'string' && appId.length > 0 && appVersion.length > 0) { - let data = { - action: 'checkVersion', - appid: appId, - appVersion: appVersion, - is_uniapp_x: true, - wgtVersion: '0.0.0.0.0.1' - } - try { - uniCloud.callFunction({ - name: 'uni-upgrade-center', - data: data - }).then(res => { - const code = res.result['code'] - const codeIsNumber = ['Int', 'Long', 'number'].includes(typeof code) - if (codeIsNumber) { - if ((code as number) == 0) { - reject({ - code: res.result['code'], - message: res.result['message'] - }) - } else if ((code as number) < 0) { - reject({ - code: res.result['code'], - message: res.result['message'] - }) - } else { - const result = JSON.parse(JSON.stringify(res.result)) as UniUpgradeCenterResult - resolve(result) - } - } - }).catch((err : any | null) => { - const error = err as UniCloudError - if (error.errMsg == '未匹配到云函数[uni-upgrade-center]') - error.errMsg = '【uni-upgrade-center-app】未配置uni-upgrade-center,无法升级。参考: https://uniapp.dcloud.net.cn/uniCloud/upgrade-center.html' - reject(error.errMsg) - }) - } catch (e) { - reject(e.message) - } - } else { - reject('invalid appid or appVersion') - } - // #endif - }) - // #endif - // #ifndef APP - return new Promise((resolve, reject) => { - reject({ - message: '请在App中使用' - }) - }) - // #endif -} diff --git a/src/uni_modules/uni-upgrade-center-app/utils/check-update-nvue.js b/src/uni_modules/uni-upgrade-center-app/utils/check-update-nvue.js deleted file mode 100644 index 6c0d4bc..0000000 --- a/src/uni_modules/uni-upgrade-center-app/utils/check-update-nvue.js +++ /dev/null @@ -1,184 +0,0 @@ -function callCheckVersion() { - // #ifdef APP-PLUS - return new Promise((resolve, reject) => { - plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) { - let data = { - action: 'checkVersion', - appid: plus.runtime.appid, - appVersion: plus.runtime.version, - wgtVersion: widgetInfo.version - } - uniCloud.callFunction({ - name: 'uni-upgrade-center', - data, - success: (e) => { - resolve(e) - }, - fail: (error) => { - reject(error) - } - }) - }) - }) - // #endif - // #ifndef APP-PLUS - return new Promise((resolve, reject) => {}) - // #endif -} - -// 推荐再App.vue中使用 -const PACKAGE_INFO_KEY = '__package_info__' - -export default function() { - // #ifdef APP-PLUS - return new Promise((resolve, reject) => { - 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] - }); - if (fileList[0].tempFileURL) - e.result.url = fileList[0].tempFileURL; - - resolve(e) - - // 静默更新,只有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) - - /** - * 提示升级二 - * 官方适配的升级弹窗,可自行替换资源适配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) - } - }) - - return - } else if (code < 0) { - // TODO 云函数报错处理 - console.error(message) - return reject(e) - } - return resolve(e) - }).catch(err => { - // TODO 云函数报错处理 - console.error(err.message) - reject(err) - }) - }); - // #endif -} - -/** - * 使用 uni.showModal 升级 - */ -function updateUseModal(packageInfo) { - const { - title, // 标题 - contents, // 升级内容 - is_mandatory, // 是否强制更新 - url, // 安装包下载地址 - platform, // 安装包平台 - type // 安装包类型 - } = packageInfo; - - let isWGT = type === 'wgt' - let isiOS = !isWGT ? platform.includes('iOS') : false; - let confirmText = isiOS ? '立即跳转更新' : '立即下载更新' - - return uni.showModal({ - title, - content: contents, - showCancel: !is_mandatory, - confirmText, - success: res => { - if (res.cancel) return; - - // 安装包下载 - if (isiOS) { - plus.runtime.openURL(url); - return; - } - - uni.showToast({ - title: '后台下载中……', - duration: 1000 - }); - - // wgt 和 安卓下载更新 - downloadTask = uni.downloadFile({ - url, - success: res => { - if (res.statusCode !== 200) { - console.error('下载安装包失败', err); - return; - } - // 下载好直接安装,下次启动生效 - plus.runtime.install(res.tempFilePath, { - force: false - }, () => { - if (is_mandatory) { - //更新完重启app - plus.runtime.restart(); - return; - } - uni.showModal({ - title: '安装成功是否重启?', - success: res => { - if (res.confirm) { - //更新完重启app - plus.runtime.restart(); - } - } - }); - }, err => { - uni.showModal({ - title: '更新失败', - content: err - .message, - showCancel: false - }); - }); - } - }); - } - }); -} diff --git a/src/uni_modules/uni-upgrade-center-app/utils/check-update.ts b/src/uni_modules/uni-upgrade-center-app/utils/check-update.ts deleted file mode 100644 index 8c27d17..0000000 --- a/src/uni_modules/uni-upgrade-center-app/utils/check-update.ts +++ /dev/null @@ -1,228 +0,0 @@ -import callCheckVersion, { UniUpgradeCenterResult } from "./call-check-version" -import { platform_iOS } from './utils' -// #ifdef UNI-APP-X -import { openSchema } from '@/uni_modules/uts-openSchema' -// #endif - -// 推荐再App.vue中使用 -const PACKAGE_INFO_KEY = '__package_info__' -// #ifdef APP-HARMONY -export default function (component?: any) : Promise { -// #endif -// #ifndef APP-HARMONY -export default function () : Promise { -// #endif - return new Promise((resolve, reject) => { - callCheckVersion().then(async (uniUpgradeCenterResult) => { - // NOTE uni-app x 3.96 解构有问题 - const code = uniUpgradeCenterResult.code - const message = uniUpgradeCenterResult.message - const url = uniUpgradeCenterResult.url // 安装包下载地址 - // 此处逻辑仅为示例,可自行编写 - if (code > 0) { - // 腾讯云获取下载链接 - if (/^cloud:\/\//.test(url)) { - const tcbRes = await uniCloud.getTempFileURL({ fileList: [url] }); - if (typeof tcbRes.fileList[0].tempFileURL !== 'undefined') uniUpgradeCenterResult.url = tcbRes.fileList[0].tempFileURL; - } - - /** - * 提示升级一 - * 使用 uni.showModal - */ - // return updateUseModal(uniUpgradeCenterResult) - - // #ifndef UNI-APP-X - // 静默更新,只有wgt有 - if (uniUpgradeCenterResult.is_silently) { - uni.downloadFile({ - url: uniUpgradeCenterResult.url, - success: res => { - if (res.statusCode == 200) { - // 下载好直接安装,下次启动生效 - plus.runtime.install(res.tempFilePath, { - force: false - }); - } - } - }); - return; - } - // #endif - - /** - * 提示升级二 - * 官方适配的升级弹窗,可自行替换资源适配UI风格 - */ - // #ifndef UNI-APP-X - // #ifdef APP-PLUS - uni.setStorageSync(PACKAGE_INFO_KEY, uniUpgradeCenterResult) - 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) - } - }) - // #endif - // #ifdef APP-HARMONY - if (component) { - component.show(true, uniUpgradeCenterResult) - } else { - reject({ - code: -1, - message: '在 HarmonyOS Next 平台请传递组件使用' - }) - } - // #endif - // #endif - // #ifdef UNI-APP-X - uni.setStorageSync(PACKAGE_INFO_KEY, uniUpgradeCenterResult) - uni.openDialogPage({ - url: `/uni_modules/uni-upgrade-center-app/pages/uni-app-x/upgrade-popup?local_storage_key=${PACKAGE_INFO_KEY}`, - disableEscBack: true, - fail: (err) => { - console.error('更新弹框跳转失败', err) - uni.removeStorageSync(PACKAGE_INFO_KEY) - } - }) - // #endif - - return resolve(uniUpgradeCenterResult) - } else if (code < 0) { - console.error(message) - return reject(uniUpgradeCenterResult) - } - return resolve(uniUpgradeCenterResult) - }).catch((err) => { - reject(err) - }) - }); - } - -/** - * 使用 uni.showModal 升级 - */ -function updateUseModal(packageInfo : UniUpgradeCenterResult) : void { - // #ifdef APP - const { - title, // 标题 - contents, // 升级内容 - is_mandatory, // 是否强制更新 - url, // 安装包下载地址 - type, - platform - } = packageInfo; - - let isWGT = type === 'wgt' - let isiOS = !isWGT ? platform.includes(platform_iOS) : false; - - // #ifndef UNI-APP-X - let confirmText = isiOS ? '立即跳转更新' : '立即下载更新' - // #endif - // #ifdef UNI-APP-X - let confirmText = '立即下载更新' - // #endif - - uni.showModal({ - title, - content: contents, - showCancel: !is_mandatory, - confirmText, - success: res => { - if (res.cancel) return; - - if (isiOS) { - // iOS 平台跳转 AppStore - // #ifndef UNI-APP-X - plus.runtime.openURL(url); - // #endif - // #ifdef UNI-APP-X - openSchema(url) - // #endif - return; - } - - uni.showToast({ - title: '后台下载中……', - duration: 1000 - }); - - // wgt 和 安卓下载更新 - uni.downloadFile({ - url, - success: res => { - if (res.statusCode !== 200) { - console.error('下载安装包失败'); - return; - } - // 下载好直接安装,下次启动生效 - // uni-app x 项目没有 plus5+ 故使用条件编译 - // #ifndef UNI-APP-X - plus.runtime.install(res.tempFilePath, { - force: false - }, () => { - if (is_mandatory) { - //更新完重启app - // #ifdef APP-PLUS - plus.runtime.restart(); - // #endif - // #ifdef APP-HARMONY - uni.showModal({ - title: '安装成功', - content: '请手动重启应用', - showCancel: false, - success: res => { - plus.runtime.quit(); - } - }); - // #endif - return; - } - uni.showModal({ - title: '安装成功是否重启?', - success: res => { - if (res.confirm) { - //更新完重启app - // #ifdef APP-PLUS - plus.runtime.restart(); - // #endif - // #ifdef APP-HARMONY - plus.runtime.quit(); - // #endif - } - } - }); - }, err => { - uni.showModal({ - title: '更新失败', - content: err - .message, - showCancel: false - }); - }); - // #endif - - // #ifdef UNI-APP-X - uni.installApk({ - filePath: res.tempFilePath, - success: () => { - uni.showModal({ - title: '安装成功请手动重启' - }); - }, - fail: err => { - uni.showModal({ - title: '更新失败', - content: err.errMsg, - showCancel: false - }); - } - }); - // #endif - } - }); - } - }); - // #endif -} diff --git a/src/uni_modules/uni-upgrade-center-app/utils/utils.ts b/src/uni_modules/uni-upgrade-center-app/utils/utils.ts deleted file mode 100644 index 414e096..0000000 --- a/src/uni_modules/uni-upgrade-center-app/utils/utils.ts +++ /dev/null @@ -1,46 +0,0 @@ -export const platform_iOS: string = 'iOS'; -export const platform_Android: string = 'Android'; -export const platform_Harmony: string = 'Harmony'; - -/** - * 对比版本号,如需要,请自行修改判断规则 - * 支持比对 ("3.0.0.0.0.1.0.1", "3.0.0.0.0.1") ("3.0.0.1", "3.0") ("3.1.1", "3.1.1.1") 之类的 - * @param {Object} v1 - * @param {Object} v2 - * v1 > v2 return 1 - * v1 < v2 return -1 - * v1 == v2 return 0 - */ -export function compare(v_1: string = '0', v_2: string = '0') { - const v1: string[] = String(v_1).split('.'); - const v2: string[] = String(v_2).split('.'); - const minVersionLens = Math.min(v1.length, v2.length); - - let result = 0; - for (let i = 0; i < minVersionLens; i++) { - const curV1 = Number(v1[i]); - const curV2 = Number(v2[i]); - - if (curV1 > curV2) { - result = 1; - break; - } else if (curV1 < curV2) { - result = -1; - break; - } - } - - if (result === 0 && v1.length !== v2.length) { - const v1BiggerThenv2 = v1.length > v2.length; - const maxLensVersion = v1BiggerThenv2 ? v1 : v2; - for (let i = minVersionLens; i < maxLensVersion.length; i++) { - const curVersion = Number(maxLensVersion[i]); - if (curVersion > 0) { - v1BiggerThenv2 ? (result = 1) : (result = -1); - break; - } - } - } - - return result; -} \ No newline at end of file diff --git a/src/uni_modules/uts-openSchema/changelog.md b/src/uni_modules/uts-openSchema/changelog.md deleted file mode 100644 index ac488d0..0000000 --- a/src/uni_modules/uts-openSchema/changelog.md +++ /dev/null @@ -1,13 +0,0 @@ -## 1.1.3(2025-09-12) -- 鸿蒙平台 新增 打开 url 错误时输出 -- iOS平台 修复 语法报黄问题 -## 1.1.2(2025-03-20) -- 更新 支持鸿蒙 -## 1.1.1(2024-12-16) -- 修复 canOpenURL 在安卓端可能会报类型错误的问题 -## 1.1.0(2024-12-06) -- 新增 canOpenURL UTS API,可用此API判断url是否可以跳转 -## 1.0.1(2024-11-13) -- 修复 Android 打开部分 schema 时没有跳转到目标应用的 Bug -## 1.0.0(2024-04-25) -- 更新 在 Android 和 iOS 上打开链接的 UTS API diff --git a/src/uni_modules/uts-openSchema/package.json b/src/uni_modules/uts-openSchema/package.json deleted file mode 100644 index 2225c04..0000000 --- a/src/uni_modules/uts-openSchema/package.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "id": "uts-openSchema", - "displayName": "uts-openSchema", - "version": "1.1.3", - "description": "在 Android、iOS、HarmonyOS 上打开链接的 UTS API", - "keywords": [ - "uts-openSchema" -], - "repository": "", - "engines": { - "HBuilderX": "^4.0", - "uni-app": "^4.75", - "uni-app-x": "^4.75" - }, - "dcloudext": { - "type": "uts", - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "", - "darkmode": "x", - "i18n": "x", - "widescreen": "x" - }, - "uni_modules": { - "dependencies": [], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "√", - "aliyun": "√", - "alipay": "√" - }, - "client": { - "uni-app": { - "vue": { - "vue2": { - "extVersion": "1.0.0", - "minVersion": "" - }, - "vue3": { - "extVersion": "1.0.0", - "minVersion": "" - } - }, - "web": { - "safari": "x", - "chrome": "x" - }, - "app": { - "vue": { - "extVersion": "1.0.0", - "minVersion": "" - }, - "nvue": "-", - "android": { - "extVersion": "1.0.0", - "minVersion": "21" - }, - "ios": { - "extVersion": "1.0.0", - "minVersion": "12" - }, - "harmony": { - "extVersion": "1.1.2", - "minVersion": "5.0.0" - } - }, - "mp": { - "weixin": "x", - "alipay": "x", - "toutiao": "x", - "baidu": "x", - "kuaishou": "x", - "jd": "x", - "harmony": "x", - "qq": "x", - "lark": "x" - }, - "quickapp": { - "huawei": "x", - "union": "x" - } - }, - "uni-app-x": { - "web": { - "safari": "x", - "chrome": "x" - }, - "app": { - "android": { - "extVersion": "1.0.0", - "minVersion": "21" - }, - "ios": { - "extVersion": "1.0.0", - "minVersion": "12" - }, - "harmony": { - "extVersion": "1.1.2", - "minVersion": "5.0.0" - } - }, - "mp": { - "weixin": "x" - } - } - } - } - } -} \ No newline at end of file diff --git a/src/uni_modules/uts-openSchema/readme.md b/src/uni_modules/uts-openSchema/readme.md deleted file mode 100644 index 2b48c22..0000000 --- a/src/uni_modules/uts-openSchema/readme.md +++ /dev/null @@ -1,59 +0,0 @@ -# uts-openSchema - -打开链接,支持: - -1. 打开外部 App -2. 使用浏览器打开链接 -3. 打开地图到指定地点 -4. ... - -## 使用 - -1. 安装此插件 -2. 在要使用的地方 `import` 导入 - ```ts - import { openSchema, canOpenURL } from '@/uni_modules/uts-openSchema' - ``` -3. 直接调用 `openSchema` 方法: - ```ts - // #ifdef UNI-APP-X - // 使用外部浏览器打开指定URL - openSchema('https://uniapp.dcloud.io/uni-app-x') - - // #ifdef APP-ANDROID - // Android 使用应用商店打开指定App - openSchema('market://details?id=com.tencent.mm') - - // Android 打开地图坐标 - // 可以先用canOpenURL判断是否安装了地图软件 - if (canOpenURL('androidamap://')) { - openSchema('androidamap://viewMap?sourceApplication=Hello%20uni-app&poiname=DCloud&lat=39.9631018208&lon=116.3406135236&dev=0') - } else { - console.log('未安装高德地图') - } - // #endif --> - - // #ifdef APP-IOS - // 打开 AppStore 到搜索页 - openSchema('itms-apps://search.itunes.apple.com//WebObjects//MZSearch.woa/wa/search?media=software<erm=') - - // 打开 iOS 地图坐标 - openSchema('http://maps.apple.com/?q=Mexican+Restaurant&sll=50.894967,4.341626&z=10&t=s') - // #endif --> - - // #endif --> - ``` - -### 参数 - -- openSchema(url: string) // `url`:要打开的链接 `必填` `不为空字符串` - -## 相关开发文档 - -[UTS 语法](https://uniapp.dcloud.net.cn/tutorial/syntax-uts.html) - -[UTS API插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html) - -[UTS 组件插件](https://uniapp.dcloud.net.cn/plugin/uts-component.html) - -[Hello UTS](https://gitcode.net/dcloud/hello-uts) diff --git a/src/uni_modules/uts-openSchema/utssdk/app-android/config.json b/src/uni_modules/uts-openSchema/utssdk/app-android/config.json deleted file mode 100644 index bf95925..0000000 --- a/src/uni_modules/uts-openSchema/utssdk/app-android/config.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "minSdkVersion": "21" -} \ No newline at end of file diff --git a/src/uni_modules/uts-openSchema/utssdk/app-android/index.uts b/src/uni_modules/uts-openSchema/utssdk/app-android/index.uts deleted file mode 100644 index 9f9316f..0000000 --- a/src/uni_modules/uts-openSchema/utssdk/app-android/index.uts +++ /dev/null @@ -1,27 +0,0 @@ -import Intent from 'android.content.Intent' -import Uri from 'android.net.Uri' -import { OpenSchema, CanOpenURL } from '../interface.uts' - -export const openSchema : OpenSchema = function (url : string) { - if (canOpenURL(url)) { - const context = UTSAndroid.getUniActivity()! - const uri = Uri.parse(url) - const intent = new Intent(Intent.ACTION_VIEW, uri) - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - intent.setData(uri) - context.startActivity(intent) - } else { - console.error('[uts-openSchema] url param Error:', JSON.stringify(url)) - } -} - -export const canOpenURL : CanOpenURL = function (url : string) : boolean { - if (typeof url === 'string' && url.length > 0) { - const context = UTSAndroid.getUniActivity()! - const uri = Uri.parse(url) - const intent = new Intent(Intent.ACTION_VIEW, uri) - return intent.resolveActivity(context.packageManager) != null ? true : false - } else { - return false - } -} diff --git a/src/uni_modules/uts-openSchema/utssdk/app-harmony/index.uts b/src/uni_modules/uts-openSchema/utssdk/app-harmony/index.uts deleted file mode 100644 index b1fd020..0000000 --- a/src/uni_modules/uts-openSchema/utssdk/app-harmony/index.uts +++ /dev/null @@ -1,21 +0,0 @@ -import { bundleManager, common } from '@kit.AbilityKit'; -import OpenLinkOptions from '@ohos.app.ability.OpenLinkOptions' -import { getAbilityContext } from '@dcloudio/uni-runtime' -import { OpenSchema, CanOpenURL } from '../interface.uts' - - -export const openSchema : OpenSchema = function (url : string) : void { - (getAbilityContext() as common.UIAbilityContext)?.openLink(url, { - appLinkingOnly: false - } as OpenLinkOptions) -} - - -export const canOpenURL : CanOpenURL = function (url : string) : boolean { - try { - return bundleManager.canOpenLink(url) - } catch (error) { - console.error('[uts-openSchema] url param Error:', JSON.stringify(url)) - return false - } -} diff --git a/src/uni_modules/uts-openSchema/utssdk/app-ios/config.json b/src/uni_modules/uts-openSchema/utssdk/app-ios/config.json deleted file mode 100644 index f272043..0000000 --- a/src/uni_modules/uts-openSchema/utssdk/app-ios/config.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deploymentTarget": "12.0" -} \ No newline at end of file diff --git a/src/uni_modules/uts-openSchema/utssdk/app-ios/index.uts b/src/uni_modules/uts-openSchema/utssdk/app-ios/index.uts deleted file mode 100644 index 623df34..0000000 --- a/src/uni_modules/uts-openSchema/utssdk/app-ios/index.uts +++ /dev/null @@ -1,22 +0,0 @@ -import { UIApplication } from 'UIKit' -import { URL } from 'Foundation' -import { OpenSchema, CanOpenURL } from '../interface.uts' - -export const openSchema : OpenSchema = function (url : string) : void { - if (canOpenURL(url)) { - let uri = new URL(string = url) - UIApplication.shared.open(uri!) - } else { - console.error('[uts-openSchema] url param Error: ', url) - } -} - -export const canOpenURL : CanOpenURL = function (url : string) : boolean { - if (typeof url == 'string' && url.length > 0) { - let uri = new URL(string = url) - if (uri != null && UIApplication.shared.canOpenURL(uri!)) { - return true - } - } - return false -} diff --git a/src/uni_modules/uts-openSchema/utssdk/interface.uts b/src/uni_modules/uts-openSchema/utssdk/interface.uts deleted file mode 100644 index 1140d3c..0000000 --- a/src/uni_modules/uts-openSchema/utssdk/interface.uts +++ /dev/null @@ -1,2 +0,0 @@ -export type OpenSchema = (url : string) => void -export type CanOpenURL = (url : string) => boolean diff --git a/src/uni_modules/uts-openSchema/utssdk/web/index.uts b/src/uni_modules/uts-openSchema/utssdk/web/index.uts deleted file mode 100644 index 6e5419c..0000000 --- a/src/uni_modules/uts-openSchema/utssdk/web/index.uts +++ /dev/null @@ -1,12 +0,0 @@ -import { OpenSchema, CanOpenURL } from '../interface.uts' - -export const openSchema : OpenSchema = function (url : string) : void { - location.href = url; -} - -export const canOpenURL : CanOpenURL = function (url : string) : boolean { - if (url != "") { - return true; - } - return false; -} diff --git a/src/uni_modules/uts-progressNotification/changelog.md b/src/uni_modules/uts-progressNotification/changelog.md deleted file mode 100644 index b7caf4e..0000000 --- a/src/uni_modules/uts-progressNotification/changelog.md +++ /dev/null @@ -1,28 +0,0 @@ -## 1.1.2(2025-02-10) -修复某些情况通过点击通知消息无法拉起App的bug -## 1.1.1(2024-09-03) -去除TypeScript警告 -## 1.1.0(2024-03-08) -修复uniapp打包报错问题 -## 1.0.9(2024-02-29) -去除代码过时警告 -## 1.0.8(2023-12-21) -去除app-ios目录 -## 1.0.7(2023-12-11) -去除无用代码 -## 1.0.6(2023-12-11) -修改文档 -## 1.0.5(2023-12-11) -1.修改插件名称 -2.修改插件引入方式为import导入 -## 1.0.4(2023-11-30) -1. createNotificationProgress增加`onClick`回调 -2.修复在小米部分系统上,通知消息会归类于不重要通知的bug -## 1.0.3(2023-11-28) -更新截图 -## 1.0.2(2023-11-28) -修改资源的包名 -## 1.0.1(2023-11-28) -更新文档 -## 1.0.0(2023-11-28) -Android通知栏显示进度插件 diff --git a/src/uni_modules/uts-progressNotification/package.json b/src/uni_modules/uts-progressNotification/package.json deleted file mode 100644 index 9f2adb1..0000000 --- a/src/uni_modules/uts-progressNotification/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "id": "uts-progressNotification", - "displayName": "uts-progressNotification", - "version": "1.1.2", - "description": "uts-progressNotification", - "keywords": [ - "progressNotification" -], - "repository": "", - "engines": { - "HBuilderX": "^3.91" - }, - "dcloudext": { - "type": "uts", - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "插件不采集任何数据", - "permissions": "TargetSDKVersion33以上时需配置\n`android.permission.POST_NOTIFICATIONS`" - }, - "npmurl": "" - }, - "uni_modules": { - "dependencies": [], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y", - "alipay": "n" - }, - "client": { - "Vue": { - "vue2": "y", - "vue3": "y" - }, - "App": { - "app-android": { - "minVersion": "19" - }, - "app-ios": "n", - "app-harmony": "u" - }, - "H5-mobile": { - "Safari": "n", - "Android Browser": "n", - "微信浏览器(Android)": "n", - "QQ浏览器(Android)": "n" - }, - "H5-pc": { - "Chrome": "n", - "IE": "n", - "Edge": "n", - "Firefox": "n", - "Safari": "n" - }, - "小程序": { - "微信": "n", - "阿里": "n", - "百度": "n", - "字节跳动": "n", - "QQ": "n", - "钉钉": "n", - "快手": "n", - "飞书": "n", - "京东": "n" - }, - "快应用": { - "华为": "n", - "联盟": "n" - } - } - } - } -} diff --git a/src/uni_modules/uts-progressNotification/readme.md b/src/uni_modules/uts-progressNotification/readme.md deleted file mode 100644 index 87d8576..0000000 --- a/src/uni_modules/uts-progressNotification/readme.md +++ /dev/null @@ -1,71 +0,0 @@ -# uts-progressNotification - -## 使用说明 - -Android平台创建显示进度的通知栏消息 - -**注意: 需要自定义基座,否则点击通知栏消息不会拉起应用** - -### 导入 - -需要import导入插件 - -### createNotificationProgress(options : CreateNotificationProgressOptions) : void, - -创建显示进度的通知栏消息 - -参数说明 - -``` -export type CreateNotificationProgressOptions = { - /** - * 通知标题 - * @defaultValue 应用名称 - */ - title ?: string | null - /** - * 通知内容 - */ - content : string, - /** - * 进度 - */ - progress : number, - /** - * 点击通知消息回调 - * @defaultValue null - */ - onClick? : (() => void) | null -} -``` - -### finishNotificationProgress(options: FinishNotificationProgressOptions) : void - -完成时调用的API,比如下载完成后需要显示下载完成并隐藏进度时调用。 - -参数说明 - - -``` -export type FinishNotificationProgressOptions = { - /** - * 通知标题 - * @defaultValue 应用名称 - */ - title ?: string | null - /** - * 通知内容 - */ - content : string, - /** - * 点击通知消息回调 - */ - onClick : () => void -} -``` - - -### cancelNotificationProgress() : void - -取消通知消息显示 - diff --git a/src/uni_modules/uts-progressNotification/utssdk/app-android/AndroidManifest.xml b/src/uni_modules/uts-progressNotification/utssdk/app-android/AndroidManifest.xml deleted file mode 100644 index 93749e9..0000000 --- a/src/uni_modules/uts-progressNotification/utssdk/app-android/AndroidManifest.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/src/uni_modules/uts-progressNotification/utssdk/app-android/TransparentActivity.uts b/src/uni_modules/uts-progressNotification/utssdk/app-android/TransparentActivity.uts deleted file mode 100644 index be33350..0000000 --- a/src/uni_modules/uts-progressNotification/utssdk/app-android/TransparentActivity.uts +++ /dev/null @@ -1,62 +0,0 @@ -import Activity from "android.app.Activity"; -import Bundle from 'android.os.Bundle'; -import Build from 'android.os.Build'; -import View from 'android.view.View'; -import Color from 'android.graphics.Color'; -import WindowManager from 'android.view.WindowManager'; -import { getGlobalNotificationProgressCallBack, getGlobalNotificationProgressFinishCallBack, setGlobalNotificationProgressCallBack, setGlobalNotificationProgressFinishCallBack} from './callbacks.uts'; -import { ACTION_DOWNLOAD_FINISH, ACTION_DOWNLOAD_PROGRESS } from "./constant.uts" - - -export class TransparentActivity extends Activity { - constructor() { - super() - } - - @Suppress("DEPRECATION") - override onCreate(savedInstanceState : Bundle | null) { - super.onCreate(savedInstanceState) - this.fullScreen(this) - const action = this.getIntent().getAction() - if (action == ACTION_DOWNLOAD_FINISH) { - setTimeout(() => { - getGlobalNotificationProgressFinishCallBack()?.() - setGlobalNotificationProgressFinishCallBack(() => { }) - }, 100) - this.overridePendingTransition(0, 0) - } - - if (action == ACTION_DOWNLOAD_PROGRESS) { - setTimeout(() => { - getGlobalNotificationProgressCallBack()?.() - setGlobalNotificationProgressCallBack(() => { }) - }, 100) - this.overridePendingTransition(0, 0) - } - - setTimeout(() => { - this.finish() - }, 20) - } - - - @Suppress("DEPRECATION") - private fullScreen(activity : Activity) { - if (Build.VERSION.SDK_INT >= 19) { - if (Build.VERSION.SDK_INT >= 21) { - const window = activity.getWindow(); - const decorView = window.getDecorView(); - const option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; - decorView.setSystemUiVisibility(option); - window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); - window.setStatusBarColor(Color.TRANSPARENT); - } else { - const window = activity.getWindow(); - const attributes = window.getAttributes(); - const flagTranslucentStatus = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS; - attributes.flags |= flagTranslucentStatus; - window.setAttributes(attributes); - } - } - } -} diff --git a/src/uni_modules/uts-progressNotification/utssdk/app-android/callbacks.uts b/src/uni_modules/uts-progressNotification/utssdk/app-android/callbacks.uts deleted file mode 100644 index 68991d2..0000000 --- a/src/uni_modules/uts-progressNotification/utssdk/app-android/callbacks.uts +++ /dev/null @@ -1,19 +0,0 @@ -let globalNotificationProgressCallBack : (() => void) | null = () => { } -let globalNotificationProgressFinishCallBack : (() => void) | null = () => { } - -export function setGlobalNotificationProgressCallBack(callBack : (() => void) | null) : void { - globalNotificationProgressCallBack = callBack -} - -export function getGlobalNotificationProgressCallBack() : (() => void) | null { - return globalNotificationProgressCallBack -} - - -export function setGlobalNotificationProgressFinishCallBack(callBack : (() => void) | null) : void { - globalNotificationProgressFinishCallBack = callBack -} - -export function getGlobalNotificationProgressFinishCallBack() : (() => void) | null { - return globalNotificationProgressFinishCallBack -} diff --git a/src/uni_modules/uts-progressNotification/utssdk/app-android/config.json b/src/uni_modules/uts-progressNotification/utssdk/app-android/config.json deleted file mode 100644 index 7deedfa..0000000 --- a/src/uni_modules/uts-progressNotification/utssdk/app-android/config.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "minSdkVersion": "19" -} \ No newline at end of file diff --git a/src/uni_modules/uts-progressNotification/utssdk/app-android/constant.uts b/src/uni_modules/uts-progressNotification/utssdk/app-android/constant.uts deleted file mode 100644 index 8652ac4..0000000 --- a/src/uni_modules/uts-progressNotification/utssdk/app-android/constant.uts +++ /dev/null @@ -1,2 +0,0 @@ -export const ACTION_DOWNLOAD_FINISH = "ACTION_DOWNLOAD_FINISH" -export const ACTION_DOWNLOAD_PROGRESS = "ACTION_DOWNLOAD_PROGRESS" \ No newline at end of file diff --git a/src/uni_modules/uts-progressNotification/utssdk/app-android/index.uts b/src/uni_modules/uts-progressNotification/utssdk/app-android/index.uts deleted file mode 100644 index ac66a3a..0000000 --- a/src/uni_modules/uts-progressNotification/utssdk/app-android/index.uts +++ /dev/null @@ -1,156 +0,0 @@ -import Build from 'android.os.Build'; -import Context from 'android.content.Context'; -import NotificationManager from 'android.app.NotificationManager'; -import NotificationChannel from 'android.app.NotificationChannel'; -import Notification from 'android.app.Notification'; -import Intent from 'android.content.Intent'; -import ComponentName from 'android.content.ComponentName'; -import PendingIntent from 'android.app.PendingIntent'; -import { CreateNotificationProgressOptions, FinishNotificationProgressOptions } from '../interface.uts'; -import { ACTION_DOWNLOAD_FINISH, ACTION_DOWNLOAD_PROGRESS } from "./constant.uts" - -import { setGlobalNotificationProgressCallBack, setGlobalNotificationProgressFinishCallBack } from './callbacks.uts'; - -export { TransparentActivity } from './TransparentActivity.uts'; - - -const DOWNLOAD_PROGRESS_NOTIFICATION_ID : Int = 7890 -const DC_DOWNLOAD_CHANNEL_ID = "下载文件" -const DC_DOWNLOAD_CHANNEL_NAME = "用于显示现在进度的渠道" - - -let notificationBuilder : Notification.Builder | null = null - -let timeId = -1 - -let histroyProgress = 0 - -let isProgress = false - - - -export function createNotificationProgress(options : CreateNotificationProgressOptions) : void { - const { content, progress, onClick } = options - - if (progress == 100) { - clearTimeout(timeId) - const context = UTSAndroid.getAppContext() as Context - realCreateNotificationProgress(options.title ?? getAppName(context), content, progress, onClick) - reset() - return - } - - histroyProgress = progress - if (timeId != -1) { - return - } - - const context = UTSAndroid.getAppContext() as Context - if (!isProgress) { - realCreateNotificationProgress(options.title ?? getAppName(context), content, histroyProgress, onClick) - isProgress = true - } else { - timeId = setTimeout(() => { - realCreateNotificationProgress(options.title ?? getAppName(context), content, histroyProgress, onClick) - timeId = -1 - }, 1000) - } -} - - -export function cancelNotificationProgress() : void { - const context = UTSAndroid.getAppContext() as Context - const notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager - notificationManager.cancel(DOWNLOAD_PROGRESS_NOTIFICATION_ID) - reset() -} - - -function realCreateNotificationProgress(title : string, content : string, progress : number, cb : (() => void) | null) : void { - setGlobalNotificationProgressCallBack(cb) - const context = UTSAndroid.getAppContext() as Context - const notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager - createDownloadChannel(notificationManager) - const builder = createNotificationBuilder(context) - builder.setProgress(100, progress.toInt(), false) - builder.setContentTitle(title) - builder.setContentText(content) - builder.setContentIntent(createPendingIntent(context, ACTION_DOWNLOAD_PROGRESS)); - notificationManager.notify(DOWNLOAD_PROGRESS_NOTIFICATION_ID, builder.build()) -} - - -export function finishNotificationProgress(options : FinishNotificationProgressOptions) { - setGlobalNotificationProgressFinishCallBack(options.onClick) - const context = UTSAndroid.getAppContext() as Context - const notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager - createDownloadChannel(notificationManager) - const builder = createNotificationBuilder(context) - builder.setProgress(0, 0, false) - builder.setContentTitle(options.title ?? getAppName(context)) - builder.setContentText(options.content) - //小米rom setOngoing未false的时候,会被通知管理器归为不重要通知 - // builder.setOngoing(false) - builder.setAutoCancel(true); - builder.setContentIntent(createPendingIntent(context, ACTION_DOWNLOAD_FINISH)); - notificationManager.notify(DOWNLOAD_PROGRESS_NOTIFICATION_ID, builder.build()) - reset() -} - -function reset() { - isProgress = false - notificationBuilder = null - histroyProgress = 0 - if (timeId != -1) { - clearTimeout(timeId) - timeId = -1 - } -} - -function createPendingIntent(context : Context, action : string) : PendingIntent { - const intent = new Intent(action); - intent.setComponent(new ComponentName(context.getPackageName(), "uts.sdk.modules.utsProgressNotification.TransparentActivity")); - let flags = PendingIntent.FLAG_UPDATE_CURRENT; - if (Build.VERSION.SDK_INT >= 23) { - flags = PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE; - } - return PendingIntent.getActivity(context, DOWNLOAD_PROGRESS_NOTIFICATION_ID, intent, flags); -} - -function createDownloadChannel(notificationManager : NotificationManager) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - const channel = new NotificationChannel( - DC_DOWNLOAD_CHANNEL_ID, - DC_DOWNLOAD_CHANNEL_NAME, - NotificationManager.IMPORTANCE_LOW - ) - notificationManager.createNotificationChannel(channel) - } -} -@Suppress("DEPRECATION") -function createNotificationBuilder(context : Context) : Notification.Builder { - if (notificationBuilder == null) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - notificationBuilder = new Notification.Builder(context, DC_DOWNLOAD_CHANNEL_ID) - } else { - notificationBuilder = new Notification.Builder(context) - } - notificationBuilder!.setSmallIcon(context.getApplicationInfo().icon) - notificationBuilder!.setOngoing(true) - notificationBuilder!.setSound(null) - } - return notificationBuilder! -} - -@Suppress("DEPRECATION") -function getAppName(context : Context) : string { - let appName = "" - try { - const packageManager = context.getPackageManager() - const applicationInfo = packageManager.getApplicationInfo(context.getPackageName(), 0) - appName = packageManager.getApplicationLabel(applicationInfo) as string - } catch (e : Exception) { - e.printStackTrace() - } - return appName -} diff --git a/src/uni_modules/uts-progressNotification/utssdk/app-android/res/values/notification_progress_styles.xml b/src/uni_modules/uts-progressNotification/utssdk/app-android/res/values/notification_progress_styles.xml deleted file mode 100644 index cc01105..0000000 --- a/src/uni_modules/uts-progressNotification/utssdk/app-android/res/values/notification_progress_styles.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/uni_modules/uts-progressNotification/utssdk/interface.uts b/src/uni_modules/uts-progressNotification/utssdk/interface.uts deleted file mode 100644 index 9570353..0000000 --- a/src/uni_modules/uts-progressNotification/utssdk/interface.uts +++ /dev/null @@ -1,46 +0,0 @@ -export type CreateNotificationProgressOptions = { - /** - * 通知标题 - * @defaultValue 应用名称 - */ - title ?: string | null - /** - * 通知内容 - */ - content : string, - /** - * 进度 - */ - progress : number, - /** - * 点击通知消息回调 - * @defaultValue null - */ - onClick? : (() => void) | null -} - - -export type FinishNotificationProgressOptions = { - /** - * 通知标题 - * @defaultValue 应用名称 - */ - title ?: string | null - /** - * 通知内容 - */ - content : string, - /** - * 点击通知消息回调 - */ - onClick : () => void -} - - -export type CreateNotificationProgress = (options : CreateNotificationProgressOptions) => void; - - -export type CancelNotificationProgress = () => void; - - -export type FinishNotificationProgress = (options: FinishNotificationProgressOptions) => void diff --git a/src/uni_modules/uts-progressNotification/utssdk/unierror.uts b/src/uni_modules/uts-progressNotification/utssdk/unierror.uts deleted file mode 100644 index e69de29..0000000 diff --git a/src/utils/UpdateManager.js b/src/utils/UpdateManager.js index 23e1736..29b7619 100644 --- a/src/utils/UpdateManager.js +++ b/src/utils/UpdateManager.js @@ -1,83 +1,27 @@ -// #ifdef APP-PLUS -import checkUpdate from "@/uni_modules/uni-upgrade-center-app/utils/check-update"; -// #endif - -let isCheckingAppUpdate = false; -let hasRegisteredMiniProgramUpdate = false; -const APP_UPDATE_CHECK_TIMEOUT = 30000; - -const formatUpdateError = (error) => { - if (!error) return ""; - if (typeof error === "string") return error; - return error.message || error.errMsg || JSON.stringify(error); -}; - -export const checkMiniProgramUpdate = () => { +export const updateManager = () => { // #ifdef MP-WEIXIN || MP-TOUTIAO - if (hasRegisteredMiniProgramUpdate) return; - hasRegisteredMiniProgramUpdate = true; - - const miniProgramUpdateManager = uni.getUpdateManager(); + const updateManager = uni.getUpdateManager(); // 当向小程序后台请求完新版本信息,会进行回调 - miniProgramUpdateManager.onCheckForUpdate((res) => { + updateManager.onCheckForUpdate((res) => { console.log("onCheckForUpdate res:", res.hasUpdate); }); // 当新版本下载完成,会进行回调 - miniProgramUpdateManager.onUpdateReady(() => { + updateManager.onUpdateReady(() => { uni.showModal({ title: "更新提示", content: "新版本已经准备好,是否重启应用?", success: (res) => { if (res.confirm) { // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 - miniProgramUpdateManager.applyUpdate(); + updateManager.applyUpdate(); } }, }); }); // 当新版本下载失败,会进行回调 - miniProgramUpdateManager.onUpdateFailed(() => {}); + updateManager.onUpdateFailed(() => {}); // #endif }; - -export const checkAppUpdate = () => { - // #ifdef APP-PLUS - if (isCheckingAppUpdate) return Promise.resolve(null); - - isCheckingAppUpdate = true; - - return new Promise((resolve) => { - let finished = false; - const finish = (result = null) => { - if (finished) return; - finished = true; - clearTimeout(timeoutTimer); - isCheckingAppUpdate = false; - resolve(result); - }; - - const timeoutTimer = setTimeout(() => { - finish(); - }, APP_UPDATE_CHECK_TIMEOUT); - - checkUpdate() - .then(finish) - .catch((error) => { - console.warn("App更新检查失败:", formatUpdateError(error)); - finish(); - }); - }); - // #endif - - // #ifndef APP-PLUS - return Promise.resolve(null); - // #endif -}; - -export const updateManager = () => { - checkMiniProgramUpdate(); - return checkAppUpdate(); -};