app.component.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. import { Component, HostListener, OnInit } from '@angular/core';
  2. import { IonApp, IonRouterOutlet } from '@ionic/angular/standalone';
  3. import Parse from 'parse';
  4. import { StatusBar, Style, StatusBarStyle } from '@capacitor/status-bar';
  5. import { BackgroundColorService } from '../services/background-color.service';
  6. import { Router } from '@angular/router';
  7. // 添加IonIcons
  8. import { addIcons } from 'ionicons';
  9. import * as icons from 'ionicons/icons';
  10. addIcons(icons)
  11. import { SafariViewController } from '@ionic-native/safari-view-controller/ngx';
  12. import { UpdateService } from '../services/update.service';
  13. // import { ConnectTaskService } from '../services/connectTask.service';
  14. @Component({
  15. selector: 'app-root',
  16. standalone: true,
  17. imports: [IonApp, IonRouterOutlet],
  18. templateUrl: './app.component.html',
  19. styleUrl: './app.component.scss',
  20. providers: [SafariViewController],
  21. })
  22. export class AppComponent implements OnInit {
  23. title = 'live-app';
  24. // @HostListener("document:visibilitychange", ["$event"])
  25. // onvisibilitychange(event) {
  26. // let isExits = event.target.visibilityState
  27. // if (isExits == 'visible') {
  28. // if(Parse.User.current()?.id){
  29. // this.connectTask.init();
  30. // }
  31. // console.log('进入该页面')
  32. // } else {
  33. // console.log('离开该页面')
  34. // }
  35. // }
  36. constructor(
  37. private router: Router,
  38. private updateServ:UpdateService,
  39. private backgroundColorService: BackgroundColorService,
  40. // private connectTask: ConnectTaskService,
  41. ) {
  42. this.initParseService();
  43. this.initStatusBar();
  44. this.updateServ.updateVersion()
  45. }
  46. ngOnInit() {
  47. // 初始化状态栏背景色
  48. this.setStatusBarColor();
  49. // 监听路由变化
  50. this.router.events.subscribe((event) => {
  51. if (event.constructor.name === 'NavigationEnd') {
  52. this.setStatusBarColor();
  53. }
  54. });
  55. }
  56. initParseService() {
  57. Parse.initialize('ncloudmaster');
  58. (Parse as any).serverURL = 'https://server.fmode.cn/parse';
  59. localStorage.setItem('company', 'Qje9D4bqol');
  60. this.saveParamsInvite();
  61. }
  62. saveParamsInvite() {
  63. let searchParams = this.searchParse();
  64. let invite = searchParams?.get('invite');
  65. invite && localStorage.setItem('invite', invite);
  66. }
  67. searchParse(url?: string): URLSearchParams {
  68. url = url || location.href;
  69. let u = new URL(url);
  70. return u.searchParams;
  71. }
  72. async initStatusBar() {
  73. try {
  74. // 设置状态栏为沉浸式模式
  75. // await StatusBar.setOverlaysWebView({ overlay: true });
  76. // 设置状态栏样式(可选)
  77. await StatusBar.setStyle({ style: StatusBarStyle.Light });
  78. // 设置状态栏背景颜色(可选)
  79. // await StatusBar.setBackgroundColor({ color: '#000000' });
  80. } catch (error) {
  81. console.warn('设置状态栏时出错:', error);
  82. }
  83. }
  84. async setStatusBarColor() {
  85. try {
  86. // 获取当前页面的背景色
  87. const backgroundColor = this.backgroundColorService.getBackgroundColor();
  88. // 设置状态栏背景色
  89. await StatusBar.setBackgroundColor({ color: backgroundColor });
  90. } catch (error) {
  91. console.warn('设置状态栏背景色时出错:', error);
  92. }
  93. }
  94. }