1/*
2 * Copyright (C) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15import UIAbility from '@ohos.app.ability.UIAbility';
16import hilog from '@ohos.hilog';
17import window from '@ohos.window';
18import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl';
19
20export default class EntryAbility extends UIAbility {
21  onCreate(want, launchParam) {
22    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
23    globalThis.abilityWant = want;
24    globalThis.context = this.context;
25    globalThis.abilityLaunchParam = launchParam;
26  }
27
28  onDestroy() {
29    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy');
30  }
31
32  onWindowStageCreate(windowStage: window.WindowStage) {
33    // Main window is created, set main page for this ability
34    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
35
36    globalThis.windowStage = windowStage;
37    globalThis.abilityContext = this.context;
38    globalThis.setUIContent(this.context, 'pages/Index', null);
39    windowStage.loadContent('pages/Index', (err, data) => {
40      if (err.code) {
41        hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
42        return;
43      }
44      hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');
45
46      let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
47      let permission: Array<Permissions> = ["ohos.permission.CAMERA"];
48      try {
49        atManager.requestPermissionsFromUser(this.context, permission).then((data) => {
50          console.error('SUB_Access_Token_CheckPermission_0100 data:' + JSON.stringify(data));
51        }).catch((err) => {
52          console.error('SUB_Access_Token_CheckPermission_0100 error' + err);
53        })
54      } catch (error) {
55        console.error('SUB_Access_Token_CheckPermission_0100 error1' + error);
56      }
57    });
58  }
59
60  onWindowStageDestroy() {
61    // Main window is destroyed, release UI related resources
62    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
63  }
64
65  onForeground() {
66    // Ability has brought to foreground
67    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground');
68  }
69
70  onBackground() {
71    // Ability has back to background
72    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');
73  }
74};
75