feat(更新服务): 添加应用自动更新功能
- 在首页添加应用版本检查和更新功能 - 新增updateService.js实现版本比较、下载安装和更新提示 - 支持Android和iOS平台的更新处理
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
|
||||
<script>
|
||||
import { getTopSafeAreaHeightAsync } from '@utils/common';
|
||||
import { checkUpdate, downloadAndInstallUpdate, showUpdateDialog } from '@utils/updateService';
|
||||
const TYPE_EMUE = {
|
||||
CONNECT: 0,
|
||||
DATA: 1,
|
||||
@@ -22,11 +23,15 @@
|
||||
iframeUrl: '', // 动态构建的 URL
|
||||
receivedMessages: [],
|
||||
messageId: 0,
|
||||
urlParams: {}
|
||||
urlParams: {},
|
||||
appVersion: '1.0.0',
|
||||
updateApiUrl: 'https://ckbapi.quwanzhi.com/app/update?type=ai_store' // 更新检查API地址
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.sendBaseConfig()
|
||||
// 检查更新
|
||||
this.checkAppUpdate()
|
||||
},
|
||||
methods: {
|
||||
// 构建 iframe URL,包含参数
|
||||
@@ -51,7 +56,7 @@
|
||||
paddingTop: await getTopSafeAreaHeightAsync(),
|
||||
appId: '1234567890',
|
||||
appName: '存客宝',
|
||||
appVersion: '1.0.0',
|
||||
appVersion: this.appVersion,
|
||||
isAppMode:true
|
||||
}
|
||||
};
|
||||
@@ -92,7 +97,67 @@
|
||||
console.log('Webview 缓存已清除');
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* 检查应用更新
|
||||
*/
|
||||
checkAppUpdate() {
|
||||
console.log('检查应用更新...');
|
||||
checkUpdate({
|
||||
currentVersion: this.appVersion,
|
||||
apiUrl: this.updateApiUrl,
|
||||
onSuccess: (result) => {
|
||||
if (result.hasUpdate) {
|
||||
console.log(`发现新版本: ${result.version}`);
|
||||
// 显示更新对话框
|
||||
showUpdateDialog(result, () => {
|
||||
this.downloadUpdate(result.downloadUrl);
|
||||
});
|
||||
} else {
|
||||
console.log('当前已是最新版本');
|
||||
}
|
||||
},
|
||||
onError: (errorMsg, error) => {
|
||||
console.error(`检查更新失败: ${errorMsg}`, error);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* 下载并安装更新
|
||||
* @param {String} downloadUrl 下载地址
|
||||
*/
|
||||
downloadUpdate(downloadUrl) {
|
||||
// 显示下载进度
|
||||
uni.showLoading({
|
||||
title: '正在下载更新...',
|
||||
mask: true
|
||||
});
|
||||
|
||||
downloadAndInstallUpdate({
|
||||
downloadUrl,
|
||||
onProgress: (progress) => {
|
||||
uni.showLoading({
|
||||
title: `正在下载更新...${progress}%`,
|
||||
mask: true
|
||||
});
|
||||
},
|
||||
onSuccess: () => {
|
||||
uni.hideLoading();
|
||||
// 安装成功或跳转到应用商店成功
|
||||
console.log('更新下载成功,准备安装');
|
||||
},
|
||||
onError: (errorMsg, error) => {
|
||||
uni.hideLoading();
|
||||
console.error(`更新失败: ${errorMsg}`, error);
|
||||
uni.showToast({
|
||||
title: `更新失败: ${errorMsg}`,
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user