提交 fc7bf8cc 编写于 作者: H hehongyang9

Merge branch 'master' of gitee.com:openharmony/docs into dev

Change-Id: I91c24f0f2f8fb53a9aa1ec081c1bd3e410773de8
# 后台任务管理
- [后台任务概述](background-task-overview.md)
- [后台任务开发指导](background-task-dev-guide.md)
\ No newline at end of file
# Bundle模块(JS端SDK接口)
本模块提供查询默认应用的能力,支持查询当前应用是否是默认应用。
> **说明:**
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```
import defaultAppMgr from '@ohos.bundle.defaultAppManager'
```
## defaultAppMgr.ApplicationType
应用类型
**系统能力:**
SystemCapability.BundleManager.BundleFramework
| 名称 | 类型 | 说明 |
| -------- | -------- | -------------------------------------- |
| BROWSER | string | 默认浏览器。 |
| IMAGE | string | 默认图片查看器。 |
| AUDIO | string | 默认音频播放器。 |
| VIDEO | string | 默认视频播放器。 |
| PDF | string | 默认PDF文档查看器。 |
| WORD | string | 默认WORD文档查看器。 |
| EXCEL | string | 默认EXCEL文档查看器。 |
| PPT | string | 默认PPT文档查看器。 |
## defaultAppMgr.isDefaultApplication
isDefaultApplication(type: string): Promise\<boolean>
以异步方法根据系统已定义的应用类型判断当前应用是否是该应用类型的默认应用,使用Promise形式返回结果。
**系统能力:**
SystemCapability.BundleManager.BundleFramework
**参数:**
| 名称 | 类型 | 必填 | 描述 |
| ----------- | ------ | ---- | --------------------------------------- |
| type | string | 是 | 要查询的默认应用名称,取[ApplicationType](#defaultappmgrapplicationtype)中的值。 |
**返回值:**
| 类型 | 说明 |
| ------------------------- | ------------------ |
| Promise\<boolean> | Promise形式返回当前应用是否是默认应用,true表示是默认应用,false表示不是默认应用。 |
**示例:**
```js
defaultAppMgr.isDefaultApplication(defaultAppMgr.ApplicationType.BROWSER)
.then((data) => {
console.info('Operation successful. IsDefaultApplication ? ' + JSON.stringify(data));
}).catch((error) => {
console.error('Operation failed. Cause: ' + JSON.stringify(error));
});
```
## defaultAppMgr.isDefaultApplication
isDefaultApplication(type: string, callback: AsyncCallback\<boolean>): void
以异步方法根据系统已定义的应用类型判断当前应用是否是该应用类型的默认应用,使用callback形式返回结果。
**系统能力:**
SystemCapability.BundleManager.BundleFramework
**参数:**
| 名称 | 类型 | 必填 | 描述 |
| ----------- | ------------------------------- | ---- | --------------------------------------- |
| type | string | 是 | 要查询的默认应用名称,取[ApplicationType](#defaultappmgrapplicationtype)中的值。 |
| callback | AsyncCallback<boolean> | 是 | 程序启动作为入参的回调函数,返回当前应用是否是默认应用,true表示是默认应用,false表示不是默认应用。 |
**示例:**
```js
defaultAppMgr.isDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, (err, data) => {
if (err) {
console.error('Operation failed. Cause: ' + JSON.stringify(err));
return;
}
console.info('Operation successful. IsDefaultApplication ? ' + JSON.stringify(data));
});
```
# 公共事件模块
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
本模块提供了公共事件的能力,包括公共事件的权限列表,发布公共事件,订阅或取消订阅公共事件,获取或修改公共事件结果代码、结果数据等。
> **说明:**
>
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 权限列表
......
......@@ -69,7 +69,7 @@ isIdleState(bundleName: string): Promise&lt;boolean&gt;
## bundleState.queryAppUsagePriorityGroup
queryAppUsagePriorityGroup(): Promise<number>
queryAppUsagePriorityGroup(): Promise&lt;number&gt;
查询当前应用的优先级分组。使用Promise形式返回其应用分组。
......@@ -79,7 +79,7 @@ queryAppUsagePriorityGroup(): Promise<number>
| 类型 | 说明 |
| --------------- | --------------------------- |
| Promise<number> | 指定的Promise回调方法。返回查询的应用分组结果。 |
| Promise&lt;number&gt; | 指定的Promise回调方法。返回查询的应用分组结果。 |
**示例**
......@@ -93,7 +93,7 @@ bundleState.queryAppUsagePriorityGroup().then( res => {
## bundleState.queryAppUsagePriorityGroup
queryAppUsagePriorityGroup(callback: AsyncCallback<number>): void
queryAppUsagePriorityGroup(callback: AsyncCallback&lt;number&gt;): void
查询当前应用的优先级分组。使用callback形式返回其应用分组。
......@@ -103,7 +103,7 @@ queryAppUsagePriorityGroup(callback: AsyncCallback<number>): void
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------- | ---- | -------------------------- |
| callback | AsyncCallback<number> | 是 | 指定的CallBack回调方法。返回查询的应用分组。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 指定的CallBack回调方法。返回查询的应用分组。 |
**示例**
......@@ -523,9 +523,9 @@ getRecentlyUsedModules(maxNum?: number, callback: AsyncCallback&lt;Array&lt;Bund
## bundleState.queryAppUsagePriorityGroup<sup>9+</sup>
queryAppUsagePriorityGroup(bundleName? : string): Promise<number>
queryAppUsagePriorityGroup(bundleName? : string): Promise&lt;number&gt;
可选参数。设置该参数时查询指定bundleName对应应用的分组。无参数时查询当前应用的分组。使用Promise形式返回其应用分组
可选参数。有参则查询指定bundleName的应用的分组。无参数时查询当前应用的分组。使用Promise形式返回其应用分组结果
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
......@@ -537,13 +537,13 @@ queryAppUsagePriorityGroup(bundleName? : string): Promise<number>
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------ | ---- | ---------------------------------------- |
| bundleName | string | 否 | 可选参数。设置该参数时查询指定bundleName对应应用的分组。无参数时查询当前应用的分组。 |
| bundleName | string | 否 | 可选参数。有参则查询指定bundleName的应用的分组。无参数时查询当前应用的分组。 |
**返回值**
| 类型 | 说明 |
| --------------- | --------------------------- |
| Promise<number> | 指定的Promise回调方法。返回查询的应用分组结果。 |
| Promise&lt;number&gt; | 指定的Promise回调方法。返回查询的应用分组结果。 |
**示例**
......@@ -564,9 +564,9 @@ bundleState.queryAppUsagePriorityGroup().then( res => {
## bundleState.queryAppUsagePriorityGroup<sup>9+</sup>
queryAppUsagePriorityGroup(bundleName? : string, callback: AsyncCallback<number>): void
queryAppUsagePriorityGroup(bundleName? : string, callback: AsyncCallback&lt;number&gt;): void
可选参数。设置该参数时查询指定bundleName对应应用的分组。无参数时查询当前应用的分组。使用callback形式返回其应用分组。
可选参数。有参则查询指定bundleName对应应用的分组。无参数时查询当前应用的分组。使用callback形式返回其应用分组。
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
......@@ -578,8 +578,8 @@ queryAppUsagePriorityGroup(bundleName? : string, callback: AsyncCallback<number>
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | --------------------- | ---- | ---------------------------------------- |
| bundleName | string | 否 | 可选参数。设置该参数时查询指定bundleName对应应用的分组。无参数时查询当前应用的分组。 |
| callback | AsyncCallback<number> | 是 | 指定的CallBack回调方法。返回查询的应用分组。 |
| bundleName | string | 否 | 可选参数。有此参数则查询指定bundleName对应应用的分组。无此参数时查询当前应用的分组。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 指定的CallBack回调方法。返回查询的应用分组。 |
**示例**
......@@ -604,9 +604,9 @@ bundleState.queryAppUsagePriorityGroup((err, res) => {
## bundleState.setBundleGroup<sup>9+</sup>
setBundleGroup(bundleName: string, newGroup: GroupType): Promise<void>
setBundleGroup(bundleName: string, newGroup: GroupType): Promise&lt;void&gt;
将指定bundleName的应用的分组设置为newGroup,使用Promise形式返回设置是否成功。
将指定bundleName的应用的分组设置为newGroup,使用Promise形式返回设置是否成功。
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
......@@ -619,21 +619,21 @@ setBundleGroup(bundleName: string, newGroup: GroupType): Promise<void>
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | --------- | ---- | ---- |
| bundleName | string | 是 | 应用名称 |
| newGroup | GroupType | 是 | 应用分组 |
| newGroup | [GroupType](#GroupType9) | 是 | 应用分组 |
**返回值**
| 类型 | 说明 |
| ------------- | ------------------------- |
| Promise<void> | 指定的Promise回调方法。返回本次设置是否成功 |
| Promise&lt;void&gt; | 指定的Promise回调方法。返回本次设置是否成功 |
**示例**
```javascript
this.bundleName = "com.example.deviceUsageStatistics";
this.newGroup = stats.GroupType.ACTIVE_GROUP_DAILY;
let bundleName = "com.example.deviceUsageStatistics";
let newGroup = stats.GroupType.ACTIVE_GROUP_DAILY;
bundleState.setBundleGroup(this.bundleName, this.newGroup).then( () => {
bundleState.setBundleGroup(bundleName, newGroup).then( () => {
console.log('BUNDLE_ACTIVE SetBundleGroup promise succeeded.');
}).catch( err => {
console.log('BUNDLE_ACTIVE SetBundleGroup promise failed. because: ' + err.code);
......@@ -642,9 +642,9 @@ bundleState.setBundleGroup(this.bundleName, this.newGroup).then( () => {
## bundleState.setBundleGroup<sup>9+</sup>
setBundleGroup(bundleName: string, newGroup: GroupType, callback: AsyncCallback<void>): void
setBundleGroup(bundleName: string, newGroup: GroupType, callback: AsyncCallback&lt;void&gt;): void
将指定bundleName的应用的分组设置为newGroup,使用CallBack形式返回设置是否成功。
将指定bundleName的应用的分组设置为newGroup,使用CallBack形式返回设置是否成功。
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
......@@ -657,16 +657,16 @@ setBundleGroup(bundleName: string, newGroup: GroupType, callback: AsyncCallback<
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------------------- | ---- | ------------------------- |
| bundleName | string | 是 | 应用名称 |
| newGroup | GroupType | 是 | 应用分组 |
| callback | AsyncCallback<void> | 是 | 指定的CallBack回调方法。返回设置是否成功。 |
| newGroup | [GroupType](#GroupType9) | 是 | 应用分组 |
| callback | AsyncCallback&lt;void&gt; | 是 | 指定的CallBack回调方法。返回设置是否成功。 |
**示例**
```javascript
this.bundleName = "com.example.deviceUsageStatistics";
this.newGroup = stats.GroupType.ACTIVE_GROUP_DAILY;
let bundleName = "com.example.deviceUsageStatistics";
let newGroup = stats.GroupType.ACTIVE_GROUP_DAILY;
bundleState.setBundleGroup(this.bundleName, this.newGroup, (err) => {
bundleState.setBundleGroup(bundleName, newGroup, (err) => {
if(err) {
console.log('BUNDLE_ACTIVE SetBundleGroup callback failed. because: ' + err.code);
} else {
......@@ -677,9 +677,9 @@ bundleState.setBundleGroup(this.bundleName, this.newGroup, (err) => {
## bundleState.registerGroupCallBack<sup>9+</sup>
registerGroupCallBack(callback: Callback<BundleActiveGroupCallbackInfo>): Promise<void>
registerGroupCallBack(callback: Callback&lt;BundleActiveGroupCallbackInfo&gt;): Promise&lt;void&gt;
应用分组变化注册,待用户名下的某个应用分组发生变化时,通过callback形式向所有已注册的应用返回BundleActiveGroupCallbackInfo。使用Promise形式返回注册是否成功。
应用注册分组变化监听,待用户名下的某个应用分组发生变化时,通过callback形式向所有已注册分组变化监听的应用返回BundleActiveGroupCallbackInfo信息。使用Promise形式返回注册是否成功。
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
......@@ -689,26 +689,26 @@ registerGroupCallBack(callback: Callback<BundleActiveGroupCallbackInfo>): Promis
**参数**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------- | ---- | ----------- |
| callback | Callback<BundleActiveGroupCallbackInfo> | 是 | 应用分组变化的回调函数 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------ |
| callback | Callback&lt;[BundleActiveGroupCallbackInfo](#BundleActiveGroupCallbackInfo9)&gt; | 是 | 指定的callback函数,返回应用分组变化的信息 |
**返回值**
| 类型 | 说明 |
| ------------- | ----------------------- |
| Promise<void> | 指定的Promise回调方法。返回注册是否成功 |
| Promise&lt;void&gt; | 指定的Promise回调方法。返回注册监听是否成功 |
**示例**
```javascript
let onBundleGroupChanged = (err,res) =>{
console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.');
console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result oldGroup is : ' + res.oldGroup);
console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result newGroup is : ' + res.newGroup);
console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result changeReason is : ' + res.newGroup);
console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result userId is : ' + res.userId);
console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result bundleName is : ' + res.bundleName);
console.log('BUNDLE_ACTIVE RegisterGroupCallBack result appUsageOldGroup is : ' + res.appUsageOldGroup);
console.log('BUNDLE_ACTIVE RegisterGroupCallBack result appUsageNewGroup is : ' + res.appUsageNewGroup);
console.log('BUNDLE_ACTIVE RegisterGroupCallBack result changeReason is : ' + res.changeReason);
console.log('BUNDLE_ACTIVE RegisterGroupCallBack result userId is : ' + res.userId);
console.log('BUNDLE_ACTIVE RegisterGroupCallBack result bundleName is : ' + res.bundleName);
};
bundleState.registerGroupCallBack(onBundleGroupChanged).then( () => {
console.log('BUNDLE_ACTIVE RegisterGroupCallBack promise succeeded.');
......@@ -719,9 +719,9 @@ bundleState.registerGroupCallBack(onBundleGroupChanged).then( () => {
## bundleState.registerGroupCallBack<sup>9+</sup>
registerGroupCallBack(callback: Callback<BundleActiveGroupCallbackInfo>, callback: AsyncCallback<void>): void
registerGroupCallBack(callback: Callback&lt;BundleActiveGroupCallbackInfo&gt;, callback: AsyncCallback&lt;void&gt;): void
应用分组变化注册,待用户名下的某个应用分组发生变化时,通过callback形式向所有已注册的应用返回BundleActiveGroupCallbackInfo。使用异步callback形式返回注册是否成功。
应用注册分组变化监听,待用户名下的某个应用分组发生变化时,通过callback形式向所有已注册分组变化监听的应用返回BundleActiveGroupCallbackInfo信息。使用异步callback形式返回注册监听是否成功。
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
......@@ -731,21 +731,21 @@ registerGroupCallBack(callback: Callback<BundleActiveGroupCallbackInfo>, callbac
**参数**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------- | ---- | ------------- |
| callback | Callback<BundleActiveGroupCallbackInfo> | 是 | 应用分组变化的回调函数 |
| callback | AsyncCallback<void> | 是 | 注册是否成功的异步回调函数 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | ---- | -------------------------------------------- |
| callback | Callback&lt;[BundleActiveGroupCallbackInfo](#BundleActiveGroupCallbackInfo9)&gt; | 是 | 指定的callback函数,返回应用分组变化的信息 |
| callback | AsyncCallback&lt;void&gt; | 是 | 指定的异步callback函数,返回注册监听是否成功 |
**示例**
```javascript
let onBundleGroupChanged = (err,res) =>{
console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.');
console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result‘s oldGroup is : ' + res.oldGroup);
console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result‘s newGroup is : ' + res.newGroup);
console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result‘s changeReason is : ' + res.newGroup);
console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result‘s userId is : ' + res.userId);
console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result‘s bundleName is : ' + res.bundleName);
console.log('BUNDLE_ACTIVE RegisterGroupCallBack result appUsageOldGroup is : ' + res.appUsageOldGroup);
console.log('BUNDLE_ACTIVE RegisterGroupCallBack result appUsageNewGroup is : ' + res.appUsageNewGroup);
console.log('BUNDLE_ACTIVE RegisterGroupCallBack result changeReason is : ' + res.changeReason);
console.log('BUNDLE_ACTIVE RegisterGroupCallBack result userId is : ' + res.userId);
console.log('BUNDLE_ACTIVE RegisterGroupCallBack result bundleName is : ' + res.bundleName);
};
bundleState.registerGroupCallBack(onBundleGroupChanged, (err)=>{
if(err) {
......@@ -758,9 +758,9 @@ bundleState.registerGroupCallBack(onBundleGroupChanged, (err)=>{
## bundleState.unRegisterGroupCallBack<sup>9+</sup>
unRegisterGroupCallBack(): Promise<void>
unRegisterGroupCallBack(): Promise&lt;void&gt;
应用分组变化解注册,将之前注册的解除注册。使用Promise形式返回注册是否成功。
应用解除分组变化监听,解除通过调用注册接口生成的监听。使用Promise形式返回解除监听是否成功。
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
......@@ -774,7 +774,7 @@ unRegisterGroupCallBack(): Promise<void>
| 类型 | 说明 |
| ------------- | ------------------------ |
| Promise<void> | 指定的Promise回调方法。返回解注册是否成功 |
| Promise&lt;void&gt; | 指定的Promise回调方法。返回解除监听是否成功 |
**示例**
......@@ -788,9 +788,9 @@ bundleState.unRegisterGroupCallBack().then( () => {
## bundleState.unRegisterGroupCallBack<sup>9+</sup>
unRegisterGroupCallBack(callback: AsyncCallback<void>): void;
unRegisterGroupCallBack(callback: AsyncCallback&lt;void&gt;): void;
应用分组变化解注册,将之前注册的解除注册。使用异步callback形式返回注册是否成功。
应用解除分组变化监听,解除通过调用注册接口生成的监听。使用异步callback形式返回解除监听是否成功。
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
......@@ -802,7 +802,7 @@ unRegisterGroupCallBack(callback: AsyncCallback<void>): void;
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------- | ---- | -------------- |
| callback | AsyncCallback<void> | 是 | 解注册是否成功的异步回调函数 |
| callback | AsyncCallback&lt;void&gt; | 是 | 解除监听是否成功的异步回调函数 |
**示例**
......@@ -992,12 +992,12 @@ FA卡片的使用信息的属性集合。
应用分组变化回调返回的属性集合
**系统能力**:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.UsageStatistics.App
**系统能力**:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
| 参数名 | 类型 | 必填 | 说明 |
| ---------------- | ------ | ---- | -------- |
| appUsageOldGroup | number | 是 | 修改前的应用分组 |
| appUsageNewGroup | number | 是 | 修改后的应用分组 |
| appUsageOldGroup | number | 是 | 变化前的应用分组 |
| appUsageNewGroup | number | 是 | 变化后的应用分组 |
| useId | number | 是 | 用户id |
| changeReason | number | 是 | 分组变化原因 |
| bundleName | string | 是 | 应用名称 |
......@@ -1008,7 +1008,7 @@ FA卡片的使用信息的属性集合。
### 属性
**系统能力**:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
**系统能力**:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.UsageStatistics.App
| 参数名 | 类型 | 必填 | 说明 |
| ------------------------ | ------ | ---- | ---------------------------------------- |
......
# Emitter
> 说明:本模块首批接口从API version 7开始支持。
本模块提供发送和处理进程内事件的能力,包括对持续订阅事件或单次订阅事件的处理,取消订阅事件,发送事件到事件队列。
> **说明:**
>
> 本模块首批接口从API version 7开始支持。
## 导入模块
......
......@@ -21,7 +21,7 @@ import inputMethod from '@ohos.inputMethod';
| MAX_TYPE_NUM | number | 是 | 否 | 可支持的最大输入法个数。 |
## InputMethodProperty<sup>8+</sup><a name="InputMethodProperty"></a>
## InputMethodProperty<sup>8+</sup>
输入法应用属性。
......@@ -32,7 +32,7 @@ import inputMethod from '@ohos.inputMethod';
| packageName | string | 是 | 否 | 包名。 |
| methodId | string | 是 | 否 | Ability名。 |
## inputMethod.getInputMethodController<a name="getInputMethodController"></a>
## inputMethod.getInputMethodController
getInputMethodController(): InputMethodController
......@@ -51,7 +51,7 @@ getInputMethodController(): InputMethodController
var InputMethodController = inputMethod.getInputMethodController();
```
## inputMethod.getInputMethodSetting<sup>8+</sup><a name="getInputMethodSetting"></a>
## inputMethod.getInputMethodSetting<sup>8+</sup>
getInputMethodSetting(): InputMethodSetting
......@@ -71,7 +71,7 @@ getInputMethodSetting(): InputMethodSetting
var InputMethodSetting = inputMethod.getInputMethodSetting();
```
## InputMethodController<a name="InputMethodController"></a>
## InputMethodController
下列API示例中都需使用[getInputMethodController](#getInputMethodController)回调获取到InputMethodController实例,再通过此实例调用对应方法。
......@@ -119,7 +119,7 @@ stopInput(): Promise&lt;boolean&gt;
console.info('stopInput isSuccess = ' + isSuccess);
```
## InputMethodSetting<sup>8+</sup><a name="InputMethodSetting"></a>
## InputMethodSetting<sup>8+</sup>
下列API示例中都需使用[getInputMethodSetting](#getInputMethodSetting)回调获取到InputMethodSetting实例,再通过此实例调用对应方法。
......
......@@ -23,9 +23,9 @@ matchMediaSync(condition: string): MediaQueryListener
设置媒体查询的查询条件,并返回对应的监听句柄。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| --------- | ------ | ---- | ---------- |
| condition | string | 是 | 媒体事件的匹配条件。 |
| 参数名 | 类型 | 必填 | 说明 |
| --------- | ------ | ---- | ---------------------------------------- |
| condition | string | 是 | 媒体事件的匹配条件,具体可参考[媒体查询语法规则](/ui/ui-ts-layout-mediaquery.md#媒体查询条件语法规则)。 |
**返回值:**
| 类型 | 说明 |
......
# Notification模块
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
本模块提供通知管理的能力,包括发布、取消发布通知,创建、获取、移除通知通道,订阅、取消订阅通知,获取通知的使能状态、角标使能状态,获取通知的相关信息等。
一般情况下,只有系统应用具有通知订阅和取消订阅的权限。
> **说明:**
>
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
......
......@@ -642,7 +642,7 @@ async function demo() {
### UiComponent.isChecked<sup>9+</sup>
isLongClickable(): Promise\<bool>
isChecked(): Promise\<bool>
获取控件对象被勾选状态。
......
......@@ -26,7 +26,7 @@ ImageAnimator()
| 参数名称 | 参数类型 | 默认值 | 必填 | 参数描述 |
| -------- | -------- | -------- | -------- | -------- |
| images | Array&lt;ImageFrameInfo&gt; | [] | 是 | 设置图片帧信息集合。每一帧的帧信息(ImageFrameInfo)包含图片路径、图片大小、图片位置和图片播放时长信息,具体见下面的关于ImageFrameInfo的属性说明。 |
| images | Array&lt;ImageFrameInfo&gt; | [] | 是 | 设置图片帧信息集合。每一帧的帧信息(ImageFrameInfo)包含图片路径、图片大小、图片位置和图片播放时长信息,详见ImageFrameInfo属性说明。 |
| state | AnimationStatus | Initial | 否 | 默认为初始状态,用于控制播放状态。 |
| duration | number | 1000 | 否 | 单位为毫秒,默认时长为1000ms;duration为0时,不播放图片;值的改变只会在下一次循环开始时生效;当images中任意一帧图片设置了单独的duration后,该属性设置无效。 |
| reverse | boolean | false | 否 | 设置播放顺序。false表示从第1张图片播放到最后1张图片;&nbsp;true表示从最后1张图片播放到第1张图片。 |
......@@ -35,10 +35,10 @@ ImageAnimator()
| fillMode | FillMode | Forwards | 否 | 设置动画开始前和结束后的状态,可选值参见FillMode说明。 |
| iterations | number | 1 | 否 | 默认播放一次,设置为-1时表示无限次播放。 |
- ImageFrameInfo属性说明
- ImageFrameInfo属性说明
| 参数名称 | 参数类型 | 默认值 | 必填 | 参数描述 |
| -------- | -------- | -------- | -------- | -------- |
| src | string \| [Resource](../../ui/ts-types.md#resource类型)<sup>9+</sup> | "" | 是 | 图片路径,图片格式为svg,png和jpg,从API9起支持[Resource](../../ui/ts-types.md#resource类型)类型的路径 |
| src | string \| [Resource](../../ui/ts-types.md#resource类型)<sup>9+</sup> | "" | 是 | 图片路径,图片格式为svg,png和jpg,从API Version9开始支持[Resource](../../ui/ts-types.md#resource类型)类型的路径 |
| width | [Length](../../ui/ts-types.md#长度类型) | 0 | 否 | 图片宽度 |
| height | [Length](../../ui/ts-types.md#长度类型) | 0 | 否 | 图片高度 |
| top | [Length](../../ui/ts-types.md#长度类型) | 0 | 否 | 图片相对于组件左上角的纵向坐标 |
......
# Search
> **说明:** 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
> **说明:**
>
> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
提供搜索框组件,用于提供用户搜索内容的输入区域。
......@@ -28,13 +30,13 @@ Search(options?: { value?: string; placeholder?: string; icon?: string; controll
## 属性
| 名称 | 参数类型 | 默认值 | 描述 |
| ---------------- | ------------------------------------- | ---- | --------------------- |
| searchButton | string | 无 | 搜索框末尾搜索按钮文本值,默认无搜索按钮。 |
| placeholderColor | [ResourceColor](../../ui/ts-types.md) | - | 设置placeholder颜色。 |
| placeholderFont | [Font](../../ui/ts-types.md) | - | 设置placeholder文本样式。 |
| textFont | [Font](../../ui/ts-types.md) | - | 设置搜索框内文本样式。 |
| copyOption<sup>9+</sup> | boolean\|[CopyOption](ts-basic-components-text.md) | true | 设置文本是否可复制。 |
| 名称 | 参数类型 | 默认值 | 描述 |
| ----------------------- | ---------------------------------------- | ---- | --------------------- |
| searchButton | string | 无 | 搜索框末尾搜索按钮文本值,默认无搜索按钮。 |
| placeholderColor | [ResourceColor](../../ui/ts-types.md) | - | 设置placeholder颜色。 |
| placeholderFont | [Font](../../ui/ts-types.md) | - | 设置placeholder文本样式。 |
| textFont | [Font](../../ui/ts-types.md) | - | 设置搜索框内文本样式。 |
| copyOption<sup>9+</sup> | boolean\|[CopyOption](ts-basic-components-text.md) | true | 设置文本是否可复制。 |
## 事件
......@@ -56,7 +58,7 @@ controller: SearchController = new SearchController()
```
#### caretPosition
creatPosition(value: number): void
caretPosition(value: number): void
设置输入光标的位置。
......
......@@ -85,12 +85,12 @@ controller: TextInputController = new TextInputController()
caretPosition(value:&nbsp;number): void
设置光标移动到指定位置。
设置输入光标的位置。
- 参数
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ----- | ------ | ---- | ---- | ---------------------------------------- |
| value | number | 是 | - | 设置输入光标的位置。<br/>value:从字符串开始到光标所在位置的字符长度。 |
| value | number | 是 | - | 从字符串开始到光标所在位置的字符长度。 |
## 示例
......
# Video
> **说明:**
> 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
> 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
视频播放组件。
......@@ -13,7 +13,7 @@
"abilities":[
{
...
"permissions": ["ohos.permission.INTERNET],
"permissions": ["ohos.permission.INTERNET"],
...
}
]
......@@ -30,47 +30,47 @@
Video(value: VideoOptions)
- VideoOptions类型接口说明
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| -------- | -------- | -------- | -------- | -------- |
| src | string \| [Resource](../../ui/ts-types.md) | 否 | - | 视频播放源的路径,支持本地视频路径和网络路径。<br>支持在resources下面的video或rawfile文件夹里放置媒体资源。<br>支持dataability://的路径前缀,用于访问通过Data Ability提供的视频路径,具体路径信息详见[Data Ability说明](../../ability/fa-dataability.md)。 |
| currentProgressRate | number&nbsp;\|&nbsp;PlaybackSpeed<sup>8+</sup> | 否 | 1.0&nbsp;\|&nbsp;PlaybackSpeed.<br>Speed_Forward_1_00_X | 视频播放倍速。<br/>>&nbsp;&nbsp;**说明:**<br/>>&nbsp;number取值仅支持:0.75,1.0,1.25,1.75,2.0。<br/> |
| previewUri | string&nbsp;\|&nbsp;PixelMap<sup>8+</sup>&nbsp;\|&nbsp;[Resource](../../ui/ts-types.md) | 否 | - | 预览图片的路径。 |
| controller | [VideoController](#videocontroller) | 否 | - | 控制器。 |
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ------------------- | ---------------------------------------- | ---- | ---------------------------------------- | ---------------------------------------- |
| src | string \| [Resource](../../ui/ts-types.md) | 否 | - | 视频播放源的路径,支持本地视频路径和网络路径。<br>支持在resources下面的video或rawfile文件夹里放置媒体资源。<br>支持dataability://的路径前缀,用于访问通过Data Ability提供的视频路径,具体路径信息详见[Data Ability说明](../../ability/fa-dataability.md)。 |
| currentProgressRate | number&nbsp;\|&nbsp;PlaybackSpeed<sup>8+</sup> | 否 | 1.0&nbsp;\|&nbsp;PlaybackSpeed.<br>Speed_Forward_1_00_X | 视频播放倍速。<br/>>&nbsp;&nbsp;**说明:**<br/>>&nbsp;number取值仅支持:0.75,1.0,1.25,1.75,2.0。<br/> |
| previewUri | string&nbsp;\|&nbsp;PixelMap<sup>8+</sup>&nbsp;\|&nbsp;[Resource](../../ui/ts-types.md) | 否 | - | 预览图片的路径。 |
| controller | [VideoController](#videocontroller) | 否 | - | 控制器。 |
- PlaybackSpeed<sup>8+</sup>类型接口说明
| 名称 | 描述 |
| -------- | -------- |
| 名称 | 描述 |
| -------------------- | --------- |
| Speed_Forward_0_75_X | 0.75倍速播放。 |
| Speed_Forward_1_00_X | 1倍速播放。 |
| Speed_Forward_1_00_X | 1倍速播放。 |
| Speed_Forward_1_25_X | 1.25倍速播放。 |
| Speed_Forward_1_75_X | 1.75倍速播放。 |
| Speed_Forward_2_00_X | 2倍速播放。 |
| Speed_Forward_2_00_X | 2倍速播放。 |
## 属性
| 名称 | 参数类型 | 默认值 | 描述 |
| -------- | -------- | -------- | -------- |
| muted | boolean | false | 是否静音。 |
| autoPlay | boolean | false | 是否自动播放。 |
| controls | boolean | true | 控制视频播放的控制栏是否显示。 |
| objectFit | [ImageFit](ts-basic-components-image.md) | Cover | 设置视频显示模式。 |
| loop | boolean | false | 是否单个视频循环播放。 |
| 名称 | 参数类型 | 默认值 | 描述 |
| --------- | ---------------------------------------- | ----- | --------------- |
| muted | boolean | false | 是否静音。 |
| autoPlay | boolean | false | 是否自动播放。 |
| controls | boolean | true | 控制视频播放的控制栏是否显示。 |
| objectFit | [ImageFit](ts-basic-components-image.md) | Cover | 设置视频显示模式。 |
| loop | boolean | false | 是否单个视频循环播放。 |
## 事件
| 名称 | 功能描述 |
| -------- | -------- |
| onStart()&nbsp;=&gt;&nbsp;void | 播放时触发该事件。 |
| onPause()&nbsp;=&gt;&nbsp;void | 暂停时触发该事件。 |
| onFinish()&nbsp;=&gt;&nbsp;void | 播放结束时触发该事件。 |
| onError()&nbsp;=&gt;&nbsp;void | 播放失败时触发该事件。 |
| 名称 | 功能描述 |
| ---------------------------------------- | ---------------------------------------- |
| onStart()&nbsp;=&gt;&nbsp;void | 播放时触发该事件。 |
| onPause()&nbsp;=&gt;&nbsp;void | 暂停时触发该事件。 |
| onFinish()&nbsp;=&gt;&nbsp;void | 播放结束时触发该事件。 |
| onError()&nbsp;=&gt;&nbsp;void | 播放失败时触发该事件。 |
| onPrepared(event?:&nbsp;{&nbsp;duration:&nbsp;number&nbsp;})&nbsp;=&gt;&nbsp;void | 视频准备完成时触发该事件,通过duration可以获取视频时长,单位为秒(s)。 |
| onSeeking(event?:&nbsp;{&nbsp;time:&nbsp;number&nbsp;})&nbsp;=&gt;&nbsp;void | 操作进度条过程时上报时间信息,单位为s。 |
| onSeeked(event?:&nbsp;{&nbsp;time:&nbsp;number&nbsp;})&nbsp;=&gt;&nbsp;void | 操作进度条完成后,上报播放时间信息,单位为s。 |
| onUpdate(event?:&nbsp;{&nbsp;time:&nbsp;number&nbsp;})&nbsp;=&gt;&nbsp;void | 播放进度变化时触发该事件,单位为s,更新时间间隔为250ms。 |
| onSeeking(event?:&nbsp;{&nbsp;time:&nbsp;number&nbsp;})&nbsp;=&gt;&nbsp;void | 操作进度条过程时上报时间信息,单位为s。 |
| onSeeked(event?:&nbsp;{&nbsp;time:&nbsp;number&nbsp;})&nbsp;=&gt;&nbsp;void | 操作进度条完成后,上报播放时间信息,单位为s。 |
| onUpdate(event?:&nbsp;{&nbsp;time:&nbsp;number&nbsp;})&nbsp;=&gt;&nbsp;void | 播放进度变化时触发该事件,单位为s,更新时间间隔为250ms。 |
## VideoController
......@@ -110,9 +110,9 @@ setCurrentTime(value: number)
指定视频播放的进度位置。
- 参数
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| -------- | -------- | -------- | -------- | -------- |
| value | number | 是 | - | 视频播放进度位置。 |
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ----- | ------ | ---- | ---- | --------- |
| value | number | 是 | - | 视频播放进度位置。 |
### requestFullscreen
......@@ -121,9 +121,9 @@ requestFullscreen(value: boolean)
请求全屏播放。
- 参数
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| -------- | -------- | -------- | -------- | -------- |
| value | number | 是 | false | 是否全屏播放。 |
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ----- | ------ | ---- | ----- | ------- |
| value | number | 是 | false | 是否全屏播放。 |
### exitFullscreen
......@@ -138,18 +138,18 @@ setCurrentTime(value: number, seekMode: SeekMode)
指定视频播放的进度位置,并指定跳转模式。
- 参数
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| -------- | -------- | -------- | -------- | -------- |
| value | number | 是 | - | 视频播放进度位置。 |
| seekMode | SeekMode | 是 | - | 跳转模式。 |
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| -------- | -------- | ---- | ---- | --------- |
| value | number | 是 | - | 视频播放进度位置。 |
| seekMode | SeekMode | 是 | - | 跳转模式。 |
- SeekMode<sup>8+</sup>类型接口说明
| 名称 | 描述 |
| -------- | -------- |
| PreviousKeyframe | 跳转到前一个最近的关键帧。 |
| NextKeyframe | 跳转到后一个最近的关键帧。 |
| ClosestKeyframe | 跳转到最近的关键帧。 |
| Accurate | 精准跳转,不论是否为关键帧。 |
| 名称 | 描述 |
| ---------------- | -------------- |
| PreviousKeyframe | 跳转到前一个最近的关键帧。 |
| NextKeyframe | 跳转到后一个最近的关键帧。 |
| ClosestKeyframe | 跳转到最近的关键帧。 |
| Accurate | 精准跳转,不论是否为关键帧。 |
......
# 点击事件
> **说明:**
> 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
> 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
## 权限列表
......@@ -11,38 +11,38 @@
## 事件
| 名称 | 支持冒泡 | 功能描述 |
| -------- | -------- | -------- |
| onClick(callback:&nbsp;(event?:&nbsp;ClickEvent)&nbsp;=&gt;&nbsp;void) | 否 | 点击动作触发该方法调用,event参数见ClickEvent介绍。 |
### ClickEvent对象说明
| 属性名称 | 类型 | 描述 |
| -------- | -------- | -------- |
| screenX | number | 点击点相对于设备屏幕左边沿的X坐标。 |
| screenY | number | 点击点相对于设备屏幕上边沿的Y坐标。 |
| x | number | 点击点相对于被点击元素左边沿的X坐标。 |
| y | number | 点击点相对于被点击元素上边沿的Y坐标。 |
| target<sup>8+</sup> | EventTarget | 被点击元素对象。 |
| timestamp | number | 事件时间戳。 |
- EventTarget<sup>8+</sup>对象说明
| 名称 | 参数类型 | 描述 |
| -------- | -------- | -------- |
| area | Area | 目标元素的区域信息。 |
- Area<sup>8+</sup>对象说明
| 属性名称 | 类型 | 描述 |
| -------- | -------- | -------- |
| width | number | 目标元素的宽度,单位为vp。 |
| height | number | 目标元素的高度,单位为vp。 |
| position | Position | 目标元素左上角相对父元素左上角的位置。 |
| globalPosition | Position | 目标元素左上角相对页面左上角的位置。 |
- Position<sup>8+</sup>对象说明
| 属性名称 | 参数类型 | 描述 |
| -------- | -------- | -------- |
| x | number | x轴坐标,单位为vp。 |
| y | number | y轴坐标,单位为vp。 |
| 名称 | 支持冒泡 | 功能描述 |
| ---------------------------------------- | ---- | --------------------------------- |
| onClick(callback:&nbsp;(event?:&nbsp;ClickEvent)&nbsp;=&gt;&nbsp;void) | 否 | 点击动作触发该方法调用,event参数见ClickEvent介绍。 |
## ClickEvent对象说明
| 属性名称 | 类型 | 描述 |
| ------------------- | -------------------------------- | ------------------- |
| screenX | number | 点击点相对于设备屏幕左边沿的X坐标。 |
| screenY | number | 点击点相对于设备屏幕上边沿的Y坐标。 |
| x | number | 点击点相对于被点击元素左边沿的X坐标。 |
| y | number | 点击点相对于被点击元素上边沿的Y坐标。 |
| target<sup>8+</sup> | [EventTarget](#eventtarget8对象说明) | 被点击元素对象。 |
| timestamp | number | 事件时间戳。 |
## EventTarget<sup>8+</sup>对象说明
| 名称 | 参数类型 | 描述 |
| ---- | ----------------- | ---------- |
| area | [Area](Area8对象说明) | 目标元素的区域信息。 |
## Area<sup>8+</sup>对象说明
| 属性名称 | 类型 | 描述 |
| -------------- | -------------------------- | ------------------- |
| width | number | 目标元素的宽度,单位为vp。 |
| height | number | 目标元素的高度,单位为vp。 |
| position | [Position](#position8对象说明) | 目标元素左上角相对父元素左上角的位置。 |
| globalPosition | [Position](#position8对象说明) | 目标元素左上角相对页面左上角的位置。 |
## Position<sup>8+</sup>对象说明
| 属性名称 | 参数类型 | 描述 |
| ---- | ------ | ----------- |
| x | number | x轴坐标,单位为vp。 |
| y | number | y轴坐标,单位为vp。 |
## 示例
......
# 拖拽事件
> **说明:**
> 从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
> 从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
## 事件
| 名称 | 支持冒泡 | 功能描述 |
| -------- | -------- | -------- |
| onDragStart(callback:&nbsp;(event:&nbsp;DragEvent,&nbsp;extraParams?:&nbsp;string)&nbsp;=&gt;&nbsp;&nbsp;[CustomBuilder](../../ui/ts-types.md)) | 否 | 第一次拖拽此事件绑定的组件时,触发回调。<br/>event:拖拽事件信息,包括拖拽点坐标。<br/>extraParams:拖拽事件额外信息,详见extraParam类型描述。<br/>返回值:当前跟手效果所拖拽的对象,用于显示拖拽时的提示组件。<br/>>&nbsp;&nbsp;**说明:**<br/>>&nbsp;-&nbsp;长按150毫秒(ms)可触发拖拽事件。<br/>>&nbsp;-&nbsp;优先级:长按手势配置时间小于等于150毫秒(ms)时,长按手势优先触发,否则拖拽事件优先触发。 |
| onDragEnter(callback:&nbsp;(event:&nbsp;DragEvent,&nbsp;extraParams?:&nbsp;string)&nbsp;=&gt;&nbsp;void) | 否 | 拖拽进入组件范围内时,触发回调。<br/>event:拖拽事件信息,包括拖拽点坐标。<br/>extraParams:拖拽事件额外信息,详见extraParam类型描述。<br/>>&nbsp;&nbsp;**说明:**<br/>>&nbsp;当监听了onDrop事件时,此事件才有效。 |
| onDragMove(callback:&nbsp;(event:&nbsp;DragEvent,&nbsp;extraParams?:&nbsp;string)&nbsp;=&gt;&nbsp;void) | 否 | 拖拽在组件范围内移动时,触发回调。<br/>event:拖拽事件信息,包括拖拽点坐标。<br/>extraParams:拖拽事件额外信息,详见extraParam类型描述。<br/>>&nbsp;&nbsp;**说明:**<br/>>&nbsp;当监听了onDrop事件时,此事件才有效。 |
| onDragLeave(callback:&nbsp;(event:&nbsp;DragEvent,&nbsp;extraParams?:&nbsp;string)&nbsp;=&gt;&nbsp;void) | 否 | 拖拽离开组件范围内时,触发回调。<br/>event:拖拽事件信息,包括拖拽点坐标。<br/>extraParams:拖拽事件额外信息,详见extraParam类型描述。<br/>>&nbsp;&nbsp;**说明:**<br/>>&nbsp;当监听了onDrop事件时,此事件才有效。 |
| onDrop(callback:&nbsp;(event:&nbsp;DragEvent,&nbsp;extraParams?:&nbsp;string)&nbsp;=&gt;&nbsp;void) | 否 | 绑定此事件的组件可作为拖拽释放目标,当在本组件范围内停止拖拽行为时,触发回调。<br/>event:拖拽事件信息,包括拖拽点坐标。<br/>extraParams:拖拽事件额外信息,详见extraParam类型描述。 |
| 名称 | 支持冒泡 | 功能描述 |
| ---------------------------------------- | ---- | ---------------------------------------- |
| onDragStart(callback:&nbsp;(event:&nbsp;DragEvent,&nbsp;extraParams?:&nbsp;string)&nbsp;=&gt;&nbsp;&nbsp;[CustomBuilder](../../ui/ts-types.md)) | 否 | 第一次拖拽此事件绑定的组件时,触发回调。<br/>- event:拖拽事件信息,包括拖拽点坐标。<br/>- extraParams:拖拽事件额外信息,详见extraParam类型描述。<br/>返回值:当前跟手效果所拖拽的对象,用于显示拖拽时的提示组件。<br/>长按150毫秒(ms)可触发拖拽事件。优先级:长按手势配置时间小于等于150毫秒(ms)时,长按手势优先触发,否则拖拽事件优先触发。 |
| onDragEnter(callback:&nbsp;(event:&nbsp;DragEvent,&nbsp;extraParams?:&nbsp;string)&nbsp;=&gt;&nbsp;void) | 否 | 拖拽进入组件范围内时,触发回调。<br/>- event:拖拽事件信息,包括拖拽点坐标。<br/>- extraParams:拖拽事件额外信息,详见extraParam类型描述。<br/>当监听了onDrop事件时,此事件才有效。 |
| onDragMove(callback:&nbsp;(event:&nbsp;DragEvent,&nbsp;extraParams?:&nbsp;string)&nbsp;=&gt;&nbsp;void) | 否 | 拖拽在组件范围内移动时,触发回调。<br/>- event:拖拽事件信息,包括拖拽点坐标。<br/>- extraParams:拖拽事件额外信息,详见extraParam类型描述。<br/>当监听了onDrop事件时,此事件才有效。 |
| onDragLeave(callback:&nbsp;(event:&nbsp;DragEvent,&nbsp;extraParams?:&nbsp;string)&nbsp;=&gt;&nbsp;void) | 否 | 拖拽离开组件范围内时,触发回调。<br/>- event:拖拽事件信息,包括拖拽点坐标。<br/>- extraParams:拖拽事件额外信息,详见extraParam类型描述。<br/>当监听了onDrop事件时,此事件才有效。 |
| onDrop(callback:&nbsp;(event:&nbsp;DragEvent,&nbsp;extraParams?:&nbsp;string)&nbsp;=&gt;&nbsp;void) | 否 | 绑定此事件的组件可作为拖拽释放目标,当在本组件范围内停止拖拽行为时,触发回调。<br/>- event:拖拽事件信息,包括拖拽点坐标。<br/>- extraParams:拖拽事件额外信息,详见extraParam类型描述。 |
- extraParam说明<br>
用于返回组件在拖拽中需要用到的额外信息。
extraParam是Json对象转换的string字符串,可以通过Json.parse转换的Json对象获取如下属性。
| 属性名称 | 属性类型 | 描述 |
| -------- | -------- | -------- |
| selectedIndex | number | 当拖拽事件设在父容器的子元素时,selectedIndex表示当前被拖拽子元素是父容器第selectedIndex个子元素,selectedIndex从0开始。<br/>>&nbsp;&nbsp;**说明:**<br/>>&nbsp;仅在ListItem组件中生效。 |
| insertIndex | number | 当前拖拽元素在List组件中放下时,insertIndex表示被拖拽元素插入该组件的第insertIndex个位置,insertIndex从0开始。<br/>>&nbsp;&nbsp;**说明:**<br/>>&nbsp;仅在List组件的拖拽事件中生效。 |
| 属性名称 | 属性类型 | 描述 |
| ------------- | ------ | ---------------------------------------- |
| selectedIndex | number | 当拖拽事件设在父容器的子元素时,selectedIndex表示当前被拖拽子元素是父容器第selectedIndex个子元素,selectedIndex从0开始。<br/>仅在ListItem组件中生效。 |
| insertIndex | number | 当前拖拽元素在List组件中放下时,insertIndex表示被拖拽元素插入该组件的第insertIndex个位置,insertIndex从0开始。<br/>仅在List组件的拖拽事件中生效。 |
### DragEvent对象说明
- 接口
| 名称 | 返回值类型 | 功能描述 |
| -------- | -------- | -------- |
| getX() | number | 当前拖拽点x轴坐标,单位为vp。 |
| getY() | number | 当前拖拽点y轴坐标,单位为vp。 |
| 名称 | 返回值类型 | 功能描述 |
| ------ | ------ | ---------------- |
| getX() | number | 当前拖拽点x轴坐标,单位为vp。 |
| getY() | number | 当前拖拽点y轴坐标,单位为vp。 |
## 示例
......
# 按键事件
> **说明:**
> 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
> 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
## 权限列表
......@@ -11,53 +11,53 @@
## 事件
| 名称 | 支持冒泡 | 功能描述 |
| -------- | -------- | -------- |
| onKeyEvent(event:&nbsp;(event?:&nbsp;KeyEvent)&nbsp;=&gt;&nbsp;void) | 是 | 按键动作触发该方法调用,event参数见[KeyEvent](#keyevent对象说明)介绍。 |
| 名称 | 支持冒泡 | 功能描述 |
| ---------------------------------------- | ---- | ---------------------------------------- |
| onKeyEvent(event:&nbsp;(event?:&nbsp;KeyEvent)&nbsp;=&gt;&nbsp;void) | 是 | 按键动作触发该方法调用,event参数见[KeyEvent](#keyevent对象说明)介绍。 |
### KeyEvent对象说明
## KeyEvent对象说明
- 属性
| 属性名称 | 类型 | 描述 |
| -------- | -------- | -------- |
| type | KeyType | 按键的类型。 |
| keyCode | number | 按键的键码。 |
| keyText | string | 按键的键值。 |
| keySource | KeySource | 触发当前按键的输入设备类型。 |
| deviceId | number | 触发当前按键的输入设备ID。 |
| metaKey | number | 按键发生时元键的状态,1表示按压态,0表示未按压态。 |
| timestamp | number | 按键发生时的时间戳。 |
| 属性名称 | 类型 | 描述 |
| --------- | --------------------------- | -------------------------- |
| type | [KeyType](#keytype枚举说明) | 按键的类型。 |
| keyCode | number | 按键的键码。 |
| keyText | string | 按键的键值。 |
| keySource | [KeySource](#keysource枚举说明) | 触发当前按键的输入设备类型。 |
| deviceId | number | 触发当前按键的输入设备ID。 |
| metaKey | number | 按键发生时元键的状态,1表示按压态,0表示未按压态。 |
| timestamp | number | 按键发生时的时间戳。 |
- 接口
| 接口名称 | 功能描述 |
| -------- | -------- |
| stopPropagation():&nbsp;void | 阻塞事件冒泡传递。 |
- KeyType枚举说明
| 名称 | 描述 |
| -------- | -------- |
| Down | 按键按下。 |
| Up | 按键松开。 |
- KeySource枚举说明
| 名称 | 描述 |
| -------- | -------- |
| Unknown | 输入设备类型未知。 |
| Keyboard | 输入设备类型为键盘。 |
- 常用KeyCode说明
| 数值 | 行为 | 物理按键 |
| -------- | -------- | -------- |
| 19 | 上 | 向上方向键。 |
| 20 | 下 | 向下方向键。 |
| 21 | 左 | 向左方向键。 |
| 22 | 右 | 向右方向键。 |
| 23 | 确定 | 遥控器的确认键。 |
| 66 | 确定 | 键盘的回车键。 |
| 160 | 确定 | 键盘的小键盘回车键。 |
| 接口名称 | 功能描述 |
| ---------------------------- | --------- |
| stopPropagation():&nbsp;void | 阻塞事件冒泡传递。 |
## KeyType枚举说明
| 名称 | 描述 |
| ---- | ----- |
| Down | 按键按下。 |
| Up | 按键松开。 |
## KeySource枚举说明
| 名称 | 描述 |
| ----------------------- | ---------- |
| Unknown | 输入设备类型未知。 |
| [KeyCode](#常用keycode说明) | 输入设备类型为键盘。 |
## 常用KeyCode说明
| 数值 | 行为 | 物理按键 |
| ---- | ---- | ---------- |
| 19 | 上 | 向上方向键。 |
| 20 | 下 | 向下方向键。 |
| 21 | 左 | 向左方向键。 |
| 22 | 右 | 向右方向键。 |
| 23 | 确定 | 遥控器的确认键。 |
| 66 | 确定 | 键盘的回车键。 |
| 160 | 确定 | 键盘的小键盘回车键。 |
## 示例
......
......@@ -16,14 +16,14 @@
| onTouch(callback:&nbsp;(event?:&nbsp;TouchEvent)&nbsp;=&gt;&nbsp;void) | 是 | 触摸动作触发该方法调用,event参数见[TouchEvent](#touchevent对象说明)介绍。 |
### TouchEvent对象说明
## TouchEvent对象说明
- 属性
| 属性名称 | 类型 | 描述 |
| ------------------- | ---------------------------------------- | ------------ |
| type | TouchType | 触摸事件的类型。 |
| touches | ArrayTouchObject&gt; | 全部手指信息。 |
| changedTouches | ArrayTouchObject&gt; | 当前发生变化的手指信息。 |
| touches | Array&lt;[TouchObject](touchobject对象说明)&gt; | 全部手指信息。 |
| changedTouches | Array&lt;[TouchObject](touchobject对象说明)&gt; | 当前发生变化的手指信息。 |
| timestamp | number | 事件时间戳。 |
| target<sup>8+</sup> | [EventTarget](ts-universal-events-click.md) | 被触摸元素对象。 |
......@@ -34,24 +34,24 @@
| stopPropagation():void | 阻塞事件冒泡。 |
- TouchObject对象说明
| 属性名称 | 类型 | 描述 |
| ------- | --------- | ------------------- |
| type | TouchType | 触摸事件的类型。 |
| id | number | 手指唯一标识符。 |
| screenX | number | 触摸点相对于设备屏幕左边沿的X坐标。 |
| screenY | number | 触摸点相对于设备屏幕上边沿的Y坐标。 |
| x | number | 触摸点相对于被触摸元素左边沿的X坐标。 |
| y | number | 触摸点相对于被触摸元素上边沿的Y坐标。 |
- TouchType枚举说明
| 名称 | 描述 |
| ------ | --------------- |
| Down | 手指按下时触发。 |
| Up | 手指抬起时触发。 |
| Move | 手指按压态在屏幕上移动时触发。 |
| Cancel | 触摸事件取消时触发。 |
## TouchObject对象说明
| 属性名称 | 类型 | 描述 |
| ------- | --------------------------- | ------------------- |
| type | [TouchType](#touchtype枚举说明) | 触摸事件的类型。 |
| id | number | 手指唯一标识符。 |
| screenX | number | 触摸点相对于设备屏幕左边沿的X坐标。 |
| screenY | number | 触摸点相对于设备屏幕上边沿的Y坐标。 |
| x | number | 触摸点相对于被触摸元素左边沿的X坐标。 |
| y | number | 触摸点相对于被触摸元素上边沿的Y坐标。 |
## TouchType枚举说明
| 名称 | 描述 |
| ------ | --------------- |
| Down | 手指按下时触发。 |
| Up | 手指抬起时触发。 |
| Move | 手指按压态在屏幕上移动时触发。 |
| Cancel | 触摸事件取消时触发。 |
## 示例
......
# 鼠标事件
> **说明:**
> 从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
> 从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
## 权限列表
......@@ -11,40 +11,40 @@
## 事件
| 名称 | 支持冒泡 | 描述 |
| -------- | -------- | -------- |
| onHover(callback:&nbsp;(isHover:&nbsp;boolean)&nbsp;=&gt;&nbsp;void) | 否 | 鼠标进入或退出组件时触发该回调。<br/>isHover:表示鼠标是否悬浮在组件上,鼠标进入时为true,&nbsp;退出时为false。 |
| onMouse(callback:&nbsp;(event?:&nbsp;MouseEvent)&nbsp;=&gt;&nbsp;void) | 是 | 当前组件被鼠标按键点击时或者鼠标在组件上移动时,触发该回调,event参数包含触发事件时的时间戳、鼠标按键、动作、点击触点在整个屏幕上的坐标和点击触点相对于当前组件的坐标。 |
### MouseEvent对象说明
| 属性名称 | 属性类型 | 描述 |
| -------- | -------- | -------- |
| timestamp | number | 触发事件时的时间戳。 |
| screenX | number | 点击触点相对于屏幕左上角的x轴坐标。 |
| screenY | number | 点击触点相对于屏幕左上角的y轴坐标。 |
| x | number | 点击触点相对于当前组件左上角的x轴坐标。 |
| y | number | 点击触点相对于当前组件左上角的y轴坐标。 |
| button | MouseButton | 鼠标按键。 |
| action | MouseAction | 事件动作。 |
- MouseButton类型说明
| 属性名称 | 属性类型 | 描述 |
| -------- | -------- | -------- |
| Left | number | 鼠标左键。 |
| Right | number | 鼠标右键。 |
| Middle | number | 鼠标中键。 |
| Back | number | 鼠标左侧后退键。 |
| Forward | number | 鼠标左侧前进键。 |
| None | number | 无按键。 |
- MouseAction类型说明
| 属性名称 | 属性类型 | 描述 |
| -------- | -------- | -------- |
| Press | number | 鼠标按键按下。 |
| Release | number | 鼠标按键松开。 |
| Move | number | 鼠标移动。 |
| 名称 | 支持冒泡 | 描述 |
| ---------------------------------------- | ---- | ---------------------------------------- |
| onHover(callback:&nbsp;(isHover:&nbsp;boolean)&nbsp;=&gt;&nbsp;void) | 否 | 鼠标进入或退出组件时触发该回调。<br/>isHover:表示鼠标是否悬浮在组件上,鼠标进入时为true,&nbsp;退出时为false。 |
| onMouse(callback:&nbsp;(event?:&nbsp;MouseEvent)&nbsp;=&gt;&nbsp;void) | 是 | 当前组件被鼠标按键点击时或者鼠标在组件上移动时,触发该回调,event参数包含触发事件时的时间戳、鼠标按键、动作、点击触点在整个屏幕上的坐标和点击触点相对于当前组件的坐标。 |
## MouseEvent对象说明
| 属性名称 | 属性类型 | 描述 |
| --------- | ------------------------------- | -------------------- |
| timestamp | number | 触发事件时的时间戳。 |
| screenX | number | 点击触点相对于屏幕左上角的x轴坐标。 |
| screenY | number | 点击触点相对于屏幕左上角的y轴坐标。 |
| x | number | 点击触点相对于当前组件左上角的x轴坐标。 |
| y | number | 点击触点相对于当前组件左上角的y轴坐标。 |
| button | [MouseButton](#mousebutton类型说明) | 鼠标按键。 |
| action | [MouseAction](#mouseaction类型说明) | 事件动作。 |
## MouseButton类型说明
| 属性名称 | 属性类型 | 描述 |
| ------- | ------ | -------- |
| Left | number | 鼠标左键。 |
| Right | number | 鼠标右键。 |
| Middle | number | 鼠标中键。 |
| Back | number | 鼠标左侧后退键。 |
| Forward | number | 鼠标左侧前进键。 |
| None | number | 无按键。 |
## MouseAction类型说明
| 属性名称 | 属性类型 | 描述 |
| ------- | ------ | ------- |
| Press | number | 鼠标按键按下。 |
| Release | number | 鼠标按键松开。 |
| Move | number | 鼠标移动。 |
## 示例
......
# 任务管理
后台任务
- [后台任务概述](background-task-overview.md)
- [后台任务开发指导](background-task-dev-guide.md)
延迟任务调度
- [延迟任务调度概述](work-scheduler-overview.md)
- [延迟任务调度开发指导](work-scheduler-dev-guide.md)
\ No newline at end of file
......@@ -10,11 +10,11 @@
**表1** 短时任务主要接口
| 接口名 | 描述 |
| -------- | -------- |
| 接口名 | 描述 |
| ---------------------------------------- | ---------------------------------------- |
| requestSuspendDelay(reason:&nbsp;string,&nbsp;callback:&nbsp;Callback&lt;void&gt;):&nbsp;[DelaySuspendInfo](../reference/apis/js-apis-backgroundTaskManager.md#delaysuspendinfo) | 后台应用申请延迟挂起。<br/>延迟挂起时间一般情况下默认值为180000,低电量时默认值为60000。 |
| getRemainingDelayTime(requestId:&nbsp;number):&nbsp;Promise&lt;number&gt; | 获取应用程序进入挂起状态前的剩余时间。<br/>其任务执行结果以Promise形式返回给应用。 |
| cancelSuspendDelay(requestId:&nbsp;number):&nbsp;void | 取消延迟挂起。 |
| getRemainingDelayTime(requestId:&nbsp;number):&nbsp;Promise&lt;number&gt; | 获取应用程序进入挂起状态前的剩余时间。<br/>使用Promise形式返回。 |
| cancelSuspendDelay(requestId:&nbsp;number):&nbsp;void | 取消延迟挂起。 |
### 开发步骤
......@@ -24,12 +24,12 @@
```js
import backgroundTaskManager from '@ohos.backgroundTaskManager';
let myReason = 'test requestSuspendDelay';
let delayInfo = backgroundTaskManager.requestSuspendDelay(myReason, () => {
console.info("Request suspension delay will time out.");
});
var id = delayInfo.requestId;
console.info("requestId is: " + id);
```
......@@ -91,27 +91,27 @@ ohos.permission.KEEP_BACKGROUND_RUNNING
**表2** 长时任务主要接口
| 接口名 | 描述 |
| -------- | -------- |
| 接口名 | 描述 |
| ---------------------------------------- | ---------------------------- |
| startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: WantAgent): Promise&lt;void&gt; | 服务启动后,向系统申请长时任务,使服务一直保持后台运行。 |
| stopBackgroundRunning(context: Context): Promise&lt;void&gt; | 停止后台长时任务的运行。 |
| stopBackgroundRunning(context: Context): Promise&lt;void&gt; | 停止后台长时任务的运行。 |
其中,wantAgent的信息详见([WantAgent](../reference/apis/js-apis-wantAgent.md)
**表3** 后台模式类型
| 参数名 | id值 | 描述 | 配置项 |
| -------- | -------- | -------- | -------- |
| DATA_TRANSFER | 1 | 数据传输 | dataTransfer |
| AUDIO_PLAYBACK | 2 | 音频播放 | audioPlayback |
| AUDIO_RECORDING | 3 | 录音 | audioRecording |
| LOCATION | 4 | 定位导航 | location |
| BLUETOOTH_INTERACTION | 5 | 蓝牙相关 | bluetoothInteraction |
| MULTI_DEVICE_CONNECTION | 6 | 多设备互联 | multiDeviceConnection |
| WIFI_INTERACTION | 7 | WLAN相关(系统保留) | wifiInteraction |
| VOIP | 8 | 音视频通话(系统保留) | voip |
| TASK_KEEPING | 9 | 计算任务(仅供特定设备使用) | taskKeeping |
| 参数名 | id值 | 描述 | 配置项 |
| ----------------------- | ---- | -------------- | --------------------- |
| DATA_TRANSFER | 1 | 数据传输 | dataTransfer |
| AUDIO_PLAYBACK | 2 | 音频播放 | audioPlayback |
| AUDIO_RECORDING | 3 | 录音 | audioRecording |
| LOCATION | 4 | 定位导航 | location |
| BLUETOOTH_INTERACTION | 5 | 蓝牙相关 | bluetoothInteraction |
| MULTI_DEVICE_CONNECTION | 6 | 多设备互联 | multiDeviceConnection |
| WIFI_INTERACTION | 7 | WLAN相关(系统保留) | wifiInteraction |
| VOIP | 8 | 音视频通话(系统保留) | voip |
| TASK_KEEPING | 9 | 计算任务(仅供特定设备使用) | taskKeeping |
### 开发步骤
......@@ -137,7 +137,7 @@ ohos.permission.KEEP_BACKGROUND_RUNNING
]
}
```
2. 申请长时任务
```js
......@@ -173,13 +173,13 @@ ohos.permission.KEEP_BACKGROUND_RUNNING
```js
import backgroundTaskManager from '@ohos.backgroundTaskManager';
import featureAbility from '@ohos.ability.featureAbility';
backgroundTaskManager.stopBackgroundRunning(featureAbility.getContext()).then(() => {
console.info("Operation stopBackgroundRunning succeeded");
}).catch((err) => {
console.error("Operation stopBackgroundRunning failed Cause: " + err);
});
```
### 开发实例
......
# 延迟任务调度开发指导
## 场景介绍
应用要执行对实时性要求不高的任务的时候,比如设备空闲时候做一次数据学习等场景,可以使用延迟调度任务,该机制在满足应用设定条件的时候,会根据系统当前状态,如内存、功耗、温度等统一决策调度时间。
## 接口说明
注册相关接口包导入:
```js
import workScheduler from '@ohos.workScheduler';
```
回调相关接口包导入:
```js
import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility';
```
### 延迟任务调度
**表1** workScheduler主要接口
接口名 | 接口描述
---------------------------------------------------------|-----------------------------------------
startWork(work: WorkInfo): boolean; | 延迟调度任务申请
stopWork(work: WorkInfo, needCancel?: boolean): boolean; | 延迟调度任务取消
getWorkStatus(workId: number, callback: AsyncCallback\<WorkInfo>): void;| 获取延迟调度任务状态(Callback形式)
getWorkStatus(workId: number): Promise\<WorkInfo>; | 获取延迟调度任务状态(Promise形式)
obtainAllWorks(callback: AsyncCallback\<void>): Array\<WorkInfo>;| 获取所有延迟调度任务(Callback形式)
obtainAllWorks(): Promise<Array\<WorkInfo>>;| 获取所有延迟调度任务(Promise形式)
stopAndClearWorks(): boolean;| 停止并清除任务
isLastWorkTimeOut(workId: number, callback: AsyncCallback\<void>): boolean;| 获取上次任务是否超时(针对RepeatWork,Callback形式)
isLastWorkTimeOut(workId: number): Promise\<boolean>;| 获取上次任务是否超时(针对RepeatWork,Promise形式)
**表2** WorkInfo包含参数
接口名|描述|类型
---------------------------------------------------------|-----------------------------------------|---------------------------------------------------------
workId | 延迟任务Id(必填)|number
bundleName | 延迟任务包名(必填)|string
abilityName | 延迟任务回调通知的组件名(必填)|string
networkType | 网络类型 | NetworkType
isCharging | 是否充电 | boolean
chargerType | 充电类型 | ChargingType
batteryLevel | 电量| number
batteryStatus| 电池状态| BatteryStatus
storageRequest|存储状态| StorageRequest
isRepeat|是否循环任务| boolean
repeatCycleTime |循环间隔| number
repeatCount |循环次数| number
**表3** 延迟任务回调接口
接口名 | 接口描述
---------------------------------------------------------|-----------------------------------------
onWorkStart(work: WorkInfo): void; | 延迟调度任务开始回调
onWorkStop(work: WorkInfo): void; | 延迟调度任务结束回调
### 开发步骤
**开发对应的Extension**
import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility';
export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility {
onWorkStart(workInfo) {
console.log('MyWorkSchedulerExtensionAbility onWorkStart' + JSON.stringify(workInfo));
}
onWorkStop(workInfo) {
console.log('MyWorkSchedulerExtensionAbility onWorkStop' + JSON.stringify(workInfo));
}
}
**注册延迟任务**
import workScheduler from '@ohos.workScheduler';
let workInfo = {
workId: 1,
batteryLevel:50,
batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW,
isRepeat: false,
isPersisted: true,
bundleName: "com.example.myapplication",
abilityName: "MyExtension"
}
var res = workScheduler.startWork(workInfo);
console.info("workschedulerLog res:" + res);
**取消延迟任务**
import workScheduler from '@ohos.workScheduler';
let workInfo = {
workId: 1,
batteryLevel:50,
batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW,
isRepeat: false,
isPersisted: true,
bundleName: "com.example.myapplication",
abilityName: "MyExtension"
}
var res = workScheduler.stopWork(workInfo, false);
console.info("workschedulerLog res:" + res);
**获取指定延迟任务**
1.Callback写法
workScheduler.getWorkStatus(50, (err, res) => {
if (err) {
console.info('workschedulerLog getWorkStatus failed, because:' + err.code);
} else {
for (let item in res) {
console.info('workschedulerLog getWorkStatuscallback success,' + item + ' is:' + res[item]);
}
}
});
2.Promise写法
workScheduler.getWorkStatus(50).then((res) => {
for (let item in res) {
console.info('workschedulerLog getWorkStatus success,' + item + ' is:' + res[item]);
}
}).catch((err) => {
console.info('workschedulerLog getWorkStatus failed, because:' + err.code);
})
**获取所有延迟任务**
1.Callback写法
workScheduler.obtainAllWorks((err, res) =>{
if (err) {
console.info('workschedulerLog obtainAllWorks failed, because:' + err.code);
} else {
console.info('workschedulerLog obtainAllWorks success, data is:' + JSON.stringify(res));
}
});
2.Promise写法
workScheduler.obtainAllWorks().then((res) => {
console.info('workschedulerLog obtainAllWorks success, data is:' + JSON.stringify(res));
}).catch((err) => {
console.info('workschedulerLog obtainAllWorks failed, because:' + err.code);
})
**停止并清除任务**
let res = workScheduler.stopAndClearWorks();
console.info("workschedulerLog res:" + res);
**判断上次执行是否超时**
1.Callback写法
workScheduler.isLastWorkTimeOut(500, (err, res) =>{
if (err) {
console.info('workschedulerLog isLastWorkTimeOut failed, because:' + err.code);
} else {
console.info('workschedulerLog isLastWorkTimeOut success, data is:' + res);
}
});
2.Promise写法
workScheduler.isLastWorkTimeOut(500)
.then(res => {
console.info('workschedulerLog isLastWorkTimeOut success, data is:' + res);
})
.catch(err => {
console.info('workschedulerLog isLastWorkTimeOut failed, because:' + err.code);
});
# 延迟任务调度开发指导
## 场景介绍
应用要执行对实时性要求不高的任务的时候,比如设备空闲时候做一次数据学习等场景,可以使用延迟调度任务,该机制在满足应用设定条件的时候,会根据系统当前状态,如内存、功耗、温度等统一决策调度时间。
## 接口说明
注册相关接口包导入:
```js
import workScheduler from '@ohos.workScheduler';
```
回调相关接口包导入:
```js
import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility';
```
### 延迟任务调度
**表1** workScheduler主要接口
接口名 | 接口描述
---------------------------------------------------------|-----------------------------------------
startWork(work: WorkInfo): boolean; | 延迟调度任务申请
stopWork(work: WorkInfo, needCancel?: boolean): boolean; | 延迟调度任务取消
getWorkStatus(workId: number, callback: AsyncCallback\<WorkInfo>): void;| 获取延迟调度任务状态(Callback形式)
getWorkStatus(workId: number): Promise\<WorkInfo>; | 获取延迟调度任务状态(Promise形式)
obtainAllWorks(callback: AsyncCallback\<void>): Array\<WorkInfo>;| 获取所有延迟调度任务(Callback形式)
obtainAllWorks(): Promise<Array\<WorkInfo>>;| 获取所有延迟调度任务(Promise形式)
stopAndClearWorks(): boolean;| 停止并清除任务
isLastWorkTimeOut(workId: number, callback: AsyncCallback\<void>): boolean;| 获取上次任务是否超时(针对RepeatWork,Callback形式)
isLastWorkTimeOut(workId: number): Promise\<boolean>;| 获取上次任务是否超时(针对RepeatWork,Promise形式)
**表2** WorkInfo包含参数
接口名|描述|类型
---------------------------------------------------------|-----------------------------------------|---------------------------------------------------------
workId | 延迟任务Id(必填)|number
bundleName | 延迟任务包名(必填)|string
abilityName | 延迟任务回调通知的组件名(必填)|string
networkType | 网络类型 | NetworkType
isCharging | 是否充电 | boolean
chargerType | 充电类型 | ChargingType
batteryLevel | 电量| number
batteryStatus| 电池状态| BatteryStatus
storageRequest|存储状态| StorageRequest
isRepeat|是否循环任务| boolean
repeatCycleTime |循环间隔| number
repeatCount |循环次数| number
**表3** 延迟任务回调接口
接口名 | 接口描述
---------------------------------------------------------|-----------------------------------------
onWorkStart(work: WorkInfo): void; | 延迟调度任务开始回调
onWorkStop(work: WorkInfo): void; | 延迟调度任务结束回调
### 开发步骤
**开发对应的Extension**
import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility';
export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility {
onWorkStart(workInfo) {
console.log('MyWorkSchedulerExtensionAbility onWorkStart' + JSON.stringify(workInfo));
}
onWorkStop(workInfo) {
console.log('MyWorkSchedulerExtensionAbility onWorkStop' + JSON.stringify(workInfo));
}
}
**注册延迟任务**
import workScheduler from '@ohos.workScheduler';
let workInfo = {
workId: 1,
batteryLevel:50,
batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW,
isRepeat: false,
isPersisted: true,
bundleName: "com.example.myapplication",
abilityName: "MyExtension"
}
var res = workScheduler.startWork(workInfo);
console.info("workschedulerLog res:" + res);
**取消延迟任务**
import workScheduler from '@ohos.workScheduler';
let workInfo = {
workId: 1,
batteryLevel:50,
batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW,
isRepeat: false,
isPersisted: true,
bundleName: "com.example.myapplication",
abilityName: "MyExtension"
}
var res = workScheduler.stopWork(workInfo, false);
console.info("workschedulerLog res:" + res);
**获取指定延迟任务**
1.Callback写法
workScheduler.getWorkStatus(50, (err, res) => {
if (err) {
console.info('workschedulerLog getWorkStatus failed, because:' + err.code);
} else {
for (let item in res) {
console.info('workschedulerLog getWorkStatuscallback success,' + item + ' is:' + res[item]);
}
}
});
2.Promise写法
workScheduler.getWorkStatus(50).then((res) => {
for (let item in res) {
console.info('workschedulerLog getWorkStatus success,' + item + ' is:' + res[item]);
}
}).catch((err) => {
console.info('workschedulerLog getWorkStatus failed, because:' + err.code);
})
**获取所有延迟任务**
1.Callback写法
workScheduler.obtainAllWorks((err, res) =>{
if (err) {
console.info('workschedulerLog obtainAllWorks failed, because:' + err.code);
} else {
console.info('workschedulerLog obtainAllWorks success, data is:' + JSON.stringify(res));
}
});
2.Promise写法
workScheduler.obtainAllWorks().then((res) => {
console.info('workschedulerLog obtainAllWorks success, data is:' + JSON.stringify(res));
}).catch((err) => {
console.info('workschedulerLog obtainAllWorks failed, because:' + err.code);
})
**停止并清除任务**
let res = workScheduler.stopAndClearWorks();
console.info("workschedulerLog res:" + res);
**判断上次执行是否超时**
1.Callback写法
workScheduler.isLastWorkTimeOut(500, (err, res) =>{
if (err) {
console.info('workschedulerLog isLastWorkTimeOut failed, because:' + err.code);
} else {
console.info('workschedulerLog isLastWorkTimeOut success, data is:' + res);
}
});
2.Promise写法
workScheduler.isLastWorkTimeOut(500)
.then(res => {
console.info('workschedulerLog isLastWorkTimeOut success, data is:' + res);
})
.catch(err => {
console.info('workschedulerLog isLastWorkTimeOut failed, because:' + err.code);
});
})
\ No newline at end of file
......@@ -42,7 +42,7 @@
- **语言运行时**
选用方舟语言运行时,提供了针对UI范式语法的解析能力,提供了跨语言调用支持,提供了TS语言高性能运行环境。
选用方舟语言运行时,提供了针对UI范式语法的解析能力、跨语言调用支持的能力和TS语言高性能运行环境。
- **声明式UI后端引擎**
......
......@@ -254,12 +254,13 @@
- 后台代理提醒
- [后台代理概述](background-agent-scheduled-reminder/background-agent-scheduled-reminder-overview.md)
- [后台代理开发指导](background-agent-scheduled-reminder/background-agent-scheduled-reminder-guide.md)
- 后台任务管理
- [后台任务概述](background-task-management/background-task-overview.md)
- [后台任务开发指导](background-task-management/background-task-dev-guide.md)
- 延迟任务调度
- [延迟任务调度概述](work-scheduler/work-scheduler-overview.md)
- [延迟任务调度开发指导](work-scheduler/work-scheduler-dev-guide.md)
- 任务管理
- 后台任务
- [后台任务概述](task-management/background-task-overview.md)
- [后台任务开发指导](task-management/background-task-dev-guide.md)
- 延迟任务调度
- [延迟任务调度概述](task-management/work-scheduler-overview.md)
- [延迟任务调度开发指导](task-management/work-scheduler-dev-guide.md)
- 设备管理
- USB服务
- [USB服务开发概述](device/usb-overview.md)
......
# 延迟任务调度
- [延迟任务调度概述](work-scheduler-overview.md)
- [延迟任务调度开发指导](work-scheduler-dev-guide.md)
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册