app.component.ts 3.0 KB

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