AppUpdate.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { _decorator, Component, ProgressBar } from 'cc';
  2. import { Http } from '../core/net/Http';
  3. import { Window } from '../core/ui/window/Window';
  4. import { WindowManager } from '../core/ui/window/WindowManager';
  5. import { WindowSystem } from '../core/ui/window/WindowSystem';
  6. import { Utils } from '../core/utils/Utils';
  7. import { g } from '../Data/g';
  8. import { ISJSB, platform } from '../Data/platform';
  9. const { ccclass, property } = _decorator;
  10. @ccclass('AppUpdate')
  11. export class AppUpdate extends Component {
  12. @property({ tooltip: "网络请求对象", type: Http })
  13. public http: Http;
  14. @property({ type: ProgressBar, tooltip: "加载进度条组件" })
  15. public progressBar: ProgressBar;
  16. public versionIsNew: number = -1;
  17. public async checkNativeVersion(version: string) {
  18. let versionData = await this.http.send("/version", { game: "sim-nc", channel: g.deviceData.channel });
  19. if (versionData && versionData.code == 0) {
  20. this.versionIsNew = Utils.compareVersion(version, versionData.data.version);
  21. console.log("是否是最新" + this.versionIsNew);
  22. this.versionIsNew == -1 && this.downloadAPK(versionData.data.apk);//如果版本较老则下载APK
  23. } else {
  24. WindowManager.showTips("网络连接超时,请检查网络");
  25. }
  26. }
  27. public downloadAPK(url: string) {
  28. if (ISJSB) {//1.0.6版本升级特殊处理,需要重新进行微信登录
  29. localStorage.removeItem("account");
  30. }
  31. g.deviceData.apkDownloading = true;
  32. platform.downloadAPK(url, "sim-nc.apk");
  33. }
  34. public setDownloadAPKProgress() {
  35. //根据APK下载进度设置UI
  36. this.progressBar.progress = g.deviceData.downloadAPKProgress;
  37. }
  38. }