提交 00ab7db3 编写于 作者: IT_newip's avatar IT_newip

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

...@@ -103,7 +103,7 @@ ...@@ -103,7 +103,7 @@
- [DFX Overview](subsys-dfx-overview.md) - [DFX Overview](subsys-dfx-overview.md)
- [HiLog Development](subsys-dfx-hilog-rich.md) - [HiLog Development](subsys-dfx-hilog-rich.md)
- [HiLog\_Lite Development](subsys-dfx-hilog-lite.md) - [HiLog\_Lite Development](subsys-dfx-hilog-lite.md)
- [HiTrace Development](subsys-dfx-hitrace.md) - [HiTraceChain Development](subsys-dfx-hitracechain.md)
- [HiCollie Development](subsys-dfx-hicollie.md) - [HiCollie Development](subsys-dfx-hicollie.md)
- HiSysEvent Development - HiSysEvent Development
- [HiSysEvent Logging Configuration](subsys-dfx-hisysevent-logging-config.md) - [HiSysEvent Logging Configuration](subsys-dfx-hisysevent-logging-config.md)
......
...@@ -6,7 +6,7 @@ The DFX subsystem provides the following functions: ...@@ -6,7 +6,7 @@ The DFX subsystem provides the following functions:
- HiLog: implements the logging function. It is applicable to mini-system devices \(reference memory ≥ 128 KiB\), small-system devices \(reference memory ≥ 1 MiB\), and standard-system devices \(reference memory ≥ 128 MB\). - HiLog: implements the logging function. It is applicable to mini-system devices \(reference memory ≥ 128 KiB\), small-system devices \(reference memory ≥ 1 MiB\), and standard-system devices \(reference memory ≥ 128 MB\).
- HiTrace: implements distributed call chain tracing. It is applicable to standard-system devices \(reference memory ≥ 128 MiB\). - HiTraceChain: implements distributed call chain tracing. It is applicable to standard-system devices \(reference memory ≥ 128 MiB\).
- HiCollie: implements thread suspension detection. It is applicable to standard-system devices \(reference memory ≥ 128 MiB\). - HiCollie: implements thread suspension detection. It is applicable to standard-system devices \(reference memory ≥ 128 MiB\).
- HiSysEvent: implements system event logging. It is applicable to standard-system devices \(reference memory ≥ 128 MiB\). - HiSysEvent: implements system event logging. It is applicable to standard-system devices \(reference memory ≥ 128 MiB\).
- HiChecker: implements defect scanning. It is applicable to standard-system devices \(reference memory ≥ 128 MiB\). - HiChecker: implements defect scanning. It is applicable to standard-system devices \(reference memory ≥ 128 MiB\).
...@@ -35,3 +35,4 @@ Event logging means to collect and log events reported during system running. Th ...@@ -35,3 +35,4 @@ Event logging means to collect and log events reported during system running. Th
**System event** **System event**
A system event is an indication of the system status at a given time point during system running. You can use these events to analyze the status change of the system. A system event is an indication of the system status at a given time point during system running. You can use these events to analyze the status change of the system.
<!--no_check-->
...@@ -156,7 +156,7 @@ OpenHarmony支持如下几种系统类型: ...@@ -156,7 +156,7 @@ OpenHarmony支持如下几种系统类型:
## 快速入门 ## 快速入门
- [设备开发快速入门](device-dev/quick-start/quickstart-ide-lite-overview.md) - [设备开发快速入门](device-dev/quick-start/quickstart-overview.md)
- [应用开发快速入门](application-dev/quick-start/start-overview.md) - [应用开发快速入门](application-dev/quick-start/start-overview.md)
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
只有app/Context中的方法属于FA模型对应的Context。该模式下,应用级别的Context和Ability级别的Context都是该类型的实例,如果在应用级别的Context里面调用了Ability级别的方法,会产生错误。所以开发者需要注意Context实例所代表的实际含义。 只有app/Context中的方法属于FA模型对应的Context。该模式下,应用级别的Context和Ability级别的Context都是该类型的实例,如果在应用级别的Context里面调用了Ability级别的方法,会产生错误。所以开发者需要注意Context实例所代表的实际含义。
- Stage模型 - Stage模型
除了app/Context之外的Context都属于Stage模型,分别有application/Context、application/ApplicationContext、application/AbilityStageContext、application/ExtensionContext、application/AbilityContext、application/FormExtensionContext等Context。这些Context的介绍及使用方式将会在[Stage模型和Context详细介绍](#stage模型和context详细介绍)中进行说明。 除了app/Context之外的Context都属于Stage模型,分别有application/Context、application/ApplicationContext、application/AbilityStageContext、application/ExtensionContext、application/AbilityContext、application/FormExtensionContext等Context。这些Context的介绍及使用方式将会在[Stage模型的Context详细介绍](#stage模型的context详细介绍)中进行说明。
![contextIntroduction](figures/contextIntroduction.png) ![contextIntroduction](figures/contextIntroduction.png)
...@@ -54,7 +54,7 @@ setDisplayOrientation(orientation: bundle.DisplayOrientation): Promise<void>; ...@@ -54,7 +54,7 @@ setDisplayOrientation(orientation: bundle.DisplayOrientation): Promise<void>;
示例: 示例:
```javascript ```javascript
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
import bundle from '../@ohos.bundle'; import bundle from '@ohos.bundle';
export default { export default {
onCreate() { onCreate() {
...@@ -71,13 +71,13 @@ export default { ...@@ -71,13 +71,13 @@ export default {
} }
``` ```
## Stage模型Context详细介绍 ## Stage模型Context详细介绍
​ Stage模型有如下几类Context: ​ Stage模型有如下几类Context:
### application/Context ### application/Context
​ application/Context类型的Context是基类Context,里面提供了应用的一些基础信息:resourceManager、applicationInfo、cacheDir、area等,还有应用的一些基本方法:createBundleContext等。 ​ application/Context是基类Context。里面提供了应用的一些基础信息:resourceManager、applicationInfo、cacheDir、area等,还有应用的一些基本方法:createModuleContext等。
**d.ts声明** **d.ts声明**
......
...@@ -12,20 +12,20 @@ continuationManager作为流转能力的入口,主要用于拉起系统中的 ...@@ -12,20 +12,20 @@ continuationManager作为流转能力的入口,主要用于拉起系统中的
## 接口说明 ## 接口说明
| 接口名 | 接口描述 | | 接口名 | 接口描述 |
| ---------------------------------------------------------------------------------------------- | ----------- | | ---------------------------------------------------------------------------------------------- | ----------- |
| register(callback: AsyncCallback\<number>): void | 注册流转管理服务,并获取对应的注册token,无过滤条件(AsyncCallback)。 | | registerContinuation(callback: AsyncCallback\<number>): void | 注册流转管理服务,并获取对应的注册token,无过滤条件(AsyncCallback)。 |
| register(options: ContinuationExtraParams, callback: AsyncCallback\<number>): void | 注册流转管理服务,并获取对应的注册token(AsyncCallback)。 | | registerContinuation(options: ContinuationExtraParams, callback: AsyncCallback\<number>): void | 注册流转管理服务,并获取对应的注册token(AsyncCallback)。 |
| register(options?: ContinuationExtraParams): Promise\<number> | 连接流转管理服务,并获取对应的注册token(Promise)。 | | registerContinuation(options?: ContinuationExtraParams): Promise\<number> | 连接流转管理服务,并获取对应的注册token(Promise)。 |
| on(type: "deviceConnect", token: number, callback: Callback\<Array\<ContinuationResult>>): void | 监听设备连接状态(Callback)。 | | on(type: "deviceConnect", token: number, callback: Callback\<Array\<ContinuationResult>>): void | 监听设备连接状态(Callback)。 |
| on(type: "deviceDisconnect", token: number, callback: Callback\<Array\<string>>): void | 监听设备断开状态(Callback)。 | | on(type: "deviceDisconnect", token: number, callback: Callback\<Array\<string>>): void | 监听设备断开状态(Callback)。 |
| off(type: "deviceConnect", token: number): void | 取消监听设备连接状态。 | | off(type: "deviceConnect", token: number): void | 取消监听设备连接状态。 |
| off(type: "deviceDisconnect", token: number): void | 取消监听设备断开状态。 | | off(type: "deviceDisconnect", token: number): void | 取消监听设备断开状态。 |
| startDeviceManager(token: number, callback: AsyncCallback\<void>): void | 拉起设备选择模块,可显示组网内可选择设备列表信息,无过滤条件(AsyncCallback)。 | | startContinuationDeviceManager(token: number, callback: AsyncCallback\<void>): void | 拉起设备选择模块,可显示组网内可选择设备列表信息,无过滤条件(AsyncCallback)。 |
| startDeviceManager(token: number, options: ContinuationExtraParams, callback: AsyncCallback\<void>): void | 拉起设备选择模块,可显示组网内可选择设备列表信息(AsyncCallback)。 | | startContinuationDeviceManager(token: number, options: ContinuationExtraParams, callback: AsyncCallback\<void>): void | 拉起设备选择模块,可显示组网内可选择设备列表信息(AsyncCallback)。 |
| startDeviceManager(token: number, options?: ContinuationExtraParams): Promise\<void> | 拉起设备选择模块,可显示组网内可选择设备列表信息(Promise)。 | | startContinuationDeviceManager(token: number, options?: ContinuationExtraParams): Promise\<void> | 拉起设备选择模块,可显示组网内可选择设备列表信息(Promise)。 |
| updateConnectStatus(token: number, deviceId: string, status: DeviceConnectState, callback: AsyncCallback\<void>): void | 通知设备选择模块,更新当前的流转状态(AsyncCallback)。 | | updateContinuationState(token: number, deviceId: string, status: DeviceConnectState, callback: AsyncCallback\<void>): void | 通知设备选择模块,更新当前的流转状态(AsyncCallback)。 |
| updateConnectStatus(token: number, deviceId: string, status: DeviceConnectState): Promise\<void> | 通知设备选择模块,更新当前的流转状态(Promise)。 | | updateContinuationState(token: number, deviceId: string, status: DeviceConnectState): Promise\<void> | 通知设备选择模块,更新当前的流转状态(Promise)。 |
| unregister(token: number, callback: AsyncCallback\<void>): void | 取消注册流转管理服务,传入注册时获取的token进行取消注册(AsyncCallback)。 | | unregisterContinuation(token: number, callback: AsyncCallback\<void>): void | 取消注册流转管理服务,传入注册时获取的token进行取消注册(AsyncCallback)。 |
| unregister(token: number): Promise\<void> | 取消注册流转管理服务,传入注册时获取的token进行取消注册(Promise)。 | | unregisterContinuation(token: number): Promise\<void> | 取消注册流转管理服务,传入注册时获取的token进行取消注册(Promise)。 |
## 开发步骤 ## 开发步骤
1. 导入continuationManager模块。 1. 导入continuationManager模块。
...@@ -138,13 +138,16 @@ continuationManager作为流转能力的入口,主要用于拉起系统中的 ...@@ -138,13 +138,16 @@ continuationManager作为流转能力的入口,主要用于拉起系统中的
```ts ```ts
let token: number = -1; // 用于保存注册成功并返回的token,后续使用其完成监听设备连接/断开状态、拉起设备选择模块以及更新流转状态的动作 let token: number = -1; // 用于保存注册成功并返回的token,后续使用其完成监听设备连接/断开状态、拉起设备选择模块以及更新流转状态的动作
try {
continuationManager.register().then((data) => { continuationManager.registerContinuation().then((data) => {
console.info('register finished, ' + JSON.stringify(data)); console.info('registerContinuation finished, ' + JSON.stringify(data));
token = data; // 获取到对应的注册token,并赋值给token变量 token = data; // 获取到对应的注册token,并赋值给token变量
}).catch((err) => { }).catch((err) => {
console.error('register failed, cause: ' + JSON.stringify(err)); console.error('registerContinuation failed, cause: ' + JSON.stringify(err));
}); });
} catch (err) {
console.error('registerContinuation failed, cause: ' + JSON.stringify(err));
}
``` ```
4. 监听设备状态。 4. 监听设备状态。
...@@ -154,28 +157,32 @@ continuationManager作为流转能力的入口,主要用于拉起系统中的 ...@@ -154,28 +157,32 @@ continuationManager作为流转能力的入口,主要用于拉起系统中的
```ts ```ts
let remoteDeviceId: string = ""; // 用于保存用户选择的远端设备信息,后续使用其完成跨端迁移或多端协同操作 let remoteDeviceId: string = ""; // 用于保存用户选择的远端设备信息,后续使用其完成跨端迁移或多端协同操作
// 参数token为注册token try {
continuationManager.on("deviceConnect", token, (continuationResults) => { // 参数token为注册token
console.info('registerDeviceConnectCallback len: ' + continuationResults.length); continuationManager.on("deviceConnect", token, (continuationResults) => {
if (continuationResults.length <= 0) { console.info('registerDeviceConnectCallback len: ' + continuationResults.length);
console.info('no selected device'); if (continuationResults.length <= 0) {
return; console.info('no selected device');
} return;
remoteDeviceId = continuationResults[0].id; // 将选择的第一个远端设备deviceId赋值给remoteDeviceId变量 }
remoteDeviceId = continuationResults[0].id; // 将选择的第一个远端设备deviceId赋值给remoteDeviceId变量
// 将remoteDeviceId参数传给want
let want = { // 将remoteDeviceId参数传给want
deviceId: remoteDeviceId, let want = {
bundleName: 'ohos.samples.continuationmanager', deviceId: remoteDeviceId,
abilityName: 'MainAbility' bundleName: 'ohos.samples.continuationmanager',
}; abilityName: 'MainAbility'
// 发起多端协同操作,需申请ohos.permission.DISTRIBUTED_DATASYNC权限 };
globalThis.abilityContext.startAbility(want).then((data) => { // 发起多端协同操作,需申请ohos.permission.DISTRIBUTED_DATASYNC权限
console.info('StartRemoteAbility finished, ' + JSON.stringify(data)); globalThis.abilityContext.startAbility(want).then((data) => {
}).catch((err) => { console.info('StartRemoteAbility finished, ' + JSON.stringify(data));
console.error('StartRemoteAbility failed, cause: ' + JSON.stringify(err)); }).catch((err) => {
console.error('StartRemoteAbility failed, cause: ' + JSON.stringify(err));
});
}); });
}); } catch (err) {
console.error('on failed, cause: ' + JSON.stringify(err));
}
``` ```
上述多端协同操作为Stage平台的跨设备拉起,FA平台详情见[PageAbility开发指导](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/ability/fa-pageability.md) 上述多端协同操作为Stage平台的跨设备拉起,FA平台详情见[PageAbility开发指导](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/ability/fa-pageability.md)
...@@ -187,35 +194,43 @@ continuationManager作为流转能力的入口,主要用于拉起系统中的 ...@@ -187,35 +194,43 @@ continuationManager作为流转能力的入口,主要用于拉起系统中的
let deviceConnectStatus: continuationManager.DeviceConnectState = continuationManager.DeviceConnectState.CONNECTED; let deviceConnectStatus: continuationManager.DeviceConnectState = continuationManager.DeviceConnectState.CONNECTED;
// 参数token为注册token,参数remoteDeviceId为获取到的remoteDeviceId // 参数token为注册token,参数remoteDeviceId为获取到的remoteDeviceId
continuationManager.updateConnectStatus(token, remoteDeviceId, deviceConnectStatus).then((data) => { try {
console.info('updateConnectStatus finished, ' + JSON.stringify(data)); continuationManager.updateContinuationState(token, remoteDeviceId, deviceConnectStatus).then((data) => {
}).catch((err) => { console.info('updateContinuationState finished, ' + JSON.stringify(data));
console.error('updateConnectStatus failed, cause: ' + JSON.stringify(err)); }).catch((err) => {
}); console.error('updateContinuationState failed, cause: ' + JSON.stringify(err));
});
} catch (err) {
console.error('updateContinuationState failed, cause: ' + JSON.stringify(err));
}
``` ```
监听设备断开状态,方便用户终止跨端迁移或多端协同操作,代码示例如下: 监听设备断开状态,方便用户终止跨端迁移或多端协同操作,代码示例如下:
```ts ```ts
// 参数token为注册token try {
continuationManager.on("deviceDisconnect", token, (deviceIds) => { // 参数token为注册token
console.info('onDeviceDisconnect len: ' + deviceIds.length); continuationManager.on("deviceDisconnect", token, (deviceIds) => {
if (deviceIds.length <= 0) { console.info('onDeviceDisconnect len: ' + deviceIds.length);
console.info('no unselected device'); if (deviceIds.length <= 0) {
return; console.info('no unselected device');
} return;
}
// 更新设备流转状态 // 更新设备流转状态
let unselectedDeviceId: string = deviceIds[0]; // 将取消选择的第一个远端设备deviceId赋值给unselectedDeviceId变量 let unselectedDeviceId: string = deviceIds[0]; // 将取消选择的第一个远端设备deviceId赋值给unselectedDeviceId变量
let deviceConnectStatus: continuationManager.DeviceConnectState = continuationManager.DeviceConnectState.DISCONNECTING; // 设备断开状态 let deviceConnectStatus: continuationManager.DeviceConnectState = continuationManager.DeviceConnectState.DISCONNECTING; // 设备断开状态
// 参数token为注册token,参数unselectedDeviceId为获取到的unselectedDeviceId // 参数token为注册token,参数unselectedDeviceId为获取到的unselectedDeviceId
continuationManager.updateConnectStatus(token, unselectedDeviceId, deviceConnectStatus).then((data) => { continuationManager.updateContinuationState(token, unselectedDeviceId, deviceConnectStatus).then((data) => {
console.info('updateConnectStatus finished, ' + JSON.stringify(data)); console.info('updateContinuationState finished, ' + JSON.stringify(data));
}).catch((err) => { }).catch((err) => {
console.error('updateConnectStatus failed, cause: ' + JSON.stringify(err)); console.error('updateContinuationState failed, cause: ' + JSON.stringify(err));
});
}); });
}); } catch (err) {
console.error('updateContinuationState failed, cause: ' + JSON.stringify(err));
}
``` ```
5. 拉起设备选择模块,可显示组网内可选择设备列表信息,供用户选择。 5. 拉起设备选择模块,可显示组网内可选择设备列表信息,供用户选择。
...@@ -229,12 +244,16 @@ continuationManager作为流转能力的入口,主要用于拉起系统中的 ...@@ -229,12 +244,16 @@ continuationManager作为流转能力的入口,主要用于拉起系统中的
continuationMode: continuationManager.ContinuationMode.COLLABORATION_SINGLE // 设备选择模块单选模式 continuationMode: continuationManager.ContinuationMode.COLLABORATION_SINGLE // 设备选择模块单选模式
}; };
// 参数token为注册token try {
continuationManager.startDeviceManager(token, continuationExtraParams).then((data) => { // 参数token为注册token
console.info('startDeviceManager finished, ' + JSON.stringify(data)); continuationManager.startContinuationDeviceManager(token, continuationExtraParams).then((data) => {
}).catch((err) => { console.info('startContinuationDeviceManager finished, ' + JSON.stringify(data));
console.error('startDeviceManager failed, cause: ' + JSON.stringify(err)); }).catch((err) => {
}); console.error('startContinuationDeviceManager failed, cause: ' + JSON.stringify(err));
});
} catch (err) {
console.error('startContinuationDeviceManager failed, cause: ' + JSON.stringify(err));
}
``` ```
6. 当用户不打算再进行跨端迁移或多端协同操作时,可以传入注册时获取的token进行取消注册。 6. 当用户不打算再进行跨端迁移或多端协同操作时,可以传入注册时获取的token进行取消注册。
...@@ -242,10 +261,14 @@ continuationManager作为流转能力的入口,主要用于拉起系统中的 ...@@ -242,10 +261,14 @@ continuationManager作为流转能力的入口,主要用于拉起系统中的
取消注册流转管理服务的代码示例如下: 取消注册流转管理服务的代码示例如下:
```ts ```ts
// 参数token为注册token try {
continuationManager.unregister(token).then((data) => { // 参数token为注册token
console.info('unregister finished, ' + JSON.stringify(data)); continuationManager.unregisterContinuation(token).then((data) => {
}).catch((err) => { console.info('unregisterContinuation finished, ' + JSON.stringify(data));
console.error('unregister failed, cause: ' + JSON.stringify(err)); }).catch((err) => {
}); console.error('unregisterContinuation failed, cause: ' + JSON.stringify(err));
});
} catch (err) {
console.error('unregisterContinuation failed, cause: ' + JSON.stringify(err));
}
``` ```
\ No newline at end of file
...@@ -12,9 +12,9 @@ Ability支持单实例、多实例和指定实例3种启动模式,在module.js ...@@ -12,9 +12,9 @@ Ability支持单实例、多实例和指定实例3种启动模式,在module.js
| 启动模式 | 描述 |说明 | | 启动模式 | 描述 |说明 |
| ----------- | ------- |---------------- | | ----------- | ------- |---------------- |
| standard | 多实例 | 每次startAbility都会启动一个新的实例 | | standard | 标准模式 | 每次startAbility都会启动一个新的实例。 |
| singleton | 单实例 | 系统中只存在唯一一个实例,startAbility时,如果已存在,则复用系统中的唯一一个实例 | | singleton | 单实例模式 | 系统中只存在唯一一个实例,startAbility时,如果已存在,则复用系统中的唯一一个实例。 |
| specified | 指定实例 | 运行时由Ability内部业务决定是否创建多实例 | | specified | 指定实例 | 运行时由Ability内部业务决定是否创建多实例 |
缺省情况下是singleton模式,module.json5示例如下: 缺省情况下是singleton模式,module.json5示例如下:
```json ```json
......
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
+ **Standard**:每次startAbility调用,都会在应用进程中创建一个该类型的实例,如下图Ability2的两个实例; + **Standard**:每次startAbility调用,都会在应用进程中创建一个该类型的实例,如下图Ability2的两个实例;
+ **Specified**:允许开发者在系统创建AbilityRecord之前,为该实例创建一个key,后续每次创建该类型的Ability实例都会询问应用使用哪个key对应的Ability实例,来响应startAbility请求,如下图Ability3。 + **Specified**:允许开发者在系统创建Ability实例之前,为该实例创建一个key,后续每次创建该类型的Ability实例都会询问应用使用哪个key对应的Ability实例,来响应startAbility请求,如下图Ability3。
​ 每个Ability实例都对应了一个Launcher Recent中看到的Mission(任务)。 ​ 每个Ability实例都对应了一个Launcher Recent中看到的Mission(任务)。
......
...@@ -68,6 +68,7 @@ app.json示例: ...@@ -68,6 +68,7 @@ app.json示例:
| keepAlive | 标识应用是否始终保持运行状态,仅支持系统应用配置,三方应用配置不生效。标签值为布尔类型,如果为true,应用将始终保持为运行状态,并且在系统启动的时候会被系统启动起来,应用进程退出后,系统也会重新启动该应用进程。 | 布尔值 | 可缺省,缺省值为false。 | | keepAlive | 标识应用是否始终保持运行状态,仅支持系统应用配置,三方应用配置不生效。标签值为布尔类型,如果为true,应用将始终保持为运行状态,并且在系统启动的时候会被系统启动起来,应用进程退出后,系统也会重新启动该应用进程。 | 布尔值 | 可缺省,缺省值为false。 |
| userDataClearable | 标识是否允许应用清除用户数据,仅支持系统应用配置,三方应用配置不生效,该字段从API8开始支持。 | 布尔值 | 可缺省,缺省值为true。 | | userDataClearable | 标识是否允许应用清除用户数据,仅支持系统应用配置,三方应用配置不生效,该字段从API8开始支持。 | 布尔值 | 可缺省,缺省值为true。 |
| accessible | 标识应用的安装目录是否是可访问的,仅支持系统应用配置,三方应用配置不生效。配置为true表示安装目录可以被三方应用访问,false表示不能被三方应用访问。 | 布尔值 | 可缺省,缺省值为false。 | | accessible | 标识应用的安装目录是否是可访问的,仅支持系统应用配置,三方应用配置不生效。配置为true表示安装目录可以被三方应用访问,false表示不能被三方应用访问。 | 布尔值 | 可缺省,缺省值为false。 |
| multiProjects | 标识当前工程是否支持多工程。 | 布尔值 | 可缺省,缺省值为false。 |
| 设备类型 | 该标签可以配置多个,表示具体设备上的特殊配置信息,具体的设备类型有:"tablet"、"tv"、"wearable"、"car",可能包含的字段有:minAPIVersion、distributedNotificationEnabled、keepAlive、removable。 | 对象 | 该标签可缺省,缺省值使用app下面相关的字段。 | | 设备类型 | 该标签可以配置多个,表示具体设备上的特殊配置信息,具体的设备类型有:"tablet"、"tv"、"wearable"、"car",可能包含的字段有:minAPIVersion、distributedNotificationEnabled、keepAlive、removable。 | 对象 | 该标签可缺省,缺省值使用app下面相关的字段。 |
### module对象内部结构 ### module对象内部结构
......
...@@ -36,9 +36,9 @@ var AtManager = abilityAccessCtrl.createAtManager(); ...@@ -36,9 +36,9 @@ var AtManager = abilityAccessCtrl.createAtManager();
管理访问控制模块的实例。 管理访问控制模块的实例。
### verifyAccessToken ### checkAccessToken<sup>9+</sup>
verifyAccessToken(tokenID: number, permissionName: string): Promise&lt;GrantStatus&gt; checkAccessToken(tokenID: number, permissionName: string): Promise&lt;GrantStatus&gt;
校验应用是否授予权限,使用Promise方式异步返回结果。 校验应用是否授予权限,使用Promise方式异步返回结果。
...@@ -55,17 +55,24 @@ verifyAccessToken(tokenID: number, permissionName: string): Promise&lt;GrantStat ...@@ -55,17 +55,24 @@ verifyAccessToken(tokenID: number, permissionName: string): Promise&lt;GrantStat
| 类型 | 说明 | | 类型 | 说明 |
| :------------ | :---------------------------------- | | :------------ | :---------------------------------- |
| Promise&lt;GrantStatus&gt; | Promise实例,用于获取异步返回的授权状态结果。 | | Promise&lt;GrantStatus&gt; | Promise对象。返回授权状态结果。 |
**示例:** **示例:**
```js ```js
var AtManager = abilityAccessCtrl.createAtManager(); import privacyManager from '@ohos.abilityAccessCtrl';
let tokenID = 0;
let promise = AtManager.verifyAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS"); let AtManager = abilityAccessCtrl.createAtManager();
promise.then(data => { let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
console.log(`promise: data->${JSON.stringify(data)}`); try {
}); AtManager.checkAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS").then((data) => {
console.log(`checkAccessToken success, data->${JSON.stringify(data)}`);
}).catch((err) => {
console.log(`checkAccessToken fail, err->${JSON.stringify(err)}`);
});
} catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
### verifyAccessTokenSync<sup>9+</sup> ### verifyAccessTokenSync<sup>9+</sup>
...@@ -100,7 +107,7 @@ console.log(`data->${JSON.stringify(data)}`); ...@@ -100,7 +107,7 @@ console.log(`data->${JSON.stringify(data)}`);
### grantUserGrantedPermission ### grantUserGrantedPermission
grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number): Promise&lt;number&gt; grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number): Promise&lt;void&gt;
授予应用user grant权限,使用Promise方式异步返回结果。 授予应用user grant权限,使用Promise方式异步返回结果。
...@@ -114,7 +121,7 @@ grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFl ...@@ -114,7 +121,7 @@ grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFl
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------- | ---- | ------------------------------------------------------------ | | --------- | ------------------- | ---- | ------------------------------------------------------------ |
| tokenID | number | 是 | 目标应用的身份标识。 | | tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得 |
| permissionName | string | 是 | 被授予的权限名称。 | | permissionName | string | 是 | 被授予的权限名称。 |
| permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 | | permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 |
...@@ -122,23 +129,30 @@ grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFl ...@@ -122,23 +129,30 @@ grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFl
| 类型 | 说明 | | 类型 | 说明 |
| :------------ | :---------------------------------- | | :------------ | :---------------------------------- |
| Promise&lt;number&gt; | Promise实例,用于获取异步返回的授权操作结果。 | | Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
**示例:** **示例:**
```js ```js
var AtManager = abilityAccessCtrl.createAtManager(); import privacyManager from '@ohos.abilityAccessCtrl';
let tokenID = 0;
let AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
let permissionFlag = 1; let permissionFlag = 1;
let promise = AtManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag); try {
promise.then(data => { AtManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag).then(() => {
console.log(`promise: data->${JSON.stringify(data)}`); console.log('grantUserGrantedPermission success');
}); }).catch((err) => {
console.log(`grantUserGrantedPermission fail, err->${JSON.stringify(err)}`);
});
} catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
### grantUserGrantedPermission ### grantUserGrantedPermission
grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number, callback: AsyncCallback&lt;number&gt;): void grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number, callback: AsyncCallback&lt;void&gt;): void
授予应用user grant权限,使用callback回调异步返回结果。 授予应用user grant权限,使用callback回调异步返回结果。
...@@ -152,29 +166,35 @@ grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFl ...@@ -152,29 +166,35 @@ grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFl
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------- | ---- | ------------------------------------------------------------ | | --------- | ------------------- | ---- | ------------------------------------------------------------ |
| tokenID | number | 是 | 目标应用的身份标识。 | | tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得 |
| permissionName | string | 是 | 被授予的权限名称。 | | permissionName | string | 是 | 被授予的权限名称。 |
| permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 | | permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 检查授予应用user grant权限的操作结果同步的回调。 | | callback | AsyncCallback&lt;void&gt; | 是 | 检查授予应用user grant权限的操作结果同步的回调。 |
**示例:** **示例:**
```js ```js
import privacyManager from '@ohos.abilityAccessCtrl';
var AtManager = abilityAccessCtrl.createAtManager(); var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0; let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
let permissionFlag = 1; let permissionFlag = 1;
AtManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag, (err, data) => { try {
if (err) { AtManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag, (data, err) => {
console.log(`callback: err->${JSON.stringify(err)}`); if (err) {
} else { console.log(`grantUserGrantedPermission fail, err->${JSON.stringify(err)}`);
console.log(`callback: data->${JSON.stringify(data)}`); } else {
} console.log('grantUserGrantedPermission success');
}); }
});
} catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
### revokeUserGrantedPermission ### revokeUserGrantedPermission
revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number): Promise&lt;number&gt; revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number): Promise&lt;void&gt;
撤销应用user grant权限,使用Promise方式异步返回结果。 撤销应用user grant权限,使用Promise方式异步返回结果。
...@@ -188,7 +208,7 @@ revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionF ...@@ -188,7 +208,7 @@ revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionF
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------- | ---- | ------------------------------------------------------------ | | --------- | ------------------- | ---- | ------------------------------------------------------------ |
| tokenID | number | 是 | 目标应用的身份标识。 | | tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得 |
| permissionName | string | 是 | 被撤销的权限名称。 | | permissionName | string | 是 | 被撤销的权限名称。 |
| permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 | | permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 |
...@@ -196,23 +216,30 @@ revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionF ...@@ -196,23 +216,30 @@ revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionF
| 类型 | 说明 | | 类型 | 说明 |
| :------------ | :---------------------------------- | | :------------ | :---------------------------------- |
| Promise&lt;number&gt; | Promise实例,用于获取异步返回的授权操作结果。 | | Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
**示例:** **示例:**
```js ```js
var AtManager = abilityAccessCtrl.createAtManager(); import privacyManager from '@ohos.abilityAccessCtrl';
let tokenID = 0;
let AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
let permissionFlag = 1; let permissionFlag = 1;
let promise = AtManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag); try {
promise.then(data => { AtManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag).then(() => {
console.log(`promise: data->${JSON.stringify(data)}`); console.log('revokeUserGrantedPermission success');
}); }).catch((err) => {
console.log(`revokeUserGrantedPermission fail, err->${JSON.stringify(err)}`);
});
} catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
### revokeUserGrantedPermission ### revokeUserGrantedPermission
revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number, callback: AsyncCallback&lt;number&gt;): void revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number, callback: AsyncCallback&lt;void&gt;): void
撤销应用user grant权限,使用callback回调异步返回结果。 撤销应用user grant权限,使用callback回调异步返回结果。
...@@ -226,24 +253,30 @@ revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionF ...@@ -226,24 +253,30 @@ revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionF
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------- | ---- | ------------------------------------------------------------ | | --------- | ------------------- | ---- | ------------------------------------------------------------ |
| tokenID | number | 是 | 目标应用的身份标识。 | | tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得 |
| permissionName | string | 是 | 被撤销的权限名称。 | | permissionName | string | 是 | 被撤销的权限名称。 |
| permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 | | permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 检查撤销应用user grant权限的操作结果同步的回调。 | | callback | AsyncCallback&lt;void&gt; | 是 | 检查撤销应用user grant权限的操作结果同步的回调。 |
**示例:** **示例:**
```js ```js
import privacyManager from '@ohos.abilityAccessCtrl';
var AtManager = abilityAccessCtrl.createAtManager(); var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0; let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
let permissionFlag = 1; let permissionFlag = 1;
AtManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag, (err, data) => { try {
if (err) { AtManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag, (data, err) => {
console.log(`callback: err->${JSON.stringify(err)}`); if (err) {
} else { console.log(`revokeUserGrantedPermission fail, err->${JSON.stringify(err)}`);
console.log(`callback: data->${JSON.stringify(data)}`); } else {
} console.log('revokeUserGrantedPermission success');
}); }
});
} catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
### getPermissionFlags ### getPermissionFlags
...@@ -262,24 +295,32 @@ getPermissionFlags(tokenID: number, permissionName: string): Promise&lt;number&g ...@@ -262,24 +295,32 @@ getPermissionFlags(tokenID: number, permissionName: string): Promise&lt;number&g
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------- | ---- | ------------------------------------------------------------ | | --------- | ------------------- | ---- | ------------------------------------------------------------ |
| tokenID | number | 是 | 目标应用的身份标识。 | | tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得 |
| permissionName | string | 是 | 查询的权限名称。 | | permissionName | string | 是 | 查询的权限名称。 |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| :------------ | :---------------------------------- | | :------------ | :---------------------------------- |
| Promise&lt;number&gt; | Promise实例,用于获取异步返回的查询结果。 | | Promise&lt;number&gt; | Promise对象。返回查询结果。 |
**示例:** **示例:**
```js ```js
var AtManager = abilityAccessCtrl.createAtManager(); import privacyManager from '@ohos.abilityAccessCtrl';
let tokenID = 0;
let promise = AtManager.getPermissionFlags(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS"); let AtManager = abilityAccessCtrl.createAtManager();
promise.then(data => { let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
console.log(`promise: data->${JSON.stringify(data)}`); let permissionFlag = 1;
}); try {
AtManager.getPermissionFlags(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS").then((data) => {
console.log(`getPermissionFlags success, data->${JSON.stringify(data)}`);
}).catch((err) = > {
console.log(`getPermissionFlags fail, err->${JSON.stringify(err)}`);
});
} catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
### getVersion<sup>9+</sup> ### getVersion<sup>9+</sup>
...@@ -296,7 +337,7 @@ getVersion(): Promise&lt;number&gt; ...@@ -296,7 +337,7 @@ getVersion(): Promise&lt;number&gt;
| 类型 | 说明 | | 类型 | 说明 |
| :------------ | :---------------------------------- | | :------------ | :---------------------------------- |
| Promise&lt;number&gt; | Promise实例,用于获取异步返回的版本号。 | | Promise&lt;number&gt; | Promise对象。返回查询到的版本号。 |
**示例:** **示例:**
...@@ -334,18 +375,15 @@ on(type: 'permissionStateChange', tokenIDList: Array&lt;number&gt;, permissionNa ...@@ -334,18 +375,15 @@ on(type: 'permissionStateChange', tokenIDList: Array&lt;number&gt;, permissionNa
```js ```js
import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
function OnPermissionStateChanged(data){
console.debug("receive permission state change, data:" + JSON.stringify(data));
}
let atManager = abilityAccessCtrl.createAtManager(); let atManager = abilityAccessCtrl.createAtManager();
let type: 'permissionStateChange' = 'permissionStateChange';
let tokenIDList: Array<number> = []; let tokenIDList: Array<number> = [];
let permissionNameList: Array<string> = []; let permissionNameList: Array<string> = [];
try{ try {
atManager.on(type, tokenIDList, permissionNameList, OnPermissionStateChanged); atManager.on('permissionStateChange', tokenIDList, permissionNameList, (data) => {
} console.debug("receive permission state change, data:" + JSON.stringify(data));
catch(err){ });
console.error("on err:" + JSON.stringify(err)); } catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
} }
``` ```
...@@ -376,17 +414,51 @@ off(type: 'permissionStateChange', tokenIDList: Array&lt;number&gt;, permissionN ...@@ -376,17 +414,51 @@ off(type: 'permissionStateChange', tokenIDList: Array&lt;number&gt;, permissionN
import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
let atManager = abilityAccessCtrl.createAtManager(); let atManager = abilityAccessCtrl.createAtManager();
let type: 'permissionStateChange' = 'permissionStateChange';
let tokenIDList: Array<number> = []; let tokenIDList: Array<number> = [];
let permissionNameList: Array<string> = []; let permissionNameList: Array<string> = [];
try{ try {
atManager.off(type, tokenIDList, permissionNameList); atManager.off('permissionStateChange', tokenIDList, permissionNameList);
} } catch(err) {
catch(err){ console.log(`catch err->${JSON.stringify(err)}`);
console.error("off err:" + JSON.stringify(err));
} }
``` ```
### verifyAccessToken<sup>(deprecated)</sup>
verifyAccessToken(tokenID: number, permissionName: string): Promise&lt;GrantStatus&gt;
校验应用是否授予权限,使用Promise方式异步返回结果。
> **说明:** 从API version 9开始不再维护,建议使用[checkAccessToken](#checkaccesstoken9)替代。
**系统能力:** SystemCapability.Security.AccessToken
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------- | ---- | ------------------------------------------ |
| tokenID | number | 是 | 要校验的目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得 |
| permissionName | string | 是 | 需要校验的权限名称。 |
**返回值:**
| 类型 | 说明 |
| :------------ | :---------------------------------- |
| Promise&lt;GrantStatus&gt; | Promise对象。返回授权状态结果。 |
**示例:**
```js
import privacyManager from '@ohos.abilityAccessCtrl';
var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
let promise = AtManager.verifyAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS");
promise.then(data => {
console.log(`promise: data->${JSON.stringify(data)}`);
});
```
### GrantStatus ### GrantStatus
表示授权状态的枚举。 表示授权状态的枚举。
......
...@@ -16,17 +16,17 @@ import ElementName from '@ohos.bundle'; ...@@ -16,17 +16,17 @@ import ElementName from '@ohos.bundle';
import image from '@ohos.multimedia.image'; import image from '@ohos.multimedia.image';
import missionManager from '@ohos.application.missionManager'; import missionManager from '@ohos.application.missionManager';
missionManager.getMissionInfos("", 10, (error, missions) => { missionManager.getMissionInfos("", 10, (error, missions) => {
console.log("getMissionInfos is called, error.code = " + error.code); console.log("getMissionInfos is called, error.code = " + error.code);
console.log("size = " + missions.length); console.log("size = " + missions.length);
console.log("missions = " + JSON.stringify(missions)); console.log("missions = " + JSON.stringify(missions));
var id = missions[0].missionId; var id = missions[0].missionId;
missionManager.getMissionSnapShot("", id, (error, snapshot) => { missionManager.getMissionSnapShot("", id, (error, snapshot) => {
console.log("getMissionSnapShot is called, error.code = " + error.code); console.log("getMissionSnapShot is called, error.code = " + error.code);
console.log("bundleName = " + snapshot.ability.bundleName); console.log("bundleName = " + snapshot.ability.bundleName);
})
}) })
})
``` ```
## MissionSnapshot ## MissionSnapshot
......
...@@ -52,7 +52,7 @@ onAcceptWant(want: Want): string; ...@@ -52,7 +52,7 @@ onAcceptWant(want: Want): string;
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| string | 用户返回一个ability标识,如果之前启动过标识的ability,不创建新的实例并拉回栈顶,否则创建新的实例并启动。 | | string | 用户返回一个ability标识,如果之前启动过标识的ability,不创建新的实例并拉回栈顶,否则创建新的实例并启动。 |
**示例:** **示例:**
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
- [AudioManager](#audiomanager):音频管理。 - [AudioManager](#audiomanager):音频管理。
- [AudioRenderer](#audiorenderer8):音频渲染,用于播放PCM(Pulse Code Modulation)音频数据。 - [AudioRenderer](#audiorenderer8):音频渲染,用于播放PCM(Pulse Code Modulation)音频数据。
- [AudioCapturer](#audiocapturer8):音频采集,用于录制PCM音频数据。 - [AudioCapturer](#audiocapturer8):音频采集,用于录制PCM音频数据。
- [TonePlayer](#toneplayer9):用于管理和播放DTMF(Dual Tone Multi Frequency,双音多频)音调,如拨号音、通话回铃音等。
> **说明:** > **说明:**
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
...@@ -254,6 +255,78 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => { ...@@ -254,6 +255,78 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => {
}); });
``` ```
## audio.createTonePlayer<sup>9+</sup>
createTonePlayer(options: AudioRendererInfo, callback: AsyncCallback&lt;TonePlayer&gt;): void
创建DTMF播放器。使用callback方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Tone
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------------------------------- | ---- | -------------- |
| options | [AudioRendererInfo](#audiorendererinfo8) | 是 | 配置音频渲染器信息。|
| callback | AsyncCallback<[TonePlayer](#toneplayer9)> | 是 | 回调函数,回调返回音频渲染器对象。|
**示例:**
```js
import audio from '@ohos.multimedia.audio';
var audioRendererInfo = {
"contentType": audio.ContentType.CONTENT_TYPE_MUSIC,
"streamUsage": audio.StreamUsage.STREAM_USAGE_MEDIA,
"rendererFlags": 0
}
var tonePlayer;
audio.createTonePlayer(audioRendererInfo, (err, data) => {
console.info(`callback call createTonePlayer: audioRendererInfo: ${audioRendererInfo}`);
if (err) {
console.error(`callback call createTonePlayer return error: ${err.message}`);
} else {
console.info(`callback call createTonePlayer return data: ${data}`);
tonePlayer = data;
}
});
```
## audio.createTonePlayer<sup>9+</sup>
createTonePlayer(options: AudioRendererInfo): Promise&lt;TonePlayer&gt;
创建DTMF播放器。使用Promise方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Tone
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------ | :---------------------------------------------| :--- | :----------- |
| options | [AudioRendererInfo](#audiorendererinfo8) | 是 | 配置音频渲染器信息。 |
**返回值:**
| 类型 | 说明 |
| ----------------------------------------- | -------------------------------- |
| Promise<[TonePlayer](#toneplayer9)> | Promise对象,返回音频渲染器对象。 |
**示例:**
```js
import audio from '@ohos.multimedia.audio';
async function createTonePlayer(){
var audioRendererInfo = {
"contentType": audio.ContentType.CONTENT_TYPE_MUSIC,
"streamUsage": audio.StreamUsage.STREAM_USAGE_MEDIA,
"rendererFlags": 0
}
let tonePlayer = await audio.createTonePlayer(this.audioRendererInfo);
}
```
## AudioVolumeType ## AudioVolumeType
枚举,音频流类型。 枚举,音频流类型。
...@@ -428,12 +501,13 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => { ...@@ -428,12 +501,13 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => {
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Core **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Core
| 名称 | 默认值 | 描述 | | 名称 | 默认值 | 描述 |
| ---------------------------------- | ------ | ---------- | | ------------------------------------------| ------ | ---------- |
| STREAM_USAGE_UNKNOWN | 0 | 未知类型。 | | STREAM_USAGE_UNKNOWN | 0 | 未知类型。 |
| STREAM_USAGE_MEDIA | 1 | 音频。 | | STREAM_USAGE_MEDIA | 1 | 音频。 |
| STREAM_USAGE_VOICE_COMMUNICATION | 2 | 语音通信。 | | STREAM_USAGE_VOICE_COMMUNICATION | 2 | 语音通信。 |
| STREAM_USAGE_NOTIFICATION_RINGTONE | 6 | 通知铃声。 | | STREAM_USAGE_VOICE_ASSISTANT<sup>9+</sup> | 3 | 语音播报。 |
| STREAM_USAGE_NOTIFICATION_RINGTONE | 6 | 通知铃声。 |
## FocusType<sup>9+</sup> ## FocusType<sup>9+</sup>
...@@ -712,11 +786,12 @@ getVolumeGroupInfos(); ...@@ -712,11 +786,12 @@ getVolumeGroupInfos();
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Core **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Core
| 名称 | 默认值 | 描述 | | 名称 | 默认值 | 描述 |
| :------------------------------ | :----- | :--------------------- | | :------------------------------------------- | :----- | :--------------------- |
| SOURCE_TYPE_INVALID | -1 | 无效的音频源。 | | SOURCE_TYPE_INVALID | -1 | 无效的音频源。 |
| SOURCE_TYPE_MIC | 0 | Mic音频源。 | | SOURCE_TYPE_MIC | 0 | Mic音频源。 |
| SOURCE_TYPE_VOICE_COMMUNICATION | 7 | 语音通话场景的音频源。 | | SOURCE_TYPE_VOICE_RECOGNITION<sup>9+</sup> | 1 | 语音识别源。 |
| SOURCE_TYPE_VOICE_COMMUNICATION | 7 | 语音通话场景的音频源。 |
## AudioScene<sup>8+</sup><a name="audioscene"></a> ## AudioScene<sup>8+</sup><a name="audioscene"></a>
...@@ -731,7 +806,6 @@ getVolumeGroupInfos(); ...@@ -731,7 +806,6 @@ getVolumeGroupInfos();
| AUDIO_SCENE_PHONE_CALL | 2 | 电话模式。<br/>此接口为系统接口,三方应用不支持调用。 | | AUDIO_SCENE_PHONE_CALL | 2 | 电话模式。<br/>此接口为系统接口,三方应用不支持调用。 |
| AUDIO_SCENE_VOICE_CHAT | 3 | 语音聊天模式。 | | AUDIO_SCENE_VOICE_CHAT | 3 | 语音聊天模式。 |
## AudioManager ## AudioManager
管理音频音量和音频设备。在调用AudioManager的接口前,需要先通过[getAudioManager](#audiogetaudiomanager)创建实例。 管理音频音量和音频设备。在调用AudioManager的接口前,需要先通过[getAudioManager](#audiogetaudiomanager)创建实例。
...@@ -3149,6 +3223,91 @@ audioManager.getRoutingManager((err,AudioRoutingManager)=>{ ...@@ -3149,6 +3223,91 @@ audioManager.getRoutingManager((err,AudioRoutingManager)=>{
}); });
``` ```
### selectInputDevice<sup>9+</sup>
selectInputDevice(inputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback&lt;void&gt;): void
选择音频输入设备,当前只能选择一个输入设备,使用callback方式异步返回结果。
**系统接口:** 该接口为系统接口
**系统能力:** SystemCapability.Multimedia.Audio.Device
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
| inputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是 | 输入设备类。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调,返回选择输入设备结果。 |
**示例:**
```js
var audioManager = audio.getAudioManager();
let inputAudioDeviceDescriptor = [{
"deviceRole":audio.DeviceRole.INPUT_DEVICE,
"networkId":audio.LOCAL_NETWORK_ID,
"interruptGroupId":1,
"volumeGroupId":1 }];
var audioRoutingManager;
async function getRoutingManager(){
await audioManager.getRoutingManager().then((value) => {
audioRoutingManager = value;
audioRoutingManager.selectInputDevice(inputAudioDeviceDescriptor, (err) => {
if (err) {
console.error(`Result ERROR: ${err}`);
} else {
console.info('Select input devices result callback: SUCCESS'); }
});
});
}
```
### selectInputDevice<sup>9+</sup>
selectInputDevice(inputAudioDevices: AudioDeviceDescriptors): Promise&lt;void&gt;
**系统接口:** 该接口为系统接口
选择音频输入设备,当前只能选择一个输入设备,使用Promise方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Device
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
| inputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是 | 输入设备类。 |
**返回值:**
| 类型 | 说明 |
| --------------------- | --------------------------- |
| Promise&lt;void&gt; | Promise返回选择输入设备结果。 |
**示例:**
```js
var audioManager = audio.getAudioManager();
let inputAudioDeviceDescriptor =[{
"deviceRole":audio.DeviceRole.INPUT_DEVICE,
"networkId":audio.LOCAL_NETWORK_ID,
"interruptGroupId":1,
"volumeGroupId":1 }];
var audioRoutingManager;
async function getRoutingManager(){
await audioManager.getRoutingManager().then((value) => {
audioRoutingManager = value;
audioRoutingManager.selectInputDevice(inputAudioDeviceDescriptor).then(() => {
console.info('Select input devices result promise: SUCCESS');
}).catch((err) => {
console.error(`Result ERROR: ${err}`);
});
});
}
```
### selectOutputDevice<sup>9+</sup> ### selectOutputDevice<sup>9+</sup>
selectOutputDevice(outputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback&lt;void&gt;): void selectOutputDevice(outputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback&lt;void&gt;): void
...@@ -5039,4 +5198,255 @@ audioCapturer.on('stateChange', (state) => { ...@@ -5039,4 +5198,255 @@ audioCapturer.on('stateChange', (state) => {
console.info('audio capturer state is: STATE_RUNNING'); console.info('audio capturer state is: STATE_RUNNING');
} }
}); });
``` ```
\ No newline at end of file
## ToneType <sup>9+</sup>
枚举,播放器的音调类型。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Tone
| 名称 | 默认值 | 描述 |
| :------------------------------------------------ | :----- | :----------------------------|
| TONE_TYPE_DIAL_0 | 0 | 键0的DTMF音。 |
| TONE_TYPE_DIAL_1 | 1 | 键1的DTMF音。 |
| TONE_TYPE_DIAL_2 | 2 | 键2的DTMF音。 |
| TONE_TYPE_DIAL_3 | 3 | 键3的DTMF音。 |
| TONE_TYPE_DIAL_4 | 4 | 键4的DTMF音。 |
| TONE_TYPE_DIAL_5 | 5 | 键5的DTMF音。 |
| TONE_TYPE_DIAL_6 | 6 | 键6的DTMF音。 |
| TONE_TYPE_DIAL_7 | 7 | 键7的DTMF音。 |
| TONE_TYPE_DIAL_8 | 8 | 键8的DTMF音。 |
| TONE_TYPE_DIAL_9 | 9 | 键9的DTMF音。 |
| TONE_TYPE_DIAL_S | 10 | 键*的DTMF音。 |
| TONE_TYPE_DIAL_P | 11 | 键#的DTMF音。 |
| TONE_TYPE_DIAL_A | 12 | 键A的DTMF音。 |
| TONE_TYPE_DIAL_B | 13 | 键B的DTMF音。 |
| TONE_TYPE_DIAL_C | 14 | 键C的DTMF音。 |
| TONE_TYPE_DIAL_D | 15 | 键D的DTMF音。 |
| TONE_TYPE_COMMON_SUPERVISORY_DIAL | 100 | 呼叫监管音调,拨号音。 |
| TONE_TYPE_COMMON_SUPERVISORY_BUSY | 101 | 呼叫监管音调,忙。 |
| TONE_TYPE_COMMON_SUPERVISORY_CONGESTION | 102 | 呼叫监管音调,拥塞。 |
| TONE_TYPE_COMMON_SUPERVISORY_RADIO_ACK | 103 | 呼叫监管音调,无线电 ACK。 |
| TONE_TYPE_COMMON_SUPERVISORY_RADIO_NOT_AVAILABLE | 104 | 呼叫监管音调,无线电不可用。 |
| TONE_TYPE_COMMON_SUPERVISORY_CALL_WAITING | 106 | 呼叫监管音调,呼叫等待。 |
| TONE_TYPE_COMMON_SUPERVISORY_RINGTONE | 107 | 呼叫监管音调,铃声。 |
| TONE_TYPE_COMMON_PROPRIETARY_BEEP | 200 | 专有声调,一般蜂鸣声。 |
| TONE_TYPE_COMMON_PROPRIETARY_ACK | 201 | 专有声调,ACK。 |
| TONE_TYPE_COMMON_PROPRIETARY_PROMPT | 203 | 专有声调,PROMPT。 |
| TONE_TYPE_COMMON_PROPRIETARY_DOUBLE_BEEP | 204 | 专有声调,双重蜂鸣声。 |
## TonePlayer<sup>9+</sup>
提供播放和管理DTMF(Dual Tone Multi Frequency,双音多频)音调的方法,包括各种系统监听音调、专有音调,如拨号音、通话回铃音等。
### load<sup>9+</sup>
load(type: ToneType, callback: AsyncCallback&lt;void&gt;): void
加载DTMF音调配置。使用callback方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Tone
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :--------------| :-------------------------- | :-----| :------------------------------ |
| type | ToneType(#tonetype9) | 是 | 配置的音调类型。 |
| callback | AsyncCallback<void\> | 是 | 使用callback方式异步返回缓冲区。 |
**示例:**
```js
tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_5, (err) => {
if (err) {
console.error(`callback call load failed error: ${err.message}`);
return;
} else {
console.info('callback call load success');
}
});
```
### load<sup>9+</sup>
load(type: ToneType): Promise&lt;void&gt;
加载DTMF音调配置。使用Promise方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Tone
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------------- | :--------------------- | :--- | ---------------- |
| type | ToneType(#tonetype9) | 是 | 配置的音调类型。 |
**返回值:**
| 类型 | 说明 |
| :--------------| :-------------------------- |
| Promise<void\> | 使用Promise方式异步返回结果。 |
**示例:**
```js
tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_1).then(() => {
console.info('promise call load ');
}).catch(() => {
console.error('promise call load fail');
});
```
### start<sup>9+</sup>
start(callback: AsyncCallback&lt;void&gt;): void
启动DTMF音调播放。使用callback方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Tone
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :------------------- | :--- | :----------------------------- |
| callback | AsyncCallback<void\> | 是 | 使用callback方式异步返回结果。 |
**示例:**
```js
tonePlayer.start((err) => {
if (err) {
console.error(`callback call start failed error: ${err.message}`);
return;
} else {
console.info('callback call start success');
}
});
```
### start<sup>9+</sup>
start(): Promise&lt;void&gt;
启动DTMF音调播放。使用Promise方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Tone
**返回值:**
| 类型 | 说明 |
| :------------- | :---------------------------- |
| Promise<void\> | 使用Promise方式异步返回结果。 |
**示例:**
```js
tonePlayer.start().then(() => {
console.info('promise call start');
}).catch(() => {
console.error('promise call start fail');
});
```
### stop<sup>9+</sup>
stop(callback: AsyncCallback&lt;void&gt;): void
停止当前正在播放的音调。使用callback方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Tone
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :------------------- | :--- | :----------------------------- |
| callback | AsyncCallback<void\> | 是 | 使用callback方式异步返回结果。 |
**示例:**
```js
tonePlayer.stop((err) => {
if (err) {
console.error(`callback call stop error: ${err.message}`);
return;
} else {
console.error('callback call stop success ');
}
});
```
### stop<sup>9+</sup>
stop(): Promise&lt;void&gt;
停止当前正在播放的音调。使用Promise方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Tone
**返回值:**
| 类型 | 说明 |
| :------------- | :---------------------------- |
| Promise<void\> | 使用Promise方式异步返回结果。 |
**示例:**
```js
tonePlayer.stop().then(() => {
console.info('promise call stop finish');
}).catch(() => {
console.error('promise call stop fail');
});
```
### release<sup>9+</sup>
release(callback: AsyncCallback&lt;void&gt;): void
释放与此TonePlay对象关联的资源。使用callback方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Tone
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :------------------- | :--- | :---------------------------- |
| callback | AsyncCallback<void\> | 是 | 使用callback方式异步返回结果。 |
**示例:**
```js
tonePlayer.release((err) => {
if (err) {
console.error(`callback call release failed error: ${err.message}`);
return;
} else {
console.info('callback call release success ');
}
});
```
### release<sup>9+</sup>
release(): Promise&lt;void&gt;
释放与此TonePlay对象关联的资源。使用Promise方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Tone
**返回值:**
| 类型 | 说明 |
| :------------- | :---------------------------- |
| Promise<void\> | 使用Promise方式异步返回结果。 |
**示例:**
```js
tonePlayer.release().then(() => {
console.info('promise call release');
}).catch(() => {
console.error('promise call release fail');
});
```
# 设备信息 # 设备信息
本模块提供产品信息。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
...@@ -11,11 +13,11 @@ import deviceInfo from '@ohos.deviceInfo' ...@@ -11,11 +13,11 @@ import deviceInfo from '@ohos.deviceInfo'
## 属性 ## 属性
**系统能力**以下各项对应的系统能力均为SystemCapability.Startup.SystemInfo。 **系统能力**:SystemCapability.Startup.SystemInfo。
**权限**:以下各项所需要的权限有所不同,详见下表。 **权限**:以下各项所需要的权限有所不同,详见下表。
| 名称 | 参数类型 | 可读 | 可写 | 描述 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| deviceType | string | 是 | 否 | 设备类型。 | | deviceType | string | 是 | 否 | 设备类型。 |
| manufacture | string | 是 | 否 | 设备厂家名称。 | | manufacture | string | 是 | 否 | 设备厂家名称。 |
......
# 分布式任务管理 # 分布式任务管理
分布式任务管理模块提供跨设备系统任务管理能力,包括注册系统任务状态监听、取消系统任务状态监听、开始同步远端任务列表、停止同步远端任务列表操作。 分布式任务管理模块提供跨设备系统任务管理能力,包括注册系统任务状态监听、取消系统任务状态监听、开始同步远端任务列表、停止同步远端任务列表、迁移任务操作。
> **说明:** > **说明:**
> >
...@@ -48,16 +48,23 @@ registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback, ...@@ -48,16 +48,23 @@ registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback,
console.log('NotifyNetDisconnect state ' + JSON.stringify(state)); console.log('NotifyNetDisconnect state ' + JSON.stringify(state));
} }
var parameter = { var parameter = {
deviceId: remoteDeviceId deviceId: remoteDeviceId
}; };
var options = { var options = {
notifyMissionsChanged: NotifyMissionsChanged, notifyMissionsChanged: NotifyMissionsChanged,
notifySnapshot: NotifySnapshot, notifySnapshot: NotifySnapshot,
notifyNetDisconnect: NotifyNetDisconnect notifyNetDisconnect: NotifyNetDisconnect
} }
distributedMissionManager.registerMissionListener(parameter, options, (error) => { try {
console.log("error.code = " + error.code) distributedMissionManager.registerMissionListener(parameter, options, (error) => {
}) if (error.code != 0) {
console.error('registerMissionListener failed, cause: ' + JSON.stringify(error))
}
console.info('registerMissionListener finished')
})
} catch (error) {
console.error('registerMissionListener failed, cause: ' + JSON.stringify(error))
}
``` ```
## distributedMissionManager.registerMissionListener ## distributedMissionManager.registerMissionListener
...@@ -97,19 +104,23 @@ registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback): ...@@ -97,19 +104,23 @@ registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback):
console.log('NotifyNetDisconnect state ' + JSON.stringify(state)); console.log('NotifyNetDisconnect state ' + JSON.stringify(state));
} }
var parameter = { var parameter = {
deviceId: remoteDeviceId deviceId: remoteDeviceId
}; };
var options = { var options = {
notifyMissionsChanged: NotifyMissionsChanged, notifyMissionsChanged: NotifyMissionsChanged,
notifySnapshot: NotifySnapshot, notifySnapshot: NotifySnapshot,
notifyNetDisconnect: NotifyNetDisconnect notifyNetDisconnect: NotifyNetDisconnect
} }
distributedMissionManager.registerMissionListener(parameter, options) try {
.then(data => { distributedMissionManager.registerMissionListener(parameter, options)
console.info('success data is ' + data); .then(data => {
}).catch(error => { console.info('registerMissionListener finished, ' + JSON.stringify(data));
console.info('error error is ' + error); }).catch(error => {
}) console.error('registerMissionListener failed, cause: ' + JSON.stringify(error));
})
} catch (error) {
console.error('registerMissionListener failed, cause: ' + JSON.stringify(error))
}
``` ```
...@@ -134,11 +145,18 @@ unRegisterMissionListener(parameter: MissionDeviceInfo, callback: AsyncCallback& ...@@ -134,11 +145,18 @@ unRegisterMissionListener(parameter: MissionDeviceInfo, callback: AsyncCallback&
```ts ```ts
var parameter = { var parameter = {
deviceId: remoteDeviceId deviceId: remoteDeviceId
}; };
distributedMissionManager.unRegisterMissionListener(parameter, (error) => { try {
console.log("error.code = " + error.code) distributedMissionManager.unRegisterMissionListener(parameter, (error) => {
}) if (error.code != 0) {
console.error('unRegisterMissionListener failed, cause: ' + JSON.stringify(error))
}
console.info('unRegisterMissionListener finished')
})
} catch (error) {
console.error('unRegisterMissionListener failed, cause: ' + JSON.stringify(error))
}
``` ```
...@@ -168,14 +186,18 @@ unRegisterMissionListener(parameter: MissionDeviceInfo): Promise&lt;void&gt; ...@@ -168,14 +186,18 @@ unRegisterMissionListener(parameter: MissionDeviceInfo): Promise&lt;void&gt;
```ts ```ts
var parameter = { var parameter = {
deviceId: remoteDeviceId deviceId: remoteDeviceId
}; };
distributedMissionManager.unRegisterMissionListener(parameter) try {
.then(data => { distributedMissionManager.unRegisterMissionListener(parameter)
console.info('success data is ' + data); .then(data => {
}).catch(error => { console.info('unRegisterMissionListener finished, ' + JSON.stringify(data));
console.info('error error is ' + error); }).catch(error => {
}) console.error('unRegisterMissionListener failed, cause: ' + JSON.stringify(error));
})
} catch (error) {
console.error('unRegisterMissionListener failed, cause: ' + JSON.stringify(error))
}
``` ```
## distributedMissionManager.startSyncRemoteMissions ## distributedMissionManager.startSyncRemoteMissions
...@@ -199,13 +221,20 @@ startSyncRemoteMissions(parameter: MissionParameter, callback: AsyncCallback&lt; ...@@ -199,13 +221,20 @@ startSyncRemoteMissions(parameter: MissionParameter, callback: AsyncCallback&lt;
```ts ```ts
var parameter = { var parameter = {
deviceId: remoteDeviceId, deviceId: remoteDeviceId,
fixConflict: false, fixConflict: false,
tag: 0 tag: 0
}; };
distributedMissionManager.startSyncRemoteMissions(parameter, (error) => { try {
console.log("error.code = " + error.code) distributedMissionManager.startSyncRemoteMissions(parameter, (error) => {
}) if (error.code != 0) {
console.error('startSyncRemoteMissions failed, cause: ' + JSON.stringify(error))
}
console.info('startSyncRemoteMissions finished')
})
} catch (error) {
console.error('startSyncRemoteMissions failed, cause: ' + JSON.stringify(error))
}
``` ```
## distributedMissionManager.startSyncRemoteMissions ## distributedMissionManager.startSyncRemoteMissions
...@@ -234,16 +263,20 @@ startSyncRemoteMissions(parameter: MissionParameter): Promise&lt;void&gt; ...@@ -234,16 +263,20 @@ startSyncRemoteMissions(parameter: MissionParameter): Promise&lt;void&gt;
```ts ```ts
var parameter = { var parameter = {
deviceId: remoteDeviceId, deviceId: remoteDeviceId,
fixConflict: false, fixConflict: false,
tag: 0 tag: 0
}; };
distributedMissionManager.startSyncRemoteMissions(parameter) try {
.then(data => { distributedMissionManager.startSyncRemoteMissions(parameter)
console.info('success data is ' + data); .then(data => {
}).catch(error => { console.info('startSyncRemoteMissions finished, ' + JSON.stringify(data));
console.info('error error is ' + error); }).catch(error => {
}) console.error('startSyncRemoteMissions failed, cause: ' + JSON.stringify(error));
})
} catch (error) {
console.error('startSyncRemoteMissions failed, cause: ' + JSON.stringify(error))
}
``` ```
## distributedMissionManager.stopSyncRemoteMissions ## distributedMissionManager.stopSyncRemoteMissions
...@@ -267,11 +300,18 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo, callback: AsyncCallback&lt; ...@@ -267,11 +300,18 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo, callback: AsyncCallback&lt;
```ts ```ts
var parameter = { var parameter = {
deviceId: remoteDeviceId deviceId: remoteDeviceId
}; };
distributedMissionManager.stopSyncRemoteMissions(parameter, (error) => { try {
console.log("error.code = " + error.code) distributedMissionManager.stopSyncRemoteMissions(parameter, (error) => {
}) if (error.code != 0) {
console.error('stopSyncRemoteMissions failed, cause: ' + JSON.stringify(error))
}
console.info('stopSyncRemoteMissions finished')
})
} catch (error) {
console.error('stopSyncRemoteMissions failed, cause: ' + JSON.stringify(error))
}
``` ```
## distributedMissionManager.stopSyncRemoteMissions ## distributedMissionManager.stopSyncRemoteMissions
...@@ -300,14 +340,113 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise&lt;void&gt; ...@@ -300,14 +340,113 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise&lt;void&gt;
```ts ```ts
var parameter = { var parameter = {
deviceId: remoteDeviceId deviceId: remoteDeviceId
};
try {
distributedMissionManager.stopSyncRemoteMissions(parameter)
.then(data => {
console.info('stopSyncRemoteMissions finished, ' + JSON.stringify(data));
}).catch(error => {
console.error('stopSyncRemoteMissions failed, cause: ' + JSON.stringify(error));
})
} catch (error) {
console.error('stopSyncRemoteMissions failed, cause: ' + JSON.stringify(error))
}
```
## distributedMissionManager.continueMission
continueMission(parameter: ContinueDeviceInfo, options: ContinueCallback, callback: AsyncCallback&lt;void&gt;): void;
迁移任务,以回调函数的方式返回。
**需要权限**:ohos.permission.MANAGE_MISSIONS, ohos.permission.DISTRIBUTED_DATASYNC
**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| --------- | --------------------------------------- | ---- | ----- |
| parameter | [ContinueDeviceInfo](#continuedeviceinfo) | 是 | 迁移信息。 |
| options | [ContinueCallback](#continuecallback) | 是 | 迁移任务完成回调函数。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 执行结果回调函数。 |
**示例:**
```ts
var parameter = {
srcDeviceId: localDeviceId
dstDeviceId: remoteDeviceId
missionId: remoteMissionId
wantParams: {"key": "value"}
};
function OnContinueDone(resultCode) {
console.log('OnContinueDone resultCode: ' + JSON.stringify(resultCode));
};
var options = {
OnContinueDone: OnContinueDone
};
try {
distributedMissionManager.continueMission(parameter, options, (error) => {
if (error.code != 0) {
console.error('continueMission failed, cause: ' + JSON.stringify(error))
}
console.info('continueMission finished')
})
} catch (error) {
console.error('continueMission failed, cause: ' + JSON.stringify(error))
}
```
## distributedMissionManager.continueMission
continueMission(parameter: ContinueDeviceInfo, options: ContinueCallback): Promise&lt;void&gt;
迁移任务,以promise方式返回执行结果。
**需要权限**:ohos.permission.MANAGE_MISSIONS, ohos.permission.DISTRIBUTED_DATASYNC
**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| --------- | --------------------------------------- | ---- | ----- |
| parameter | [ContinueDeviceInfo](#continuedeviceinfo) | 是 | 迁移信息。 |
| options | [ContinueCallback](#continuecallback) | 是 | 迁移任务完成回调函数。 |
**返回值:**
| 类型 | 说明 |
| ------------------- | ---------------- |
| Promise&lt;void&gt; | promise方式返回执行结果。 |
**示例:**
```ts
var parameter = {
srcDeviceId: localDeviceId
dstDeviceId: remoteDeviceId
missionId: remoteMissionId
wantParams: {"key": "value"}
};
function OnContinueDone(resultCode) {
console.log('OnContinueDone resultCode: ' + JSON.stringify(resultCode));
};
var options = {
OnContinueDone: OnContinueDone
}; };
distributedMissionManager.stopSyncRemoteMissions(parameter) try {
.then(data => { distributedMissionManager.continueMission(parameter, options)
console.info('success data is ' + data); .then(data => {
}).catch(error => { console.info('continueMission finished, ' + JSON.stringify(data));
console.info('error error is ' + error); }).catch(error => {
}) console.error('continueMission failed, cause: ' + JSON.stringify(error));
})
} catch (error) {
console.error('continueMission failed, cause: ' + JSON.stringify(error))
}
``` ```
## MissionCallback ## MissionCallback
...@@ -348,4 +487,31 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise&lt;void&gt; ...@@ -348,4 +487,31 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise&lt;void&gt;
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | ------ | ---- | ---- | ------- | | -------- | ------ | ---- | ---- | ------- |
| deviceId | string | 是 | 是 | 表示设备ID。 | | deviceId | string | 是 | 是 | 表示设备ID。 |
\ No newline at end of file
## ContinueDeviceInfo
表示发起任务迁移时所需参数的枚举。
**需要权限**:ohos.permission.MANAGE_MISSIONS
**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | ------ | ---- | ---- | ------- |
| srcDeviceId | string | 是 | 是 | 表示任务迁移源设备ID。 |
| dstDeviceId | string | 是 | 是 | 表示任务迁移目标设备ID。 |
| missionId | string | 是 | 是 | 表示任务ID。 |
| wantParams | {[key: string]: any} | 是 | 是 | 表示扩展参数。 |
## ContinueCallback
表示迁移完成后,返回迁移结果回调函数。
**需要权限**:ohos.permission.MANAGE_MISSIONS
**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
| 名称 | 类型 | 可读 | 可写 | 说明 |
| --------------------- | -------- | ---- | ---- | ------------------ |
| onContinueDone | function | 是 | 否 | 通知迁移完成,返回迁移结果。 |
\ No newline at end of file
...@@ -1771,7 +1771,7 @@ createImageReceiver(width: number, height: number, format: number, capacity: num ...@@ -1771,7 +1771,7 @@ createImageReceiver(width: number, height: number, format: number, capacity: num
| -------- | ------ | ---- | ---------------------- | | -------- | ------ | ---- | ---------------------- |
| width | number | 是 | 图像的默认宽度。 | | width | number | 是 | 图像的默认宽度。 |
| height | number | 是 | 图像的默认高度。 | | height | number | 是 | 图像的默认高度。 |
| format | number | 是 | 图像格式 | | format | number | 是 | 图像格式,取值为[ImageFormat](#imageformat9)常量。 |
| capacity | number | 是 | 同时访问的最大图像数。 | | capacity | number | 是 | 同时访问的最大图像数。 |
**返回值:** **返回值:**
...@@ -1952,7 +1952,7 @@ receiver.readNextImage().then(img => { ...@@ -1952,7 +1952,7 @@ receiver.readNextImage().then(img => {
}) })
``` ```
### on('imageArrival')<sup>9+</sup> ### on<sup>9+</sup>
on(type: 'imageArrival', callback: AsyncCallback\<void>): void on(type: 'imageArrival', callback: AsyncCallback\<void>): void
...@@ -2017,6 +2017,228 @@ receiver.release().then(() => { ...@@ -2017,6 +2017,228 @@ receiver.release().then(() => {
}) })
``` ```
## image.createImageCreator<sup>9+</sup>
createImageCreator(width: number, height: number, format: number, capacity: number): ImageCreator
通过宽、高、图片格式、容量创建ImageCreator实例。
**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ---------------------- |
| width | number | 是 | 图像的默认宽度。 |
| height | number | 是 | 图像的默认高度。 |
| format | number | 是 | 图像格式,如YCBCR_422_SP,JPEG。 |
| capacity | number | 是 | 同时访问的最大图像数。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------ | --------------------------------------- |
| [ImageCreator](#imagecreator9) | 如果操作成功,则返回ImageCreator实例。 |
**示例:**
```js
var creator = image.createImageCreator(8192, 8, 4, 8);
```
## ImageCreator<sup>9+</sup>
图像创建模块,用于请求图像原生数据区域,并开放给应用编译原生图像数据的能力。
在调用以下方法前需要先创建ImageCreator实例。
### 属性
**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | ---------------------------- | ---- | ---- | ------------------ |
| capacity | number | 是 | 否 | 同时访问的图像数。 |
| format | [ImageFormat](#imageformat9) | 是 | 否 | 图像格式。 |
### dequeueImage<sup>9+</sup>
dequeueImage(callback: AsyncCallback\<Image>): void
从空闲队列中获取buffer图片,用于绘制UI内容,并使用callback返回结果。
**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| ------------- | ---------------------------------------| ---- | -------------------- |
| callback | AsyncCallback\<Image> | 是 | 回调函数,返回最新图片。 |
**示例:**
```js
creator.dequeueImage((err, img) => {
if (err) {
console.info('dequeueImage succeeded.');
}
console.info('dequeueImage failed.'));
});
```
### dequeueImage<sup>9+</sup>
dequeueImage(): Promise\<Image>
从空闲队列中获取buffer图片,用于绘制UI内容,并使用promise返回结果。
**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
**返回值:**
| 类型 | 说明 |
| --------------- | ------------- |
| Promise\<Image> | 返回绘制的图像。 |
**示例:**
```js
creator.dequeueImage().then(img => {
console.info('dequeueImage succeeded.');
}).catch(error => {
console.log('dequeueImage failed: ' + error);
})
```
### queueImage<sup>9+</sup>
queueImage(interface: Image, callback: AsyncCallback\<void>): void
将绘制好的图片放入Dirty队列,并使用callback返回结果。
**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| ------------- | -------------------------| ---- | -------------------- |
| interface | Image | 是 | 绘制好的buffer图像。 |
| callback | AsyncCallback\<void> | 是 | 获取回调,失败时返回错误信息。 |
**示例:**
```js
creator.queueImage(img, (err) => {
if (err) {
console.info('dequeueImage failed: ' + err);
}
console.info('dequeueImage succeeded');
})
```
### queueImage<sup>9+</sup>
queueImage(interface: Image): Promise\<void>
将绘制好的图片放入Dirty队列,并使用promise返回结果。
**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| ------------- | --------| ---- | ------------------- |
| interface | Image | 是 | 绘制好的buffer图像。 |
**返回值:**
| 类型 | 说明 |
| -------------- | ------------- |
| Promise\<void> | 获取回调,失败时返回错误信息。 |
**示例:**
```js
creator.queueImage(img).then(() => {
console.info('dequeueImage succeeded.');
}).catch(error => {
console.info('dequeueImage failed: ' + error);
})
```
### on<sup>9+</sup>
on(type: 'imageRelease', callback: AsyncCallback\<void>): void
监听imageRelease事件,并使用callback返回结果。
**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| ------------- | -------------------------| ---- | -------------------- |
| type | string | 是 | 监听事件类型,如'imageRelease'。 |
| callback | AsyncCallback\<void> | 是 | 获取回调,失败时返回错误信息。 |
**示例:**
```js
creator.on('imageRelease', (err) => {
if (err) {
console.info('on faild' + err);
}
console.info('on succeeded');
})
```
### release<sup>9+</sup>
release(callback: AsyncCallback\<void>): void
释放当前图像,并使用callback返回结果。
**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| ------------- | -------------------------| ---- | -------------------- |
| callback | AsyncCallback\<void> | 是 | 获取回调,失败时返回错误信息。 |
**示例:**
```js
creator.release((err) => {
if (err) {
console.info('release failed: ' + err);
}
console.info('release succeeded');
});
```
### release<sup>9+</sup>
release(): Promise\<void>
释放当前图像,并使用promise返回结果。
**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
**返回值:**
| 类型 | 说明 |
| -------------- | ------------- |
| Promise\<void> | 获取回调,失败时返回错误信息。 |
**示例:**
```js
creator.release().then(() => {
console.info('release succeeded');
}).catch(error => {
console.info('release failed');
})
```
## Image<sup>9+</sup> ## Image<sup>9+</sup>
提供基本的图像操作,包括获取图像信息、读写图像数据。调用[readNextImage](#readnextimage9)[readLatestImage](#readlatestimage9)接口时会返回image。 提供基本的图像操作,包括获取图像信息、读写图像数据。调用[readNextImage](#readnextimage9)[readLatestImage](#readlatestimage9)接口时会返回image。
...@@ -2144,7 +2366,7 @@ img.release().then(() =>{ ...@@ -2144,7 +2366,7 @@ img.release().then(() =>{
| ------ | ------------------ | ---- | ---- | ------------------------------------------------------------ | | ------ | ------------------ | ---- | ---- | ------------------------------------------------------------ |
| pixels | ArrayBuffer | 是 | 否 | 像素。 | | pixels | ArrayBuffer | 是 | 否 | 像素。 |
| offset | number | 是 | 否 | 偏移量。 | | offset | number | 是 | 否 | 偏移量。 |
| stride | number | 是 | 否 | 像素间距,stride >= region.size.width*4 | | stride | number | 是 | 否 | 像素间距,stride >= region.size.width*4 |
| region | [Region](#region7) | 是 | 否 | 区域,按照区域读写。写入的区域宽度加X坐标不能大于原图的宽度,写入的区域高度加Y坐标不能大于原图的高度。 | | region | [Region](#region7) | 是 | 否 | 区域,按照区域读写。写入的区域宽度加X坐标不能大于原图的宽度,写入的区域高度加Y坐标不能大于原图的高度。 |
## ImageInfo ## ImageInfo
...@@ -2156,6 +2378,7 @@ img.release().then(() =>{ ...@@ -2156,6 +2378,7 @@ img.release().then(() =>{
| 名称 | 类型 | 可读 | 可写 | 说明 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| ---- | ------------- | ---- | ---- | ---------- | | ---- | ------------- | ---- | ---- | ---------- |
| size | [Size](#size) | 是 | 是 | 图片大小。 | | size | [Size](#size) | 是 | 是 | 图片大小。 |
| density<sup>9+</sup> | number | 是 | 是 | 像素密度,单位为ppi。 |
## Size ## Size
...@@ -2178,8 +2401,13 @@ img.release().then(() =>{ ...@@ -2178,8 +2401,13 @@ img.release().then(() =>{
| ---------------------- | ------ | ----------------- | | ---------------------- | ------ | ----------------- |
| UNKNOWN | 0 | 未知格式。 | | UNKNOWN | 0 | 未知格式。 |
| RGB_565 | 2 | 格式为RGB_565 | | RGB_565 | 2 | 格式为RGB_565 |
| RGBA_8888 | 3 | 格式为RGBA_8888 | | RGBA_8888 | 3 | 格式为RGBA_8888 |
| BGRA_8888<sup>9+</sup> | 4 | 格式为BGRA_8888 | | BGRA_8888<sup>9+</sup> | 4 | 格式为BGRA_8888 |
| RGB_888<sup>9+</sup> | 5 | 格式为RGB_888 |
| ALPHA_8<sup>9+</sup> | 6 | 格式为ALPHA_8 |
| RGBA_F16<sup>9+</sup> | 7 | 格式为RGBA_F16 |
| NV21<sup>9+</sup> | 8 | 格式为NV21 |
| NV12<sup>9+</sup> | 9 | 格式为NV12 |
## AlphaType<sup>9+</sup> ## AlphaType<sup>9+</sup>
...@@ -2191,8 +2419,8 @@ img.release().then(() =>{ ...@@ -2191,8 +2419,8 @@ img.release().then(() =>{
| -------- | ------ | ----------------------- | | -------- | ------ | ----------------------- |
| UNKNOWN | 0 | 未知透明度。 | | UNKNOWN | 0 | 未知透明度。 |
| OPAQUE | 1 | 没有alpha或图片全透明。 | | OPAQUE | 1 | 没有alpha或图片全透明。 |
| PREMUL | 2 | RGB前乘alpha | | PREMUL | 2 | RGB前乘alpha |
| UNPREMUL | 3 | RGB不前乘alpha | | UNPREMUL | 3 | RGB不前乘alpha |
## ScaleMode<sup>9+</sup> ## ScaleMode<sup>9+</sup>
...@@ -2247,6 +2475,7 @@ PixelMap的初始化选项。 ...@@ -2247,6 +2475,7 @@ PixelMap的初始化选项。
| desiredRegion | [Region](#region7) | 是 | 是 | 解码区域。 | | desiredRegion | [Region](#region7) | 是 | 是 | 解码区域。 |
| desiredPixelFormat | [PixelMapFormat](#pixelmapformat7) | 是 | 是 | 解码的像素格式。 | | desiredPixelFormat | [PixelMapFormat](#pixelmapformat7) | 是 | 是 | 解码的像素格式。 |
| index | number | 是 | 是 | 解码图片序号。 | | index | number | 是 | 是 | 解码图片序号。 |
| fitDensity<sup>9+</sup> | number | 是 | 是 | 图像像素密度,单位为ppi。 |
## Region<sup>7+</sup> ## Region<sup>7+</sup>
...@@ -2268,8 +2497,9 @@ PixelMap的初始化选项。 ...@@ -2268,8 +2497,9 @@ PixelMap的初始化选项。
| 名称 | 类型 | 可读 | 可写 | 说明 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- | ------ | ---- | ---- | --------------------------------------------------- | | ------- | ------ | ---- | ---- | --------------------------------------------------- |
| format | string | 是 | 是 | 目标格式。</br>当前支持格式有:jpeg webp | | format | string | 是 | 是 | 目标格式。</br>当前支持格式有:.jpg .png .gif .bmp .webp RAW。 |
| quality | number | 是 | 是 | JPEG编码中设定输出图片质量的参数,取值范围为1-100 | | quality | number | 是 | 是 | JPEG编码中设定输出图片质量的参数,取值范围为1-100。 |
| bufferSize<sup>9+</sup> | number | 是 | 是 | 用于设置图片大小,默认为10M |
## GetImagePropertyOptions<sup>7+</sup> ## GetImagePropertyOptions<sup>7+</sup>
...@@ -2296,8 +2526,14 @@ PixelMap的初始化选项。 ...@@ -2296,8 +2526,14 @@ PixelMap的初始化选项。
| IMAGE_WIDTH | "ImageWidth" | 图片宽度。 | | IMAGE_WIDTH | "ImageWidth" | 图片宽度。 |
| GPS_LATITUDE | "GPSLatitude" | 图片纬度。 | | GPS_LATITUDE | "GPSLatitude" | 图片纬度。 |
| GPS_LONGITUDE | "GPSLongitude" | 图片经度。 | | GPS_LONGITUDE | "GPSLongitude" | 图片经度。 |
| GPS_LATITUDE_REF | "GPSLatitudeRef" | 纬度引用,例如N或S。 | | GPS_LATITUDE_REF | "GPSLatitudeRef" | 纬度引用,例如N或S。 |
| GPS_LONGITUDE_REF | "GPSLongitudeRef" | 经度引用,例如W或E。 | | GPS_LONGITUDE_REF | "GPSLongitudeRef" | 经度引用,例如W或E。 |
| DATE_TIME_ORIGINAL<sup>9+</sup> | "DateTimeOriginal" | 拍摄时间,例如2022:09:06 15:48:00 |
| EXPOSURE_TIME<sup>9+</sup> | "ExposureTime" | 曝光时间,例如1/33 sec.|
| SCENE_TYPE<sup>9+</sup> | "SceneType" | 拍摄场景模式,例如人像、风光、运动、夜景等。 |
| ISO_SPEED_RATINGS<sup>9+</sup> | "ISOSpeedRatings" | ISO感光度,例如400 |
| F_NUMBER<sup>9+</sup> | "FNumber" | 光圈值,例如f/1.8 |
## ImageFormat<sup>9+</sup> ## ImageFormat<sup>9+</sup>
......
...@@ -1206,7 +1206,7 @@ resume(callback: AsyncCallback&lt;void&gt;): void ...@@ -1206,7 +1206,7 @@ resume(callback: AsyncCallback&lt;void&gt;): void
| 名称 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| url | string | 是 | 资源地址。 | | url | string | 是 | 资源地址。 |
| header | object | 否 | 添加要包含在下载请求中的HTTP或HTTPS标志头。 | | header | object | 否 | 添加要包含在下载请求中的HTTPS标志头。<br/>开发者可以通过header的X-TLS-Version参数指定需要使用的TLS版本(如果不指定,则默认使用CURL_SSLVERSION_TLSv1_2版本,指定则使用指定版本。)<br/>CURL_SSLVERSION_TLSv1_0<br/>CURL_SSLVERSION_TLSv1_1<br/>CURL_SSLVERSION_TLSv1_2<br/>CURL_SSLVERSION_TLSv1_3<br/>通过header的X-Cipher-List参数指定需要使用的密码套件(如果不指定,则默认使用安全密码套件,指定则使用指定密码套件。)<br/>-1.2允许使用的密码套件白名单:<br/>TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,<br/>TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,TLS_DSS_RSA_WITH_AES_256_GCM_SHA384,<br/>TLS_PSK_WITH_AES_256_GCM_SHA384,TLS_DHE_PSK_WITH_AES_128_GCM_SHA256,<br/>TLS_DHE_PSK_WITH_AES_256_GCM_SHA384,TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256,<br/>TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,<br/>TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,<br/>TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256,<br/>TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384,<br/>TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_CCM,<br/>TLS_DHE_RSA_WITH_AES_256_CCM,TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,<br/>TLS_PSK_WITH_AES_256_CCM,TLS_DHE_PSK_WITH_AES_128_CCM,<br/>TLS_DHE_PSK_WITH_AES_256_CCM,TLS_ECDHE_ECDSA_WITH_AES_128_CCM,<br/>TLS_ECDHE_ECDSA_WITH_AES_256_CCM,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256<br/>-1.3允许使用的密码套件白名单:<br/>TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_128_CCM_SHA256<br/>-1.3新增国密算法套:<br/>TLS_SM4_GCM_SM3,TLS_SM4_CCM_SM3 |
| enableMetered | boolean | 否 | 设置是否允许在按流量计费的连接下下载。<br/>-&nbsp;true:是<br/>-&nbsp;false:否 | | enableMetered | boolean | 否 | 设置是否允许在按流量计费的连接下下载。<br/>-&nbsp;true:是<br/>-&nbsp;false:否 |
| enableRoaming | boolean | 否 | 设置是否允许在漫游网络中下载。 <br/>-&nbsp;true:是<br/>-&nbsp;false:否| | enableRoaming | boolean | 否 | 设置是否允许在漫游网络中下载。 <br/>-&nbsp;true:是<br/>-&nbsp;false:否|
| description | string | 否 | 设置下载会话的描述。 | | description | string | 否 | 设置下载会话的描述。 |
......
...@@ -51,18 +51,17 @@ show(options?: ShowNotificationOptions): void ...@@ -51,18 +51,17 @@ show(options?: ShowNotificationOptions): void
**示例:** **示例:**
```javascript ```javascript
export default { export default {
show() { show() {
notification.show({ notification.show({
contentTitle: 'title info', contentTitle: 'title info',
contentText: 'text', contentText: 'text',
clickAction: { clickAction: {
bundleName: 'com.example.testapp', bundleName: 'com.example.testapp',
abilityName: 'notificationDemo', abilityName: 'notificationDemo',
uri: '/path/to/notification', uri: '/path/to/notification',
}, },
}); });
}, },
} }
;
``` ```
\ No newline at end of file
...@@ -13,11 +13,11 @@ vibrator模块提供控制马达振动的能力,如通过接口控制马达启 ...@@ -13,11 +13,11 @@ vibrator模块提供控制马达振动的能力,如通过接口控制马达启
import vibrator from '@ohos.vibrator'; import vibrator from '@ohos.vibrator';
``` ```
## vibrator.vibrate ## vibrator.startVibration<sup>9+</sup>
vibrate(duration: number): Promise&lt;void&gt; startVibration(effect: VibrateEffect, attribute: VibrateAttribute, callback: AsyncCallback&lt;void&gt;): void
按照指定持续时间触发马达振动。 按照指定振动效果和振动属性触发马达振动。
**需要权限**:ohos.permission.VIBRATE **需要权限**:ohos.permission.VIBRATE
...@@ -25,29 +25,37 @@ vibrate(duration: number): Promise&lt;void&gt; ...@@ -25,29 +25,37 @@ vibrate(duration: number): Promise&lt;void&gt;
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ---------------------- | | --------- | -------------------------------------- | ---- | :--------------------------------------------------------- |
| duration | number | 是 | 马达振动时长, 单位ms。 | | effect | [VibrateEffect](#vibrateeffect9) | 是 | 马达振动效果。 |
| attribute | [VibrateAttribute](#vibrateattribute9) | 是 | 马达振动属性。 |
**返回值:** | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当马达振动成功,err为undefined,否则为错误对象。 |
| 类型 | 说明 |
| ------------------- | -------------------------------------- |
| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
**示例:** 示例:
```js ```js
vibrator.vibrate(1000).then(()=>{ try {
console.log("Promise returned to indicate a successful vibration."); vibrator.startVibration({
}, (error)=>{ type:'time',
console.log("error.code"+error.code+"error.message"+error.message); duration:1000,
}); },{
``` id:0,
usage: 'alarm'
}, (error)=>{
if(error){
console.log('vibrate fail, error.code: ' + error.code + 'error.message: ', + error.message);
}else{
console.log('Callback returned to indicate a successful vibration.');
}
});
} catch(err) {
console.info('errCode: ' + err.code + ' ,msg: ' + err.message);
}
```
## vibrator.vibrate<sup>9+</sup> ## vibrator.startVibration<sup>9+</sup>
vibrate(effect: VibrateEffect, attribute: VibrateAttribute): Promise&lt;void&gt; startVibration(effect: VibrateEffect, attribute: VibrateAttribute): Promise&lt;void&gt;
按照指定振动效果和振动属性触发马达振动。 按照指定振动效果和振动属性触发马达振动。
...@@ -55,10 +63,10 @@ vibrate(effect: VibrateEffect, attribute: VibrateAttribute): Promise&lt;void&gt; ...@@ -55,10 +63,10 @@ vibrate(effect: VibrateEffect, attribute: VibrateAttribute): Promise&lt;void&gt;
**系统能力**:SystemCapability.Sensors.MiscDevice **系统能力**:SystemCapability.Sensors.MiscDevice
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | -------------------------------------- | ---- | :------------- | | --------- | -------------------------------------- | ---- | -------------- |
| effect | [VibrateEffect](#vibrateeffect9) | 是 | 马达振动效果。 | | effect | [VibrateEffect](#vibrateeffect9) | 是 | 马达振动效果。 |
| attribute | [VibrateAttribute](#vibrateattribute9) | 是 | 马达振动属性。 | | attribute | [VibrateAttribute](#vibrateattribute9) | 是 | 马达振动属性。 |
...@@ -70,146 +78,60 @@ vibrate(effect: VibrateEffect, attribute: VibrateAttribute): Promise&lt;void&gt; ...@@ -70,146 +78,60 @@ vibrate(effect: VibrateEffect, attribute: VibrateAttribute): Promise&lt;void&gt;
**示例:** **示例:**
```js ```js
vibrator.vibrate({ try {
vibrator.startVibration({
type: 'time', type: 'time',
duration: 1000 duration: 1000
}, { }, {
id: 0, id: 0,
usage: 'alarm' usage: 'alarm'
}).then(()=>{ }).then(()=>{
console.log("Promise returned to indicate a successful vibration"); console.log('Promise returned to indicate a successful vibration');
}).catch((error)=>{ }).catch((error)=>{
console.log("error.code" + error.code + "error.message" + error.message); console.log('error.code' + error.code + 'error.message' + error.message);
}) })
``` } catch(err) {
console.info('errCode: ' + err.code + ' ,msg: ' + err.message);
## vibrator.vibrate }
vibrate(duration: number, callback?: AsyncCallback&lt;void&gt;): void
按照指定持续时间触发马达振动。
**需要权限**:ohos.permission.VIBRATE
**系统能力**:SystemCapability.Sensors.MiscDevice
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------- | ---- | ---------------------------------------------------------- |
| duration | number | 是 | 马达振动时长, 单位ms。 |
| callback | AsyncCallback&lt;void&gt; | 否 | 回调函数。当马达振动成功,err为undefined,否则为错误对象。 |
**示例:**
```js
vibrator.vibrate(1000,function(error){
if(error){
console.log("error.code" + error.code + "error.message" + error.message);
}else{
console.log("Callback returned to indicate a successful vibration.");
}
})
``` ```
## vibrator.stopVibration<sup>9+</sup>
## vibrator.vibrate stopVibration(stopMode: VibratorStopMode, callback: AsyncCallback&lt;void&gt;): void
vibrate(effectId: EffectId): Promise&lt;void&gt;
按照预置振动效果触发马达振动 按照要停止指定的振动模式来停止马达的振动。如果要停止的振动模式与触发马达振动时的模式不相同,则调用本接口会失败
**需要权限**:ohos.permission.VIBRATE **需要权限**:ohos.permission.VIBRATE
**系统能力**:SystemCapability.Sensors.MiscDevice **系统能力**:SystemCapability.Sensors.MiscDevice
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------- | ---- | ------------------ |
| effectId | [EffectId](#effectid) | 是 | 预置的振动效果ID。 |
**返回值:**
| 类型 | 说明 |
| ------------------- | -------------------------------------- |
| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
**示例:**
```js
vibrator.vibrate(vibrator.EffectId.EFFECT_CLOCK_TIMER).then(()=>{
console.log("Promise returned to indicate a successful vibration.");
}, (error)=>{
console.log("error.code" + error.code + "error.message" + error.message);
});
```
## vibrator.vibrate
vibrate(effectId: EffectId, callback?: AsyncCallback&lt;void&gt;): void
按照指定振动效果触发马达振动。
**需要权限**:ohos.permission.VIBRATE
**系统能力**:SystemCapability.Sensors.MiscDevice
**参数:** | 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------- | ---- | ------------------------------------------------------------ |
| -------- | ------------------------- | ---- | ---------------------------------------------------------- | | stopMode | [VibratorStopMode](#vibratorstopmode) | 是 | 马达停止指定的振动模式。 |
| effectId | [EffectId](#effectid) | 是 | 预置的振动效果ID。 | | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当马达停止振动成功,err为undefined,否则为错误对象。 |
| callback | AsyncCallback&lt;void&gt; | 否 | 回调函数。当马达振动成功,err为undefined,否则为错误对象。 |
**示例:** **示例:**
```js ```js
vibrator.vibrate(vibrator.EffectId.EFFECT_CLOCK_TIMER, function(error){ try {
if(error){ vibrator.stopVibration(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_PRESET, function(error){
console.log("error.code" + error.code + "error.message" + error.message); if(error){
}else{ console.log('error.code' + error.code + 'error.message' + error.message);
console.log("Callback returned to indicate a successful vibration."); }else{
} console.log('Callback returned to indicate successful.');
}) }
})
} catch(err) {
console.info('errCode: ' + err.code + ' ,msg: ' + err.message);
}
``` ```
## vibrator.vibrate<sup>9+</sup> ## vibrator.stopVibration<sup>9+</sup>
vibrate(effect: VibrateEffect, attribute: VibrateAttribute, callback: AsyncCallback&lt;void&gt;): void
按照指定振动效果和振动属性触发马达振动。
**需要权限**:ohos.permission.VIBRATE
**系统能力**:SystemCapability.Sensors.MiscDevice
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| --------- | -------------------------------------- | ---- | :--------------------------------------------------------- |
| effect | [VibrateEffect](#vibrateeffect9) | 是 | 马达振动效果。 |
| attribute | [VibrateAttribute](#vibrateattribute9) | 是 | 马达振动属性。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当马达振动成功,err为undefined,否则为错误对象。 |
示例:
```js stopVibration(stopMode: VibratorStopMode): Promise&lt;void&gt;
vibrator.vibrate({
type:'time',
duration:1000,
},{
id:0,
usage: 'alarm'
}, (error)=>{
if(error){
console.log("vibrate fail, error.code:" + error.code + ",error.message:" + error.message);
}else{
console.log("Callback returned to indicate a successful vibration.");
}
});
```
## vibrator.stop
stop(stopMode: VibratorStopMode): Promise&lt;void&gt;
按照要停止指定的振动模式来停止马达的振动。如果要停止的振动模式与触发马达振动时的模式不相同,则调用本接口会失败。 按照要停止指定的振动模式来停止马达的振动。如果要停止的振动模式与触发马达振动时的模式不相同,则调用本接口会失败。
...@@ -218,6 +140,7 @@ stop(stopMode: VibratorStopMode): Promise&lt;void&gt; ...@@ -218,6 +140,7 @@ stop(stopMode: VibratorStopMode): Promise&lt;void&gt;
**系统能力**:SystemCapability.Sensors.MiscDevice **系统能力**:SystemCapability.Sensors.MiscDevice
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------- | ---- | ------------------------ | | -------- | ------------------------------------- | ---- | ------------------------ |
| stopMode | [VibratorStopMode](#vibratorstopmode) | 是 | 马达停止指定的振动模式。 | | stopMode | [VibratorStopMode](#vibratorstopmode) | 是 | 马达停止指定的振动模式。 |
...@@ -231,43 +154,17 @@ stop(stopMode: VibratorStopMode): Promise&lt;void&gt; ...@@ -231,43 +154,17 @@ stop(stopMode: VibratorStopMode): Promise&lt;void&gt;
**示例:** **示例:**
```js ```js
vibrator.stop(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_PRESET).then(()=>{ try {
console.log("Promise returned to indicate a successful vibration."); vibrator.stopVibration(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_PRESET).then(()=>{
}, (error)=>{ console.log('Promise returned to indicate a successful vibration.');
console.log("error.code" + error.code + "error.message" + error.message); }, (error)=>{
}); console.log('error.code' + error.code + 'error.message' + error.message);
});
} catch(err) {
console.info('errCode: ' + err.code + ' ,msg: ' + err.message);
}
``` ```
## vibrator.stop
stop(stopMode: VibratorStopMode, callback?: AsyncCallback&lt;void&gt;): void;
按照要停止指定的振动模式来停止马达的振动。如果要停止的振动模式与触发马达振动时的模式不相同,则调用本接口会失败。
**需要权限**:ohos.permission.VIBRATE
**系统能力**:SystemCapability.Sensors.MiscDevice
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------- | ---- | ------------------------------------------------------------ |
| stopMode | [VibratorStopMode](#vibratorstopmode) | 是 | 马达停止指定的振动模式。 |
| callback | AsyncCallback&lt;void&gt; | 否 | 回调函数。当马达停止振动成功,err为undefined,否则为错误对象。 |
**示例:**
```js
vibrator.stop(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_PRESET, function(error){
if(error){
console.log("error.code" + error.code + "error.message" + error.message);
}else{
console.log("Callback returned to indicate successful.");
}
})
```
## EffectId ## EffectId
马达振动效果的字符串。 马达振动效果的字符串。
...@@ -353,3 +250,200 @@ stop(stopMode: VibratorStopMode, callback?: AsyncCallback&lt;void&gt;): void; ...@@ -353,3 +250,200 @@ stop(stopMode: VibratorStopMode, callback?: AsyncCallback&lt;void&gt;): void;
| physicalFeedback | string | 用于物理反馈振动的场景。 | | physicalFeedback | string | 用于物理反馈振动的场景。 |
| simulateReality | string | 用于模拟现实振动的场景。 | | simulateReality | string | 用于模拟现实振动的场景。 |
## vibrator.vibrate<sup>(deprecated)</sup>
vibrate(duration: number): Promise&lt;void&gt;
按照指定持续时间触发马达振动。
从API version 9 开始不再维护,建议使用 [vibrator.startVibration](#vibratorstartvibration9-1) 代替。
**需要权限**:ohos.permission.VIBRATE
**系统能力**:SystemCapability.Sensors.MiscDevice
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ---------------------- |
| duration | number | 是 | 马达振动时长, 单位ms。 |
**返回值:**
| 类型 | 说明 |
| ------------------- | -------------------------------------- |
| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
**示例:**
```js
vibrator.vibrate(1000).then(()=>{
console.log('Promise returned to indicate a successful vibration.');
}, (error)=>{
console.log('error.code' + error.code + 'error.message' + error.message);
});
```
## vibrator.vibrate<sup>(deprecated)</sup>
vibrate(duration: number, callback?: AsyncCallback&lt;void&gt;): void
按照指定持续时间触发马达振动。
从API version 9 开始不再维护,建议使用 [vibrator.startVibration](#vibratorstartvibration9) 代替。
**需要权限**:ohos.permission.VIBRATE
**系统能力**:SystemCapability.Sensors.MiscDevice
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------- | ---- | ---------------------------------------------------------- |
| duration | number | 是 | 马达振动时长, 单位ms。 |
| callback | AsyncCallback&lt;void&gt; | 否 | 回调函数。当马达振动成功,err为undefined,否则为错误对象。 |
**示例:**
```js
vibrator.vibrate(1000,function(error){
if(error){
console.log('error.code' + error.code + 'error.message' + error.message);
}else{
console.log('Callback returned to indicate a successful vibration.');
}
})
```
## vibrator.vibrate<sup>(deprecated)</sup>
vibrate(effectId: EffectId): Promise&lt;void&gt;
按照预置振动效果触发马达振动。
从API version 9 开始不再维护,建议使用 [vibrator.startVibration](#vibratorstartvibration9-1) 代替。
**需要权限**:ohos.permission.VIBRATE
**系统能力**:SystemCapability.Sensors.MiscDevice
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------- | ---- | ------------------ |
| effectId | [EffectId](#effectid) | 是 | 预置的振动效果ID。 |
**返回值:**
| 类型 | 说明 |
| ------------------- | -------------------------------------- |
| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
**示例:**
```js
vibrator.vibrate(vibrator.EffectId.EFFECT_CLOCK_TIMER).then(()=>{
console.log('Promise returned to indicate a successful vibration.');
}, (error)=>{
console.log('error.code' + error.code + 'error.message' + error.message);
});
```
## vibrator.vibrate<sup>(deprecated)</sup>
vibrate(effectId: EffectId, callback?: AsyncCallback&lt;void&gt;): void
按照指定振动效果触发马达振动。
从API version 9 开始不再维护,建议使用 [vibrator.startVibration](#vibratorstartvibration9) 代替。
**需要权限**:ohos.permission.VIBRATE
**系统能力**:SystemCapability.Sensors.MiscDevice
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------- | ---- | ---------------------------------------------------------- |
| effectId | [EffectId](#effectid) | 是 | 预置的振动效果ID。 |
| callback | AsyncCallback&lt;void&gt; | 否 | 回调函数。当马达振动成功,err为undefined,否则为错误对象。 |
**示例:**
```js
vibrator.vibrate(vibrator.EffectId.EFFECT_CLOCK_TIMER, function(error){
if(error){
console.log('error.code' + error.code + 'error.message' + error.message);
}else{
console.log('Callback returned to indicate a successful vibration.');
}
})
```
## vibrator.stop<sup>(deprecated)</sup>
stop(stopMode: VibratorStopMode): Promise&lt;void&gt;
按照要停止指定的振动模式来停止马达的振动。如果要停止的振动模式与触发马达振动时的模式不相同,则调用本接口会失败。
从API version 9 开始不再维护,建议使用 [vibrator.stopVibration](#vibratorstopvibration9-1) 代替。
**需要权限**:ohos.permission.VIBRATE
**系统能力**:SystemCapability.Sensors.MiscDevice
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------- | ---- | ------------------------ |
| stopMode | [VibratorStopMode](#vibratorstopmode) | 是 | 马达停止指定的振动模式。 |
**返回值:**
| 类型 | 说明 |
| ------------------- | -------------------------------------- |
| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
**示例:**
```js
vibrator.stop(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_PRESET).then(()=>{
console.log('Promise returned to indicate a successful vibration.');
}, (error)=>{
console.log('error.code' + error.code + 'error.message' + error.message);
});
```
## vibrator.stop<sup>(deprecated)</sup>
stop(stopMode: VibratorStopMode, callback?: AsyncCallback&lt;void&gt;): void
按照要停止指定的振动模式来停止马达的振动。如果要停止的振动模式与触发马达振动时的模式不相同,则调用本接口会失败。
从API version 9 开始不再维护,建议使用 [vibrator.stopVibration](#vibratorstopvibration9) 代替。
**需要权限**:ohos.permission.VIBRATE
**系统能力**:SystemCapability.Sensors.MiscDevice
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------- | ---- | ------------------------------------------------------------ |
| stopMode | [VibratorStopMode](#vibratorstopmode) | 是 | 马达停止指定的振动模式。 |
| callback | AsyncCallback&lt;void&gt; | 否 | 回调函数。当马达停止振动成功,err为undefined,否则为错误对象。 |
**示例:**
```js
vibrator.stop(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_PRESET, function(error){
if(error){
console.log('error.code' + error.code + 'error.message' + error.message);
}else{
console.log('Callback returned to indicate successful.');
}
})
```
...@@ -32,7 +32,8 @@ Blank(min?: number&nbsp;|&nbsp;string) ...@@ -32,7 +32,8 @@ Blank(min?: number&nbsp;|&nbsp;string)
## 示例 ## 示例
### 示例1
Blank组件在横竖屏占满空余空间效果。
```ts ```ts
// xxx.ets // xxx.ets
@Entry @Entry
...@@ -57,3 +58,37 @@ struct BlankExample { ...@@ -57,3 +58,37 @@ struct BlankExample {
横屏状态 横屏状态
![zh-cn_image_0000001174104388](figures/zh-cn_image_0000001174104388.gif) ![zh-cn_image_0000001174104388](figures/zh-cn_image_0000001174104388.gif)
### 示例2
Blank组件的父组件未设置宽度时,min参数的使用效果。
```ts
// xxx.ets
@Entry
@Component
struct BlankExample {
build() {
Column({ space: 20 }) {
// blank父组件不设置宽度时,Blank失效,可以通过设置min最小宽度填充固定宽度
Row() {
Text('Bluetooth').fontSize(18)
Blank().color(Color.Yellow)
Toggle({ type: ToggleType.Switch })
}.backgroundColor(0xFFFFFF).borderRadius(15).padding({ left: 12 })
Row() {
Text('Bluetooth').fontSize(18)
// 设置最小宽度为160
Blank('160').color(Color.Yellow)
Toggle({ type: ToggleType.Switch })
}.backgroundColor(0xFFFFFF).borderRadius(15).padding({ left: 12 })
}.backgroundColor(0xEFEFEF).padding(20).width('100%')
}
}
```
Blank父组件未设置宽度时,子组件间无空白填充,使用min参数设置填充尺寸
![blankmin](figures/blankmin.png)
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
CheckboxGroup(options?: { group?: string }) CheckboxGroup(options?: { group?: string })
创建多选框群组,可以控制群组内的Checkbox全选或者不全选,相同group的Checkbox和CheckboxGroup为同一群组。 创建多选框群组,可以控制群组内的Checkbox全选或者不全选,group值相同的Checkbox和CheckboxGroup为同一群组。
**参数:** **参数:**
...@@ -39,13 +39,13 @@ CheckboxGroup(options?: { group?: string }) ...@@ -39,13 +39,13 @@ CheckboxGroup(options?: { group?: string })
| 名称 | 功能描述 | | 名称 | 功能描述 |
| -------- | -------- | | -------- | -------- |
| onChange (callback: (event: CheckboxGroupResult) => void ) |CheckboxGroup的选中状态或群组内的Checkbox的选中状态发生变化时,触发回调。| | onChange (callback: (event: [CheckboxGroupResult](#checkboxgroupresult对象说明)) => void ) |CheckboxGroup的选中状态或群组内的Checkbox的选中状态发生变化时,触发回调。|
## CheckboxGroupResult对象说明 ## CheckboxGroupResult对象说明
| 名称 | 类型 | 描述 | | 名称 | 类型 | 描述 |
| ------ | ------ | ------- | | ------ | ------ | ------- |
| name | Array&lt;string&gt; | 群组内所有被选中的多选框名称。 | | name | Array&lt;string&gt; | 群组内所有被选中的多选框名称。 |
| status | SelectStatus | 选中状态。 | | status | [SelectStatus](#selectstatus枚举说明) | 选中状态。 |
## SelectStatus枚举说明 ## SelectStatus枚举说明
...@@ -66,18 +66,19 @@ struct CheckboxExample { ...@@ -66,18 +66,19 @@ struct CheckboxExample {
build() { build() {
Scroll() { Scroll() {
Column() { Column() {
// 全选按钮
Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) { Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
CheckboxGroup({ group: 'checkboxGroup' }) CheckboxGroup({ group: 'checkboxGroup' })
.selectedColor(0xed6f21) .selectedColor(0xed6f21)
.onChange((itemName: CheckboxGroupResult) => { .onChange((itemName: CheckboxGroupResult) => {
console.info("TextPicker::dialogResult is" + JSON.stringify(itemName)) console.info("checkbox group content" + JSON.stringify(itemName))
}) })
Text('select all').fontSize(20) Text('Select All').fontSize(20)
} }
// 选项1
Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) { Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
Checkbox({ name: 'checkbox1', group: 'checkboxGroup' }) Checkbox({ name: 'checkbox1', group: 'checkboxGroup' })
.select(true)
.selectedColor(0x39a2db) .selectedColor(0x39a2db)
.onChange((value: boolean) => { .onChange((value: boolean) => {
console.info('Checkbox1 change is' + value) console.info('Checkbox1 change is' + value)
...@@ -85,9 +86,9 @@ struct CheckboxExample { ...@@ -85,9 +86,9 @@ struct CheckboxExample {
Text('Checkbox1').fontSize(20) Text('Checkbox1').fontSize(20)
} }
// 选项2
Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) { Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
Checkbox({ name: 'checkbox2', group: 'checkboxGroup' }) Checkbox({ name: 'checkbox2', group: 'checkboxGroup' })
.select(false)
.selectedColor(0x39a2db) .selectedColor(0x39a2db)
.onChange((value: boolean) => { .onChange((value: boolean) => {
console.info('Checkbox2 change is' + value) console.info('Checkbox2 change is' + value)
...@@ -95,9 +96,9 @@ struct CheckboxExample { ...@@ -95,9 +96,9 @@ struct CheckboxExample {
Text('Checkbox2').fontSize(20) Text('Checkbox2').fontSize(20)
} }
// 选项3
Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) { Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
Checkbox({ name: 'checkbox3', group: 'checkboxGroup' }) Checkbox({ name: 'checkbox3', group: 'checkboxGroup' })
.select(true)
.selectedColor(0x39a2db) .selectedColor(0x39a2db)
.onChange((value: boolean) => { .onChange((value: boolean) => {
console.info('Checkbox3 change is' + value) console.info('Checkbox3 change is' + value)
...@@ -109,4 +110,10 @@ struct CheckboxExample { ...@@ -109,4 +110,10 @@ struct CheckboxExample {
} }
} }
``` ```
![](figures/checkboxgroup.gif) 多选框组三种状态图示:
![](figures/checkboxgroup1.png)
![](figures/checkboxgroup2.png)
![](figures/checkboxgroup3.png)
...@@ -24,7 +24,7 @@ DataPanel(options:{values: number[], max?: number, type?: DataPanelType}) ...@@ -24,7 +24,7 @@ DataPanel(options:{values: number[], max?: number, type?: DataPanelType})
| ----------------- | -------- | ----- | -------- | | ----------------- | -------- | ----- | -------- |
| values | number[] | 是 | 数据值列表,最大支持9个数据。 | | values | number[] | 是 | 数据值列表,最大支持9个数据。 |
| max | number | 否 | -&nbsp;max大于0,表示数据的最大值。<br/>-&nbsp;max小于等于0,max等于value数组各项的和,按比例显示。<br/>默认值:100 | | max | number | 否 | -&nbsp;max大于0,表示数据的最大值。<br/>-&nbsp;max小于等于0,max等于value数组各项的和,按比例显示。<br/>默认值:100 |
| type<sup>8+</sup> | DataPanelType | 否 | 数据面板的类型。<br/>默认值:DataPanelType.Circle | | type<sup>8+</sup> | [DataPanelType](#datapaneltype枚举说明) | 否 | 数据面板的类型。<br/>默认值:DataPanelType.Circle |
## DataPanelType枚举说明 ## DataPanelType枚举说明
......
...@@ -47,6 +47,7 @@ struct DividerExample { ...@@ -47,6 +47,7 @@ struct DividerExample {
Divider() Divider()
Row().width('100%').height(40).backgroundColor(0xF1F3F5) Row().width('100%').height(40).backgroundColor(0xF1F3F5)
// 纵向分割线
Text('Vertical divider').fontSize(9).fontColor(0xCCCCCC) Text('Vertical divider').fontSize(9).fontColor(0xCCCCCC)
Flex({ alignItems: ItemAlign.Center, wrap: FlexWrap.Wrap }) { Flex({ alignItems: ItemAlign.Center, wrap: FlexWrap.Wrap }) {
Text('bravery') Text('bravery')
...@@ -56,6 +57,7 @@ struct DividerExample { ...@@ -56,6 +57,7 @@ struct DividerExample {
Text('upward') Text('upward')
}.width(250) }.width(250)
// 设置分割线宽度和端点样式
Text('Custom Styles').fontSize(9).fontColor(0xCCCCCC) Text('Custom Styles').fontSize(9).fontColor(0xCCCCCC)
Row().width('100%').height(40).backgroundColor(0xF1F3F5) Row().width('100%').height(40).backgroundColor(0xF1F3F5)
Divider().vertical(false).strokeWidth(5).color(0x2788D9).lineCap(LineCapStyle.Round) Divider().vertical(false).strokeWidth(5).color(0x2788D9).lineCap(LineCapStyle.Round)
......
...@@ -21,7 +21,7 @@ Gauge(options:{value: number, min?: number, max?: number}) ...@@ -21,7 +21,7 @@ Gauge(options:{value: number, min?: number, max?: number})
| 参数名 | 参数类型 | 必填 | 参数描述 | | 参数名 | 参数类型 | 必填 | 参数描述 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| value | number | 是 | 当前数据值。 | | value | number | 是 | 量规图的当前数据值,即图中指针指向位置。用于组件创建时量规图初始值的预置。 |
| min | number | 否 | 当前数据段最小值。<br/>默认值:0 | | min | number | 否 | 当前数据段最小值。<br/>默认值:0 |
| max | number | 否 | 当前数据段最大值。<br/>默认值:100 | | max | number | 否 | 当前数据段最大值。<br/>默认值:100 |
...@@ -31,11 +31,11 @@ Gauge(options:{value: number, min?: number, max?: number}) ...@@ -31,11 +31,11 @@ Gauge(options:{value: number, min?: number, max?: number})
| 名称 | 参数类型 | 描述 | | 名称 | 参数类型 | 描述 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| value | number | 设置当前数据图表的值。<br/>默认值:0 | | value | number | 设置量规图的数据值,可用于动态修改量规图的数据值。<br/>默认值:0 |
| startAngle | number | 设置起始角度位置,时钟0点为0度,顺时针方向为正角度。<br/>默认值:-150 | | startAngle | number | 设置起始角度位置,时钟0点为0度,顺时针方向为正角度。<br/>默认值:0 |
| endAngle | number | 设置终止角度位置,时钟0点为0度,顺时针方向为正角度。<br/>默认值:150 | | endAngle | number | 设置终止角度位置,时钟0点为0度,顺时针方向为正角度。<br/>默认值:360 |
| colors | Array&lt;ColorStop&gt; | 设置图表的颜色,支持分段颜色设置。 | | colors | Array&lt;[ColorStop](#colorstop)&gt; | 设置量规图的颜色,支持分段颜色设置。 |
| strokeWidth | Length | 设置环形图表的环形厚度。 | | strokeWidth | Length | 设置环形量规图的环形厚度。 |
## ColorStop ## ColorStop
...@@ -55,15 +55,30 @@ Gauge(options:{value: number, min?: number, max?: number}) ...@@ -55,15 +55,30 @@ Gauge(options:{value: number, min?: number, max?: number})
@Component @Component
struct GaugeExample { struct GaugeExample {
build() { build() {
Column() { Column({ space: 20 }) {
Gauge({ value: 50, min: 0, max: 100 }) // 使用默认的min和max为0-100,角度范围默认0-360,value值设置
.startAngle(210).endAngle(150) // 参数中设置当前值为75
.colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1], [0xD94838, 1]]) Gauge({ value: 75 })
.strokeWidth(20) .width(200).height(200)
.colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
// 参数设置当前值为75,属性设置值为25,属性设置优先级高
Gauge({ value: 75 })
.value(25) //属性和参数都设置时以参数为准
.width(200).height(200) .width(200).height(200)
.colors([[0x317AF7, 1], [0x5BA854, 1], [0xE08C3A, 1], [0x9C554B, 1]])
// 210--150度环形图表
Gauge({ value: 30, min: 0, max: 100 })
.startAngle(210)
.endAngle(150)
.colors([[0x317AF7, 0.1], [0x5BA854, 0.2], [0xE08C3A, 0.3], [0x9C554B, 0.4]])
.strokeWidth(20)
.width(200)
.height(200)
}.width('100%').margin({ top: 5 }) }.width('100%').margin({ top: 5 })
} }
} }
``` ```
![zh-cn_image_0000001174422916](figures/zh-cn_image_0000001174422916.png) ![gauge](figures/gauge-image.png)
...@@ -52,6 +52,7 @@ Image(src: string | PixelMap | Resource) ...@@ -52,6 +52,7 @@ Image(src: string | PixelMap | Resource)
> **说明:** > **说明:**
> >
> 使用快捷组合键对Image组件复制的前提是,该组件必须处于获焦状态。将Image组件的属性focusable设置为true,即可使用TAB键将焦点切换到Image组件上,再将Image组件的focusOnTouch属性设置为true,即可实现点击获焦。 > 使用快捷组合键对Image组件复制的前提是,该组件必须处于获焦状态。将Image组件的属性focusable设置为true,即可使用TAB键将焦点切换到Image组件上,再将Image组件的focusOnTouch属性设置为true,即可实现点击获焦。
> 图片设置svg图源时,支持的标签范围有限,目前支持的svg标签包括svg、rect、circle、ellipse、path、line、polyline、polygon、animate、animateMotion、animateTransform。
### ImageInterpolation ### ImageInterpolation
......
...@@ -21,6 +21,21 @@ TextClock(options?: { timeZoneOffset?: number, controller?: TextClockController ...@@ -21,6 +21,21 @@ TextClock(options?: { timeZoneOffset?: number, controller?: TextClockController
| timeZoneOffset | number | 否 | 设置时区偏移量。<br>取值范围为[-14, 12],表示东十二区到西十二区,其中负值表示东时区,正值表示西时区,比如东八区为-8。<br>对横跨国际日界线的国家或地区,用-13(UTC+13)和-14(UTC+14)来保证整个国家或者区域处在相同的时间,当设置的值不在取值范围内时,将使用当前系统的时区偏移量。<br/>默认值:当前系统的时区偏移量 | | timeZoneOffset | number | 否 | 设置时区偏移量。<br>取值范围为[-14, 12],表示东十二区到西十二区,其中负值表示东时区,正值表示西时区,比如东八区为-8。<br>对横跨国际日界线的国家或地区,用-13(UTC+13)和-14(UTC+14)来保证整个国家或者区域处在相同的时间,当设置的值不在取值范围内时,将使用当前系统的时区偏移量。<br/>默认值:当前系统的时区偏移量 |
| controller | [TextClockController](#textclockcontroller) | 否 | 绑定一个控制器,用来控制文本时钟的状态。| | controller | [TextClockController](#textclockcontroller) | 否 | 绑定一个控制器,用来控制文本时钟的状态。|
## 属性
除支持[通用属性](ts-universal-attributes-size.md)外,还支持以下属性:
| 名称 | 参数类型 | 描述 |
| ------ | --------------- | ------------------------------------------------------------ |
| format | string | 设置显示时间格式。<br/>日期间隔符固定为"/",时间间隔符为":"。<br/>如yyyyMMdd,yyyy-MM-dd显示为yyyy/MM/dd,<br/>hhmmss显示为hh:mm:ss。 <br/>时间格式只用写一位即可,如"hhmmss"等同于"hms"。<br/>支持的时间格式化字符串:<br/>- YYYY/yyyy:完整年份。<br/>- YY/yy:年份后两位。<br/>- M:月份(若想使用01月则使用MM)。<br/>- d:日期(若想使用01日则使用dd)。<br/>- D:年中日(一年中的第几天)。<br/>- H:24小时制。<br/>- h:12小时制。<br/>- m:分钟。<br/>- s:秒。<br/>- SSS:毫秒。<br/>若格式未匹配,则使用默认值。<br/>默认值: 'hms'|
## 事件
除支持[通用事件](ts-universal-events-click.md)外,还支持以下事件:
| 名称 | 功能描述 |
| -------------------------------------------- | ------------------------------------------------------------ |
| onDateChange(event: (value: number) => void) | 提供时间变化回调,该事件最小回调间隔为秒。<br/>- value: Unix Time Stamp,即自1970年1月1日(UTC)起经过的毫秒数。 |
## TextClockController ## TextClockController
...@@ -44,24 +59,6 @@ stop() ...@@ -44,24 +59,6 @@ stop()
停止文本时钟。 停止文本时钟。
## 属性
除支持[通用属性](ts-universal-attributes-size.md)外,还支持以下属性:
| 名称 | 参数类型 | 描述 |
| ------ | --------------- | ------------------------------------------------------------ |
| format | string | 设置显示时间格式。<br/>日期间隔符固定为"/",时间间隔符为":"。<br/>如yyyyMMdd,yyyy-MM-dd显示为yyyy/MM/dd,<br/>hhmmss显示为hh:mm:ss。 <br/>时间格式只用写一位即可,如"hhmmss"等同于"hms"。<br/>支持的时间格式化字符串:<br/>- YYYY/yyyy:完整年份。<br/>- YY/yy:年份后两位。<br/>- M:月份(若想使用01月则使用MM)。<br/>- d:日期(若想使用01日则使用dd)。<br/>- D:年中日(一年中的第几天)。<br/>- H:24小时制。<br/>- h:12小时制。<br/>- m:分钟。<br/>- s:秒。<br/>- SSS:毫秒。<br/>默认值: 'hms'|
## 事件
除支持[通用事件](ts-universal-events-click.md)外,还支持以下事件:
| 名称 | 功能描述 |
| -------------------------------------------- | ------------------------------------------------------------ |
| onDateChange(event: (value: number) => void) | 提供时间变化回调,该事件最小回调间隔为秒。<br /> value: Unix Time Stamp,即自1970年1月1日(UTC)起经过的毫秒数。 |
## 示例 ## 示例
```ts ```ts
...@@ -101,4 +98,3 @@ struct Second { ...@@ -101,4 +98,3 @@ struct Second {
} }
``` ```
![text_clock](figures/text_clock.gif) ![text_clock](figures/text_clock.gif)
...@@ -6,40 +6,33 @@ ...@@ -6,40 +6,33 @@
> >
> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 > 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
## 子组件 ## 子组件
## 接口 ## 接口
TextTimer(options?: { isCountDown?: boolean, count?: number, controller?: TextTimerController }) TextTimer(options?: { isCountDown?: boolean, count?: number, controller?: TextTimerController })
**参数:** **参数**
| 参数名 | 参数类型 | 必填 | 参数描述 | | 参数名 | 参数类型 | 必填 | 参数描述 |
| ----------- | -------- | -------- | -------- | -------- | | ----------- | -------- | -------- | -------- |
| isCountDown | boolean | 否 | 是否倒计时。<br/>默认值:false | | isCountDown | boolean | 否 | 是否倒计时。<br/>默认值:false |
| count | number | 否 | 倒计时时间(isCountDown为true时生效),单位为毫秒。<br/>-&nbsp;count&lt;=0时,使用默认值为倒计时初始值。<br/>-&nbsp;count&gt;0时,count值为倒计时初始值。<br/>默认值:60000 | | count | number | 否 | 倒计时时间(isCountDown为true时生效),单位为毫秒。最长不超过86400000毫秒(24小时)。&nbsp;0&lt;count&lt;86400000时,count值为倒计时初始值。否则,使用默认值为倒计时初始值。<br/>默认值:60000 |
| controller | [TextTimerController](#texttimercontroller) | 否 | TextTimer控制器。 | | controller | [TextTimerController](#texttimercontroller) | 否 | TextTimer控制器。 |
## 属性 ## 属性
| 名称 | 参数类型 | 描述 | | 名称 | 参数类型 | 描述 |
| -------- | ---------------------- | ---------------------- | | -------- | ---------------------- | ---------------------- |
| format | string | 自定义格式,需至少包含一个hh、mm、ss、ms中的关键字。<br/>默认值:'hh:mm:ss.ms' | | format | string | 自定义格式,需至少包含一个HH、mm、ss、SS中的关键字。如使用yy、MM、dd等日期格式,则使用默认值。<br/>默认值:'HH:mm:ss.SS' |
## 事件 ## 事件
| 名称 | 功能描述 | | 名称 | 功能描述 |
| -------- | -------- | | ---------------------------------------- | ---------------------------------------- |
| onTimer(event:&nbsp;(utc:&nbsp;number,&nbsp;elapsedTime:&nbsp;number)&nbsp;=&gt;&nbsp;void) | 时间文本发生变化时触发。<br/>utc:当前显示的时间,单位为毫秒。<br/>elapsedTime:计时器经过的时间,单位为毫秒。 | | onTimer(event:&nbsp;(utc:&nbsp;number,&nbsp;elapsedTime:&nbsp;number)&nbsp;=&gt;&nbsp;void) | 时间文本发生变化时触发。<br/>utc:Linux时间戳,即自1970年1月1日起经过的毫秒数。<br/>elapsedTime:计时器经过的时间,单位为毫秒。 |
## TextTimerController ## TextTimerController
...@@ -70,7 +63,6 @@ reset() ...@@ -70,7 +63,6 @@ reset()
重置计时器。 重置计时器。
## 示例 ## 示例
```ts ```ts
...@@ -79,7 +71,7 @@ reset() ...@@ -79,7 +71,7 @@ reset()
@Component @Component
struct TextTimerExample { struct TextTimerExample {
textTimerController: TextTimerController = new TextTimerController() textTimerController: TextTimerController = new TextTimerController()
@State format: string = 'hh:mm:ss.ms' @State format: string = 'HH:mm:ss.SS'
build() { build() {
Column() { Column() {
......
...@@ -6,11 +6,6 @@ ...@@ -6,11 +6,6 @@
> 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 > 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
## 权限列表
## 子组件 ## 子组件
支持单个子组件。 支持单个子组件。
...@@ -42,15 +37,6 @@ ...@@ -42,15 +37,6 @@
| position | [BadgePosition](#badgeposition枚举说明) | 否 | BadgePosition.RightTop | 设置提示点显示位置。 | | position | [BadgePosition](#badgeposition枚举说明) | 否 | BadgePosition.RightTop | 设置提示点显示位置。 |
| style | [BadgeStyle](#badgestyle对象说明) | 是 | - | Badge组件可设置样式,支持设置文本颜色、尺寸、圆点颜色和尺寸。 | | style | [BadgeStyle](#badgestyle对象说明) | 是 | - | Badge组件可设置样式,支持设置文本颜色、尺寸、圆点颜色和尺寸。 |
## BadgeStyle对象说明
| 名称 | 类型 | 必填 | 默认值 | 描述 |
| -------- | -------- | -------- | -------- | -------- |
| color | [ResourceColor](ts-types.md) | 否 | Color.White | 文本颜色。 |
| fontSize | number&nbsp;\|&nbsp;string | 否 | 10 | 文本大小。 |
| badgeSize | number&nbsp;\|&nbsp;string | 是 | - | badge的大小。 |
| badgeColor | [ResourceColor](ts-types.md) | 否 | Color.Red | badge的颜色。 |
## BadgePosition枚举说明 ## BadgePosition枚举说明
| 名称 | 描述 | | 名称 | 描述 |
...@@ -59,6 +45,13 @@ ...@@ -59,6 +45,13 @@
| Right | 圆点显示在右侧纵向居中。 | | Right | 圆点显示在右侧纵向居中。 |
| Left | 圆点显示在左侧纵向居中。 | | Left | 圆点显示在左侧纵向居中。 |
## BadgeStyle对象说明
| 名称 | 类型 | 必填 | 默认值 | 描述 |
| -------- | -------- | -------- | -------- | -------- |
| color | [ResourceColor](ts-types.md#resourcecolor) | 否 | Color.White | 文本颜色。 |
| fontSize | number&nbsp;\|&nbsp;string | 否 | 10 | 文本大小。 |
| badgeSize | number&nbsp;\|&nbsp;string | 是 | - | badge的大小。 |
| badgeColor | [ResourceColor](ts-types.md#resourcecolor) | 否 | Color.Red | badge的颜色。 |
## 示例 ## 示例
...@@ -67,44 +60,92 @@ ...@@ -67,44 +60,92 @@
@Entry @Entry
@Component @Component
struct BadgeExample { struct BadgeExample {
@State counts: number = 1 @State counts: number = 1;
@State message: string = 'new' @State message: string = 'new';
build() { build() {
Flex({ justifyContent: FlexAlign.SpaceAround }) { Column() {
Badge({ Text('numberBadge').width('80%')
count: this.counts, Row({ space: 10 }) {
maxCount: 99, // 数字上标,maxCount默认99,超过99展示99+
style: { color: 0xFFFFFF, fontSize: 16, badgeSize: 20, badgeColor: Color.Red } Badge({
}) { count: this.counts,
Button('message') maxCount: 99,
.onClick(() => { position: BadgePosition.RightTop,
this.counts++ style: { color: 0xFFFFFF, fontSize: 16, badgeSize: 20, badgeColor: Color.Red }
}) }) {
.width(100).height(50).backgroundColor(0x317aff) Button('message')
}.width(100).height(50) .onClick(() => {
this.counts++;
Badge({ })
value: this.message, .width(100).height(50).backgroundColor(0x317aff)
style: { color: 0xFFFFFF, fontSize: 9, badgeSize: 20, badgeColor: Color.Blue } }.width(100).height(50)
}) {
Text('message') // 数字上标
.width(80).height(50).fontSize(16).lineHeight(37) Badge({
.borderRadius(10).textAlign(TextAlign.Center).backgroundColor(0xF3F4ED) count: this.counts,
}.width(80).height(50) maxCount: 99,
position: BadgePosition.Left,
Badge({ style: { color: 0xFFFFFF, fontSize: 16, badgeSize: 20, badgeColor: Color.Red }
value: ' ', }) {
position: BadgePosition.Right, Button('message')
style: { badgeSize: 6, badgeColor: Color.Red } .onClick(() => {
}) { this.counts++;
Text('message') })
.width(90).height(50).fontSize(16).lineHeight(37) .width(100).height(50).backgroundColor(0x317aff)
.borderRadius(10).textAlign(TextAlign.Center).backgroundColor(0xF3F4ED) }.width(100).height(50)
}.width(90).height(50)
}.width('100%').margin({ top: 5 })
// 数字上标
Badge({
count: this.counts,
maxCount: 99,
position: BadgePosition.Right,
style: { color: 0xFFFFFF, fontSize: 16, badgeSize: 20, badgeColor: Color.Red }
}) {
Button('message')
.onClick(() => {
this.counts++;
})
.width(100).height(50).backgroundColor(0x317aff)
}.width(100).height(50)
}.margin(10)
Text('stringBadge').width('80%')
Row({ space: 30 }) {
Badge({
value: this.message,
style: { color: 0xFFFFFF, fontSize: 9, badgeSize: 20, badgeColor: Color.Blue }
}) {
Text('message')
.width(80)
.height(50)
.fontSize(16)
.lineHeight(37)
.borderRadius(10)
.textAlign(TextAlign.Center)
.backgroundColor(0xF3F4ED)
}.width(80).height(50)
// value为空,设置圆点标记
Badge({
value: '',
position: BadgePosition.Right,
style: { badgeSize: 6, badgeColor: Color.Red }
}) {
Text('message')
.width(90)
.height(50)
.fontSize(16)
.lineHeight(37)
.borderRadius(10)
.textAlign(TextAlign.Center)
.backgroundColor(0xF3F4ED)
}.width(90).height(50)
}.margin(10)
}
} }
} }
``` ```
![zh-cn_image_0000001219864147](figures/zh-cn_image_0000001219864147.gif) ![badge](figures/badge.png)
# ColumnSplit # ColumnSplit
> **说明:**
> 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
将子组件纵向布局,并在每个子组件之间插入一根横向的分割线。 将子组件纵向布局,并在每个子组件之间插入一根横向的分割线。
> **说明:**
> 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
## 权限列表
## 子组件 ## 子组件
...@@ -30,7 +25,8 @@ ColumnSplit() ...@@ -30,7 +25,8 @@ ColumnSplit()
> **说明:** > **说明:**
> 与RowSplit相同,ColumnSplit的分割线最小能拖动到刚好包含子组件。 > 与RowSplit相同,ColumnSplit的分割线最小能拖动到刚好包含子组件。
>
> 在真机中查看拖动效果,预览器中不支持拖动。
## 示例 ## 示例
...@@ -49,7 +45,7 @@ struct ColumnSplitExample { ...@@ -49,7 +45,7 @@ struct ColumnSplitExample {
Text('4').width('100%').height(50).backgroundColor(0xD2B48C).textAlign(TextAlign.Center) Text('4').width('100%').height(50).backgroundColor(0xD2B48C).textAlign(TextAlign.Center)
Text('5').width('100%').height(50).backgroundColor(0xF5DEB3).textAlign(TextAlign.Center) Text('5').width('100%').height(50).backgroundColor(0xF5DEB3).textAlign(TextAlign.Center)
} }
.resizeable(true) .resizeable(true) // 可拖动
.width('90%').height('60%') .width('90%').height('60%')
}.width('100%') }.width('100%')
} }
......
...@@ -27,8 +27,8 @@ Panel(show: boolean) ...@@ -27,8 +27,8 @@ Panel(show: boolean)
| 名称 | 参数类型 | 描述 | | 名称 | 参数类型 | 描述 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| type | PanelType | 设置可滑动面板的类型。<br/>默认值:PanelType.Foldable | | type | [PanelType](#paneltype枚举说明) | 设置可滑动面板的类型。<br/>默认值:PanelType.Foldable |
| mode | PanelMode | 设置可滑动面板的初始状态。 | | mode | [PanelMode](#panelmode枚举说明) | 设置可滑动面板的初始状态。 |
| dragBar | boolean | 设置是否存在dragbar,true表示存在,false表示不存在。<br/>默认值:true | | dragBar | boolean | 设置是否存在dragbar,true表示存在,false表示不存在。<br/>默认值:true |
| fullHeight | string&nbsp;\|&nbsp;number | 指定PanelMode.Full状态下的高度。 | | fullHeight | string&nbsp;\|&nbsp;number | 指定PanelMode.Full状态下的高度。 |
| halfHeight | string&nbsp;\|&nbsp;number | 指定PanelMode.Half状态下的高度,默认为屏幕尺寸的一半。 | | halfHeight | string&nbsp;\|&nbsp;number | 指定PanelMode.Half状态下的高度,默认为屏幕尺寸的一半。 |
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册