• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @system.app (应用上下文)
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @liyujie43-->
5<!--Designer: @weixin_52725220-->
6<!--Tester: @xiong0104-->
7<!--Adviser: @HelloCrease-->
8
9> **说明:**
10>
11> 本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
12
13
14## 导入模块
15
16
17```ts
18import app, { AppResponse } from '@system.app';
19```
20
21## App
22
23### getInfo
24
25static getInfo(): AppResponse
26
27获取当前应用配置文件中声明的信息。在Stage模型下接口返回值为null。
28
29从API Version9开始,推荐使用[bundleManager.getBundleInfoForSelf](../apis-ability-kit/js-apis-bundleManager.md#bundlemanagergetbundleinfoforself)。
30
31**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
32
33**系统能力:** SystemCapability.ArkUI.ArkUI.Lite
34
35**返回值:**
36
37| 参数类型 | 说明 |
38| -------- | -------- |
39| [AppResponse](#appresponse) | 定义AppResponse信息。 |
40
41**示例:**
42
43```ts
44import app, { AppResponse } from '@system.app';
45export default class Info {
46  getInfo() {
47    let info:AppResponse = app.getInfo();
48    console.log(JSON.stringify(info));
49  }
50}
51```
52
53### terminate
54
55static terminate(): void
56
57退出当前Ability。在Stage模型下接口功能不生效。
58
59从API Version 7开始,推荐使用[`@ohos.ability.featureAbility`](../apis-ability-kit/js-apis-ability-featureAbility.md)。
60
61**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
62
63**系统能力:** SystemCapability.ArkUI.ArkUI.Lite
64
65**示例:**
66
67```ts
68import app, { AppResponse } from '@system.app';
69export default class TerM {
70  terminate() {
71    app.terminate();
72  }
73}
74```
75### setImageCacheCount<sup>7+</sup>
76
77static setImageCacheCount(value: number): void
78
79设置内存中缓存解码后图片的数量上限,提升再次加载同源图片的加载速度。如果不设置则默认为0,不进行缓存。缓存采用内置的LRU策略,新图片加载后,如果超过缓存上限,会删除最久未再次加载的缓存。建议根据应用内存需求,设置合理缓存数量,数字过大可能导致内存使用过高。
80
81setImageCacheCount方法需要在@Entry标记的页面,[onPageShow](../apis-arkui/arkui-ts/ts-custom-component-lifecycle.md#onpageshow)或[aboutToAppear](../apis-arkui/arkui-ts/ts-custom-component-lifecycle.md#abouttoappear)里面设置才生效。
82
83setImageCacheCount、setImageRawDataCacheSize、和setImageFileCacheSize并不灵活,后续不继续演进,对于复杂情况,更推荐使用[ImageKnife](https://gitee.com/openharmony-tpc/ImageKnife)84
85**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
86
87**系统能力:** SystemCapability.ArkUI.ArkUI.Full
88
89**参数:**
90
91| 参数名 | 类型 | 必填 | 说明 |
92| -------- | -------- | -------- | -------- |
93| value | number | 是 | 内存中解码后图片的缓存数量。number取值需大于0。 |
94
95**示例:**
96
97```ts
98// xxx.ets
99import app, { AppResponse } from '@system.app';
100
101@Entry
102@Component
103struct Index {
104  onPageShow() {
105    // 设置解码后图片内存缓存上限为100张
106    app.setImageCacheCount(100);
107    console.info('Application onPageShow');
108  }
109  onDestroy() {
110    console.info('Application onDestroy');
111  }
112
113  build() {
114    Row(){
115      // xxxxxxxxxxxxx为图片地址
116      Image('xxxxxxxxxxxxx')
117        .width(200)
118        .height(50)
119    }.width('100%')
120  }
121}
122```
123
124### setImageRawDataCacheSize<sup>7+</sup>
125
126static setImageRawDataCacheSize(value: number): void
127
128设置内存中缓存解码前图片数据的大小上限,单位为字节,提升再次加载同源图片的加载速度。如果不设置则默认为0,不进行缓存。缓存采用内置的LRU策略,新图片加载后,如果解码前数据超过缓存上限,会删除最久未再次加载的图片数据缓存。建议根据应用内存需求,设置合理缓存上限,过大可能导致应用内存使用过高。
129
130setImageRawDataCacheSize方法需要在@Entry标记的页面,[onPageShow](../apis-arkui/arkui-ts/ts-custom-component-lifecycle.md#onpageshow)或[aboutToAppear](../apis-arkui/arkui-ts/ts-custom-component-lifecycle.md#abouttoappear)里面设置才生效。
131
132**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
133
134**系统能力:** SystemCapability.ArkUI.ArkUI.Full
135
136**参数:**
137
138| 参数名 | 类型 | 必填 | 说明 |
139| -------- | -------- | -------- | -------- |
140| value | number | 是 | 内存中解码前图片数据的缓存大小,单位为字节。number取值需大于0。 |
141
142**示例:**
143
144```ts
145// xxx.ets
146import app, { AppResponse } from '@system.app';
147
148@Entry
149@Component
150struct Index {
151  onPageShow() {
152    // 设置解码前图片数据内存缓存上限为100MB (100MB=100*1024*1024B=104857600B)
153    app.setImageRawDataCacheSize(104857600);
154    console.info('Application onPageShow');
155  }
156  onDestroy() {
157    console.info('Application onDestroy');
158  }
159
160  build() {
161    Row(){
162      // xxxxxxxxxxxxx为图片地址
163      Image('xxxxxxxxxxxxx')
164        .width(200)
165        .height(50)
166    }.width('100%')
167  }
168}
169```
170
171### setImageFileCacheSize<sup>7+</sup>
172
173static setImageFileCacheSize(value: number): void
174
175设置图片文件缓存的大小上限,单位为字节,提升再次加载同源图片的加载速度,特别是对网络图源会有较明显提升。如果不设置则默认为100MB。缓存采用内置的LRU策略,新图片加载后,如果超过文件缓存上限,会按照时间由远到近删除缓存图片文件直到缓存图片大小满足缓存上限。建议根据应用实际需求,设置合理文件缓存上限,数字过大可能导致磁盘空间占用过高。
176
177**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
178
179**系统能力:** SystemCapability.ArkUI.ArkUI.Full
180
181**参数:**
182
183| 参数名 | 类型 | 必填 | 说明 |
184| -------- | -------- | -------- | -------- |
185| value | number | 是 | 图片文件的缓存大小,单位为字节。number取值需大于0。 |
186
187**示例:**
188
189```ts
190// app.ets
191import app, { AppResponse } from '@system.app';
192
193export default class OnC {
194  onCreate() {
195    app.setImageFileCacheSize(209715200);
196    // 设置图片文件数据缓存上限为200MB (200MB=200*1024*1024B=209715200B)
197    console.info('Application onCreate');
198  }
199  onDestroy() {
200    console.info('Application onDestroy');
201  }
202}
203```
204
205### ScreenOnVisible<sup>(deprecated)</sup>
206
207static screenOnVisible(options?: ScreenOnVisibleOptions):&nbsp;void
208
209定义屏幕唤醒时是否保持应用可见。
210
211该接口从API Version 8 开始废弃。
212
213**系统能力:**  以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full
214
215| 名称    | 类型                                              | 必填 | 说明                                                         |
216| ------- | ------------------------------------------------- | ---- | ------------------------------------------------------------ |
217| options | [ScreenOnVisibleOptions](#screenonvisibleoptions) | 否   | 当启动保活时,锁屏时将阻止系统返回桌面显示,以保持屏幕唤醒时应用可见。 |
218
219### requestFullWindow<sup>(deprecated)</sup>
220
221static requestFullWindow(options?: RequestFullWindowOptions): void
222
223请求应用以全窗口运行,FA在某些场景下(如半模态FA)会以非全窗口运行,调用该接口会从非全窗口切换为全窗口运行,如果已经以全窗口运行则该接口调用无效。
224
225从API Version 7开始,推荐使用[`@ohos.window`](arkts-apis-window.md)。
226
227**系统能力:** SystemCapability.ArkUI.ArkUI.Full
228
229**参数:**
230
231| 参数名  | 类型                                                  | 必填 | 说明                                                         |
232| ------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
233| options | [RequestFullWindowOptions](#requestfullwindowoptions) | 否   | 请求全屏时,设定非全屏到全屏的过渡时间,单位为毫秒,默认时间与非全屏到全屏的距离成正比。 |
234
235**示例:**
236
237```ts
238import app, { AppResponse } from '@system.app';
239export default class Req {
240  requestFullWindow() {
241    app.requestFullWindow({
242      duration: 200
243    });
244  }
245}
246```
247
248## AppResponse
249
250定义AppResponse信息。
251
252**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
253
254**系统能力:**  以下各项对应的系统能力有所不同,详见下表。
255
256| 名称 | 类型 | 必填 | 说明 |
257| -------- | -------- | -------- |-------- |
258| appID<sup>6+</sup> | string | 是 | 表示应用的包名,用于标识应用的唯一性。 <br> **系统能力:** SystemCapability.ArkUI.ArkUI.Full|
259| appName | string | 是 | 表示应用的名称。 <br> **系统能力:** SystemCapability.ArkUI.ArkUI.Lite|
260| versionName | string | 是 | 表示应用的版本名称。 <br> **系统能力:** SystemCapability.ArkUI.ArkUI.Lite|
261| versionCode | number | 是 | 表示应用的版本号。 <br> **系统能力:** SystemCapability.ArkUI.ArkUI.Lite|
262
263## ScreenOnVisibleOptions
264
265定义屏幕上可见接口的选项。
266
267**系统能力:**  以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full
268
269| 名称 | 类型 | 必填 | 说明 |
270| -------- | -------- | -------- | -------- |
271| visible | boolean | 否 | 是否启动保活,默认值false。 |
272| success | () => void | 否 | 接口调用成功的回调函数。 |
273| fail | (data: string, code: number) => void | 否 | 接口调用失败的回调函数。 |
274| complete | () => void | 否 | 接口调用结束的回调函数。 |
275
276## RequestFullWindowOptions
277
278定义RequestFullWindow接口的选项。
279
280**系统能力:**  以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full
281
282| 名称 | 类型 | 必填 | 说明 |
283| -------- | -------- | -------- | -------- |
284| duration | number | 是 | 定义动画选项的持续时间,单位为毫秒。 |
285
286