EntryAbility.ets 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit';
  2. import { hilog } from '@kit.PerformanceAnalysisKit';
  3. import { window } from '@kit.ArkUI';
  4. import { WindowHelper } from '../utils/WindowHelper';
  5. import { IBestInit } from '@ibestservices/ibest-ui';
  6. import { AppStorageKeyCollect } from '../constants';
  7. import { WechatUtil } from '../utils/wechat/WechatUtil';
  8. import { YTLog } from '../utils/YTLog';
  9. import { wechatEventHandler } from '../utils/wechat/WXApiEventHandlerImpl';
  10. const TAG: string = '[EntryAbility]';
  11. const DOMAIN = 0x0000;
  12. export default class EntryAbility extends UIAbility {
  13. onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
  14. try {
  15. this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET);
  16. WechatUtil.init()
  17. } catch (err) {
  18. hilog.error(DOMAIN, 'testTag', 'Failed to set colorMode. Cause: %{public}s', JSON.stringify(err));
  19. }
  20. hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate');
  21. }
  22. onDestroy(): void {
  23. hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onDestroy');
  24. }
  25. onWindowStageCreate(windowStage: window.WindowStage): void {
  26. // Main window is created, set main page for this ability
  27. hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
  28. windowStage.loadContent('/pages/EntryPage'.slice(1), (err) => {
  29. if (err.code) {
  30. hilog.error(DOMAIN, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err));
  31. return;
  32. }
  33. WindowHelper.init(windowStage)
  34. IBestInit(windowStage, this.context)
  35. PersistentStorage.persistProp(AppStorageKeyCollect.FIRST_ENTER_APP, false)
  36. let isFirst = AppStorage.get<boolean>(AppStorageKeyCollect.FIRST_ENTER_APP)
  37. if (isFirst) {
  38. windowStage.loadContent('/pages/Index'.slice(1))
  39. }
  40. hilog.info(DOMAIN, 'testTag', 'Succeeded in loading the content.');
  41. });
  42. }
  43. onWindowStageDestroy(): void {
  44. // Main window is destroyed, release UI related resources
  45. hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
  46. }
  47. onForeground(): void {
  48. // Ability has brought to foreground
  49. hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onForeground');
  50. }
  51. onBackground(): void {
  52. // Ability has back to background
  53. hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onBackground');
  54. }
  55. onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {
  56. hilog.info(0x0000, 'testTag', '', 'Ability onNewWant');
  57. console.log('PushManager noNewWant===', JSON.stringify(want.parameters?.data));
  58. YTLog.info(TAG, 'EntryAbility onNewWant');
  59. YTLog.info(TAG, `onNewWant parameters: ${JSON.stringify(want.parameters)}`);
  60. YTLog.info(TAG, `onNewWant full Want: ${JSON.stringify(want)}`);
  61. this.handleWeChatCallIfNeed(want);
  62. }
  63. private handleWeChatCallIfNeed(want: Want) {
  64. YTLog.info(TAG, `Handling WeChat callback: ${JSON.stringify(want)}`);
  65. const handled = WechatUtil.getWechatApi().handleWant(want, wechatEventHandler);
  66. YTLog.info(TAG, `WXApi.handleWant result: ${handled}, eventHandler: ${wechatEventHandler ? 'exists' : 'null'}`);
  67. }
  68. }