提交 7b4a5b21 编写于 作者: Z zhaoyuan 提交者: blackleon
上级 d5255f20
此差异已折叠。
此差异已折叠。
### Context模块(JS端SDK接口)
#### 支持设备
| API | 手机 | 平板 | 智慧屏 | 智能穿戴 | 轻量级智能穿戴 | 智慧视觉设备 |
| ------------------------------------------------------------ | ---- | ---- | ------ | -------- | -------------- | ------------ |
| Context.getOrCreateLocalDir(callback: AsyncCallback\<string>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| Context.getOrCreateLocalDir() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| Context.verifyPermission(permission: string, options: PermissionOptions, callback: AsyncCallback\<number>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| Context.verifyPermission(permission: string, callback: AsyncCallback\<number>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| Context.verifyPermission(permission: string, options?: PermissionOptions) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| Context.requestPermissionsFromUser(permissions: Array\<string>, requestCode: number, resultCallback: AsyncCallback\<PermissionRequestResult>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| Context.getApplicationInfo(callback: AsyncCallback\<ApplicationInfo>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| Context.getApplicationInfo() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| Context.getBundleName(callback: AsyncCallback\<string>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| Context.getBundleName() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| Context.getProcessInfo(callback: AsyncCallback\<ProcessInfo>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| Context.getProcessInfo() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| Context.getElementName(callback: AsyncCallback\<ElementName>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| Context.getElementName() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| Context.getProcessName(callback: AsyncCallback\<string>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| Context.getProcessName() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| Context.getCallingBundle(callback: AsyncCallback\<string>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| Context.getCallingBundle() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
#### 权限列表
**ohos.permission.RUNNING_LOCK permission**
#### 导入模块
```
import featureAbility from '@ohos.ability.featureAbility'
import bundle from '@ohos.bundle'
```
#### Context.getOrCreateLocalDir(callback: AsyncCallback\<string>)
- 接口说明
获取应用程序的本地根目录。如果是第一次调用,将创建目录(callback形式)
- getOrCreateLocalDir参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | ----------------------- | ---- | ---------------- |
| callback | 只读 | AsyncCallback\<string>) | 是 | 被指定的回调方法 |
- 返回值
根目录
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getOrCreateLocalDir()
```
#### Context.getOrCreateLocalDir()
- 接口说明
获取应用程序的本地根目录。如果是第一次调用,将创建目录(Promise形式)
- 返回值
根目录
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getOrCreateLocalDir().then((void) => {
console.info("==========================>getOrCreateLocalDirCallback=======================>");
});
```
#### Context.verifyPermission(permission: string, options: PermissionOptions, callback: AsyncCallback\<number>)
- 接口说明
验证系统中运行的特定pid和uid是否允许指定的权限(callback形式)
- verifyPermission参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ---------- | -------- | ---------------------- | ---- | ---------------- |
| permission | 只读 | string | 是 | 指定权限的名称 |
| options | 只读 | PermissionOptions | 是 | 进程id |
| callback | 只读 | AsyncCallback\<number> | 是 | 被指定的回调方法 |
- PermissionOptions类型说明
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ---- | -------- | ------ | ---- | ------ |
| pid | 只读 | number | 否 | 进程id |
| uid | 只读 | number | 否 | 用户id |
- 返回值
如果PID和UID具有权限,则使用{@code 0}进行异步回调;否则使用{@code-1}回调。
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
import bundle from '@ohos.bundle'
var context = featureAbility.getContext();
var datainfo = await bundle.getBundleInfo('com.context.test',1);
context.verifyPermission("com.example.permission",datainfo.uid,)
```
#### Context.verifyPermission(permission: string, callback: AsyncCallback\<number>)
- 接口说明
验证系统中运行的特定pid和uid是否允许指定的权限(callback形式)
- 参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ---------- | -------- | ----------------------- | ---- | ---------------- |
| permission | 只读 | string | 是 | 指定权限的名称 |
| callback | 只读 | AsyncCallback\<number>) | 是 | 被指定的回调方法 |
- 返回值
如果PID和UID具有权限,则使用{@code 0}进行异步回调;否则使用{@code-1}回调。
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.verifyPermission("com.example.permission")
```
#### Context.verifyPermission(permission: string, options?: PermissionOptions)
- 接口说明
验证系统中运行的特定pid和uid是否允许指定的权限(Promise形式)
- verifyPermission参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ---------- | -------- | ----------------- | ---- | -------------- |
| permission | 只读 | string | 是 | 指定权限的名称 |
| options | 只读 | PermissionOptions | 否 | 进程id |
- PermissionOptions类型说明
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ---- | -------- | ------ | ---- | ------ |
| pid | 只读 | number | 否 | 进程id |
| uid | 只读 | number | 否 | 用户id |
- 返回值
如果PID和UID具有权限,则使用{@code 0}进行异步回调;否则使用{@code-1}回调。
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
var Permission = context.PermissionOptions(1,1);
context.getOrCreateLocalDir('com.context.permission',Permission).then((void) => {
console.info("==========================>verifyPermissionCallback=======================>");
});
```
#### Context.requestPermissionsFromUser(permissions: Array\<string>, requestCode: number, resultCallback: AsyncCallback\<PermissionRequestResult>)
- 接口说明
从系统请求某些权限(callback形式)
- requestPermissionsFromUser参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------------- | -------- | ---------------------------------------- | ---- | --------------------------------------------- |
| permissions | 只读 | Array\<string> | 是 | 指示要请求的权限列表。此参数不能为null |
| requestCode | 只读 | number | 是 | 指示要传递给PermissionRequestResult的请求代码 |
| resultCallback | 只读 | AsyncCallback\<PermissionRequestResult>) | 是 | 被指定的回调方法 |
- PermissionRequestResult类型说明
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ----------- | -------- | -------------- | ---- | ------------------ |
| requestCode | 只读 | number | 是 | 用户传入的请求代码 |
| permissions | 只读 | Array\<string> | 是 | 用户传入的权限 |
| authResults | 只读 | Array\<number> | 是 | 求权限的结果 |
- 返回值
void
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getOrCreateLocalDir(
["com.example.permission1",
"com.example.permission2",
"com.example.permission3",
"com.example.permission4",
"com.example.permission5"],
1,
)
```
#### Context.getApplicationInfo(callback: AsyncCallback\<ApplicationInfo>)
- 接口说明
获取有关当前应用程序的信息(callback形式)
- 参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | ------------------------------- | ---- | -------------------- |
| callback | 只读 | AsyncCallback\<ApplicationInfo> | 是 | 表示被指定的回调方法 |
- 返回值
void
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getApplicationInfo()
```
#### Context.getApplicationInfo()
- 接口说明
获取有关当前应用程序的信息(Promise形式)
- 参数描述
Null
- 返回值
void
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getApplicationInfo().then((void) => {
console.info("==========================>getApplicationInfoCallback=======================>");
});
```
#### Context.getBundleName(callback: AsyncCallback\<string>)
- 接口说明
获取当前ability的捆绑包名称(callback形式)
- 参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | ---------------------- | ---- | -------------------- |
| callback | 只读 | AsyncCallback\<string> | 是 | 表示被指定的回调方法 |
- 返回值
void
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getBundleName()
```
#### Context.getBundleName()
- 接口说明
获取当前ability的捆绑包名称(Promise形式)
- 参数描述
Null
- 返回值
void
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getBundleName().then((void) => {
console.info("==========================>getBundleNameCallback=======================>");
});
```
#### Context.getProcessInfo(callback: AsyncCallback\<ProcessInfo>)
- 接口说明
获取有关当前进程的信息,包括进程ID和名称(callback形式)
- 参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | --------------------------- | ---- | -------------------- |
| callback | 只读 | AsyncCallback\<ProcessInfo> | 是 | 表示被指定的回调方法 |
- 返回值
void
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getProcessInfo()
```
#### Context.getProcessInfo()
- 接口说明
获取有关当前进程的信息,包括进程ID和名称(Promise形式)
- 参数描述
Null
- 返回值
void
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getProcessInfo().then((void) => {
console.info("==========================>getProcessInfoCallback=======================>");
});
```
#### Context.getElementName(callback: AsyncCallback\<ElementName>)
- 接口说明
获取当前能力的ohos.bundle.ElementName对象。此方法仅适用于页面功能(callback形式)
- 参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | --------------------------- | ---- | -------------------- |
| callback | 只读 | AsyncCallback\<ElementName> | 是 | 表示被指定的回调方法 |
- 返回值
void
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getElementName()
```
#### Context.getElementName()
- 接口说明
获取当前能力的ohos.bundle.ElementName对象。此方法仅适用于页面功能(Promise形式)
- 参数描述
Null
- 返回值
void
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getElementName().then((void) => {
console.info("==========================>getElementNameCallback=======================>");
});
```
####
#### Context.getProcessName(callback: AsyncCallback\<string>)
- 接口说明
获取当前进程的名称(callback形式)
- 参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | ---------------------- | ---- | -------------------- |
| callback | 只读 | AsyncCallback\<string> | 是 | 表示被指定的回调方法 |
- 返回值
void
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getProcessName()
```
#### Context.getProcessName()
- 接口说明
获取当前进程的名称(Promise形式)
- 参数描述
Null
- 返回值
void
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getProcessName().then((void) => {
console.info("==========================>getProcessNameCallback=======================>");
});
```
#### Context.getCallingBundle(callback: AsyncCallback\<string>)
- 接口说明
获取调用当前能力的能力的捆绑包名称(callback形式)
- 参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | ---------------------- | ---- | -------------------- |
| callback | 只读 | AsyncCallback\<string> | 是 | 表示被指定的回调方法 |
- 返回值
void
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getCallingBundle()
```
#### Context.getCallingBundle()
- 接口说明
获取调用当前能力的能力的捆绑包名称(Promise形式)
- 参数描述
Null
- 返回值
void
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getCallingBundle().then((void) => {
console.info("==========================>getCallingBundleCallback=======================>");
});
```
### DataUriUtils模块(JS端SDK接口)
#### 支持设备
| API | 手机 | 平板 | 智慧屏 | 智能穿戴 | 轻量级智能穿戴 | 智慧视觉设备 |
| ---------------------------------------------- | ---- | ---- | ------ | -------- | -------------- | ------------ |
| DataUriUtils.getId(uri: string) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| DataUriUtils.attachId(uri: string, id: number) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| DataUriUtils.deleteId(uri: string) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| DataUriUtils.updateId(uri: string, id: number) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
#### 权限列表
ohos.permission.RUNNING_LOCK permission
#### 导入模块
```js
import notify from '@ohos.ability.dataUriUtils';
```
#### DataUriUtils.getId(uri: string)
- 接口说明
获取附加到给定uri的路径组件末尾的ID
- 参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ---- | -------- | ------ | ---- | ------------------------- |
| uri | 只读 | string | 是 | 指示要从中获取ID的uri对象 |
- 返回值
附加到路径组件末尾的ID
- 示例
```js
import dataUriUtils from '@ohos.ability.datauriutils'
dataUriUtils.getIdSync("com.example.dataUriUtils/1221")
```
#### DataUriUtils.attachId(uri: string, id: number)
- 接口说明
将给定ID附加到给定uri的路径组件的末尾
- 参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ---- | -------- | ------ | ---- | ------------------------- |
| uri | 只读 | string | 是 | 指示要从中获取ID的uri对象 |
| id | 只读 | number | 是 | 指示要附加的ID |
- 返回值
附加给定ID的uri对象
- 示例
```js
import dataUriUtils from '@ohos.ability.datauriutils'
var idint = 1122;
dataUriUtils.attachId(
"com.example.dataUriUtils"
idint,
)
```
#### DataUriUtils.deleteId(uri: string)
- 接口说明
从给定uri的路径组件的末尾删除ID
- 参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ---- | -------- | ------ | ---- | ------------------------- |
| uri | 只读 | string | 是 | 指示要从中删除ID的uri对象 |
- 返回值
ID已删除的uri对象
- 示例
```js
import dataUriUtils from '@ohos.ability.datauriutils'
dataUriUtils.deleteId("com.example.dataUriUtils/1221")
```
#### DataUriUtils.updateId(uri: string, id: number)
- 接口说明
更新指定uri中的ID
- updateId参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ---- | -------- | ------ | ---- | ------------------- |
| uri | 只读 | string | 是 | 指示要更新的uri对象 |
| id | 只读 | number | 是 | 指示新ID |
- 返回值
更新的uri对象
- 示例
```js
import dataUriUtils from '@ohos.ability.datauriutils'
var idint = 1122;
dataUriUtils.updateId(
"com.example.dataUriUtils"
idint,
)
```
此差异已折叠。
此差异已折叠。
### ParticleAbility模块(JS端SDK接口)
#### 支持设备
| API | 手机 | 平板 | 智慧屏 | 智能穿戴 | 轻量级智能穿戴 | 智慧视觉设备 |
| ------------------------------------------------------------ | ---- | ---- | ------ | -------- | -------------- | ------------ |
| ParticleAbility.startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\<void> | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| ParticleAbility.startAbility(parameter: StartAbilityParameter) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| ParticleAbility.terminateSelf(callback: AsyncCallback\<void>) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| ParticleAbility.terminateSelf() | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
| ParticleAbility.acquireDataAbilityHelper(uri: string) | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
#### 权限列表
ohos.permission.RUNNING_LOCK permission
#### 使用限制
ParticleAbility模块的接口只能在Ability为Data和Service类型的时候进行调用
#### 导入模块
```
import featureAbility from '@ohos.ability.featureAbility'
```
#### ParticleAbility.startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\<void>
- 接口说明
服务ability使用此方法启动特定ability(callback形式)
- startAbility参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| --------- | -------- | --------------------- | ---- | ----------------- |
| parameter | 只读 | StartAbilityParameter | 是 | 指示启动的ability |
| callback | 只读 | AsyncCallback\<void> | 是 | 被指定的回调方法 |
- StartAbilityParameter类型说明
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ------------------- | -------- | ------ | ---- | ---------------------------------- |
| want | 只读 | want | 是 | 表示需要包含有关目标启动能力的信息 |
| abilityStartSetting | 只读 | string | 否 | 指示启动能力中使用的特殊启动设置 |
- want类型说明
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ----------- | -------- | ------ | ---- | -------------------------- |
| deviceId | 只读 | string | 否 | 设备id |
| bundleName | 只读 | string | 否 | 捆绑包名称 |
| abilityName | 只读 | string | 否 | ability 名字 |
| uri | 只读 | string | 否 | 请求中URI的描述 |
| type | 只读 | string | 否 | 此文件中类型的说明 |
| flags | 只读 | number | 否 | 此文件中标志的选项是必需的 |
| action | 只读 | string | 否 | 需求中对操作的描述 |
| parameters | 只读 | string | 否 | Want中WantParams对象的描述 |
| entities | 只读 | string | 否 | 对象中实体的描述 |
- flags类型说明
| 名称 | 参数 | 描述 |
| ------------------------------------ | ---------- | ------------------------------------------------------------ |
| FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权 |
| FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权 |
| FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | 将结果返回给源异能 |
| FLAG_ABILITY_CONTINUATION | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备 |
| FLAG_NOT_OHOS_COMPONENT | 0x00000010 | 指定组件是否不属于OHOS |
| FLAG_ABILITY_FORM_ENABLED | 0x00000020 | 指定是否启动某个能力 |
| FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权 |
| FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 将结果返回到源能力片 |
| FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动 |
| FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能 |
| FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。 |
| FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能 |
| FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。 |
| FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 |
| FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 |
| FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 |
- 返回值
void
- 示例
```js
import particleAbility from '@ohos.ability.particleAbility'
particleAbility.startAbility(
{
want:
{
action: "action.system.home",
entities: ["entity.system.home"],
type: "MIMETYPE",
flags: FLAG_AUTH_READ_URI_PERMISSION;
deviceId: "",
bundleName: "com.example.Data",
abilityName: "com.jstest.startabilitytest5.MainAbility",
uri:""
},
},
)
```
#### ParticleAbility.startAbility(parameter: StartAbilityParameter)
- 接口说明
服务ability使用此方法启动特定ability((Promise形式)
- startAbility参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| --------- | -------- | --------------------- | ---- | ----------------- |
| parameter | 只读 | StartAbilityParameter | 是 | 指示启动的ability |
- StartAbilityParameter类型说明
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ------------------- | -------- | ------ | ---- | ---------------------------------- |
| want | 只读 | want | 是 | 表示需要包含有关目标启动能力的信息 |
| abilityStartSetting | 只读 | string | 否 | 指示启动能力中使用的特殊启动设置 |
- want类型说明
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ----------- | -------- | ------ | ---- | -------------------------- |
| deviceId | 只读 | string | 否 | 设备id |
| bundleName | 只读 | string | 否 | 捆绑包名称 |
| abilityName | 只读 | string | 否 | ability 名字 |
| uri | 只读 | string | 否 | 请求中URI的描述 |
| type | 只读 | string | 否 | 此文件中类型的说明 |
| flags | 只读 | number | 否 | 此文件中标志的选项是必需的 |
| action | 只读 | string | 否 | 需求中对操作的描述 |
| parameters | 只读 | string | 否 | Want中WantParams对象的描述 |
| entities | 只读 | string | 否 | 对象中实体的描述 |
- flags类型说明
| 名称 | 参数 | 描述 |
| ------------------------------------ | ---------- | ------------------------------------------------------------ |
| FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权 |
| FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权 |
| FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | 将结果返回给源异能 |
| FLAG_ABILITY_CONTINUATION | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备 |
| FLAG_NOT_OHOS_COMPONENT | 0x00000010 | 指定组件是否不属于OHOS |
| FLAG_ABILITY_FORM_ENABLED | 0x00000020 | 指定是否启动某个能力 |
| FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权 |
| FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 将结果返回到源能力片 |
| FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动 |
| FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能 |
| FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。 |
| FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能 |
| FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。 |
| FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 |
| FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 |
| FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 |
- 返回值
void
- 示例
```js
import featureAbility from '@ohos.ability.featureAbility'
import particleAbility from '@ohos.ability.particleAbility'
var windowMode = featureAbility.AbilityStartSetting.WINDOW_MODE_KEY;
particleAbility.startAbility(
want:
{
bundleName: "com.jstest.featureabilitytest",
abilityName: "com.jstest.startabilitytest1.MainAbility",
},
abilityStartSetting:
{
windowMode: featureAbility.AbilityWindowConfiguration.WINDOW_MODE_FLOATING,
},
}
).then((void) => {
console.info("==========================>startAbilityCallback=======================>");
});
```
#### ParticleAbility.terminateSelf(callback: AsyncCallback\<void>)
- 接口说明
摧毁服务ability(callback形式)
- terminateSelf参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | -------------------- | ---- | -------------------- |
| callback | 只读 | AsyncCallback\<void> | 是 | 表示被指定的回调方法 |
- 返回值
void
- 示例
```js
import particleAbility from '@ohos.ability.particleAbility'
ParticleAbility.terminateSelf()
```
#### ParticleAbility.terminateSelf()
- 接口说明
摧毁服务ability(Promise形式)
- 返回值
void
- 示例
```js
import particleAbility from '@ohos.ability.particleAbility'
particleAbility.terminateSelf().then((void) => {
console.info("==========================>terminateSelfCallback=======================>");
});
```
#### ParticleAbility.acquireDataAbilityHelper(uri: string)
- 接口说明
获取dataAbilityHelper
- acquireDataAbilityHelper参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| :--- | -------- | ------ | ---- | ---------------------- |
| uri | 只读 | string | 是 | 指示要打开的文件的路径 |
- 返回值
返回dataAbilityHelper
- 示例
```js
import particleAbility from '@ohos.ability.particleAbility'
var uri = "";
ParticleAbility.acquireDataAbilityHelper(uri)
```
#### ParticleAbility.connectAbility(*request*: Want, *options*:ConnectOptions): number
* 接口说明
将当前ability连接到指定ServiceAbility(callback形式)
* connectAbility参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ------- | -------- | -------------- | ---- | -------------------------- |
| request | 只读 | Want | 是 | 表示被连接的ServiceAbility |
| options | 只读 | ConnectOptions | 是 | 被指定的回调方法 |
- ConnectOptions类型说明
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ------------ | -------- | -------- | ---- | ---------------------------------- |
| onConnect | 只读 | function | 是 | 连接成功时的回调函数 |
| onDisconnect | 只读 | function | 是 | 连接失败时的回调函数 |
| onFailed | 只读 | function | 是 | ConnectAbility调用失败时的回调函数 |
* 返回值
连接的ServiceAbilityID。
* 示例
```javascript
import particleAbility from '@ohos.ability.particleAbility'
var mRemote;
var connId;
function onConnectCallback(element, remote){
mRemote = remote;
console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));
}
function onDisconnectCallback(element){
console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
}
function onFailedCallback(code){
console.log('particleAbilityTest ConnectAbility onFailed errCode : ' + code)
}
var connId = particleAbility.connectAbility(
{
bundleName: "com.ix.ServiceAbility",
abilityName: "ServiceAbilityA",
},
{
onConnect: onConnectCallback,
onDisconnect: onDisconnectCallback,
onFailed: onFailedCallback,
},
);
```
#### ParticleAbility.disconnectAbility(connection: number, callback:AsyncCallback<void>): void
* 接口说明
断开与指定ServiceAbility的连接(callback形式)
* disconnectAbility参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ---------- | -------- | ------------- | ---- | ------------------------------ |
| connection | 只读 | number | 是 | 指定断开连接的ServiceAbilityID |
| callback | 只读 | AsyncCallback | 是 | 被指定的回调方法 |
* 返回值
* 示例
```javascript
import particleAbility from '@ohos.ability.particleAbility'
var mRemote;
var connId;
function onConnectCallback(element, remote){
mRemote = remote;
console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));
}
function onDisconnectCallback(element){
console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
}
function onFailedCallback(code){
console.log('particleAbilityTest ConnectAbility onFailed errCode : ' + code)
}
var connId = particleAbility.connectAbility(
{
bundleName: "com.ix.ServiceAbility",
abilityName: "ServiceAbilityA",
},
{
onConnect: onConnectCallback,
onDisconnect: onDisconnectCallback,
onFailed: onFailedCallback,
},
);
var result = particleAbility.disconnectAbility(connId,
(error,data) => {
console.log('particleAbilityTest DisConnectJsSameBundleName result errCode : ' + error.code + " data: " + data)
},
);
```
#### ParticleAbility.disconnectAbility(connection: number): Promise<void>;
* 接口说明
断开与指定ServiceAbility的连接(promise形式)
* disconnectAbility参数描述
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| ---------- | -------- | ------ | ---- | ------------------------------ |
| connection | 只读 | number | 是 | 指定断开连接的ServiceAbilityID |
* 返回值
* 示例
```javascript
import particleAbility from '@ohos.ability.particleAbility'
var mRemote;
var connId;
function onConnectCallback(element, remote){
mRemote = remote;
console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));
}
function onDisconnectCallback(element){
console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
}
function onFailedCallback(code){
console.log('particleAbilityTest ConnectAbility onFailed errCode : ' + code)
}
var connId = particleAbility.connectAbility(
{
bundleName: "com.ix.ServiceAbility",
abilityName: "ServiceAbilityA",
},
{
onConnect: onConnectCallback,
onDisconnect: onDisconnectCallback,
onFailed: onFailedCallback,
},
);
var result = await particleAbility.disconnectAbility(connId);
```
此差异已折叠。
# PageAbility开发说明
## PageAbility介绍
Page模板(以下简称“Page”)是FA唯一支持的模板,用于提供与用户交互的能力。
## PageAbility的生命周期
**Ability生命周期介绍**(Ability Life Cycle)是Ability被调度到INACTIVE、ACTIVE、BACKGROUND等各个状态的统称(主要涉及PageAbility类型和ServiceAbility类型的Ability)。
- **PageAbility类型的Ability生命周期流转如下图所示**
![PageAbility-Lifecycle](figures/page-ability-lifecycle.png)
**Ability生命周期状态说明:**
- **UNINITIALIZED**:未初始状态,为临时状态,Ability被创建后会由UNINITIALIZED状态进入INITIAL状态。
- **INITIAL**:初始化状态,也表示停止状态,表示当前Ability未运行,Ability被启动后由INITIAL态进入INACTIVE状态。
- **INACTIVE**:未激活状态,表示当前窗口已显示但是无焦点状态,由于Window暂未支持焦点的概念,当前状态与ACTIVE一致。
- **ACTIVE**:前台激活状态,表示当前窗口已显示,并获取焦点,Ability在退到后台之前先由ACTIVE状态进入INACTIVE状态。
- **BACKGROUND**: 后台状态,表示当前Ability退到后台,Ability在被销毁后由BACKGROUND状态进入INITIAL状态,或者重新被激活后由BACKGROUND状态进入ACTIVE状态。
**PageAbility类型Ability生命周期回调如下图所示:**
![PageAbility-Lifecycel-Callbacks](figures/page-ability-lifecycle-callbacks.png)
## 启动本地PageAbility
导入模块
```
import featureAbility from '@ohos.ability.featureAbility'
```
```
FeatureAbility.startAbility(parameter: StartAbilityParameter, callback: AsyncCallback<number>)
```
* 接口说明
启动新的ability(callback形式)
* 示例
```javascript
import featureAbility from '@ohos.ability.featureAbility'
featureAbility.startAbility(
{
want:
{
action: "",
entities: [""],
type: "",
options: {
// indicates the grant to perform read operations on the URI
authReadUriPermission: true,
// indicates the grant to perform write operations on the URI
authWriteUriPermission: true,
// support forward intent result to origin ability
abilityForwardResult: true,
// used for marking the ability start-up is triggered by continuation
abilityContinuation: true,
// specifies whether a component does not belong to ohos
notOhosComponent: true,
// specifies whether an ability is started
abilityFormEnabled: true,
// indicates the grant for possible persisting on the URI.
authPersistableUriPermission: true,
// indicates the grant for possible persisting on the URI.
authPrefixUriPermission: true,
// support distributed scheduling system start up multiple devices
abilitySliceMultiDevice: true,
// indicates that an ability using the service template is started regardless of whether the
// host application has been started.
startForegroundAbility: true,
// install the specified ability if it's not installed.
installOnDemand: true,
// return result to origin ability slice
abilitySliceForwardResult: true,
// install the specified ability with background mode if it's not installed.
installWithBackgroundMode: true
},
deviceId: "",
bundleName: "com.example.startability",
abilityName: "com.example.startability.MainAbility",
uri: ""
},
},
);
)
```
## 启动远程PageAbility
导入模块
```
import featureAbility from '@ohos.ability.featureAbility'
```
```
FeatureAbility.startAbility(parameter: StartAbilityParameter)
```
* 接口说明
启动远程的ability(promise形式)
前提:通过deviceManager获取远程deviceid
* 示例
```javascript
var promise = await ability.startAbility(
{
want:
{
deviceId: this.deviceId,
bundleName: "com.example.test",
abilityName: "com.example.test.MainAbility",
},
}
);
```
\ No newline at end of file
# ServiceAbility开发说明
- [创建Service](#section17436202895812)
- [启动Service](#section944219415599)
- [连接Service](#section126857614018)
## 创建Service<a name="section17436202895812"></a>
1. Service也是一种Ability,Ability为Service提供了以下生命周期方法,开发者可以重写这些方法,来添加其他Ability请求与Service Ability交互时的处理方法。
- onStart()
该方法在创建Service的时候调用,用于Service的初始化。在Service的整个生命周期只会调用一次,调用时传入的Want应为空。
- onCommand()
在Service创建完成之后调用,该方法在客户端每次启动该Service时都会调用,开发者可以在该方法中做一些调用统计、初始化类的操作。
- onConnect()
在Ability和Service连接时调用,该方法返回IRemoteObject对象,开发者可以在该回调函数中生成对应Service的IPC通信通道,以便Ability与Service交互。Ability可以多次连接同一个Service,系统会缓存该Service的IPC通信对象,只有第一个客户端连接Service时,系统才会调用Service的onConnect方法来生成IRemoteObject对象,而后系统会将同一个RemoteObject对象传递至其他连接同一个Service的所有客户端,而无需再次调用onConnect方法。
- onDisconnect()
在Ability与绑定的Service断开连接时调用。
- onStop()
在Service销毁时调用。Service应通过实现此方法来清理任何资源,如关闭线程、注册的侦听器等。
创建Service的代码示例如下:
```javascript
export default {
onStart(want) {
console.log('SerivceAbility onStart');
},
onCommand(want, restart, startId) {
console.log('SerivceAbility onCommand');
},
onConnect(want) {
console.log('SerivceAbility OnConnect');
},
onDisconnect() {
console.log('SerivceAbility OnDisConnect');
},
onStop() {
console.log('SerivceAbility onStop');
},
}
```
2. 注册Service。
Service也需要在应用配置文件config.json中进行注册,注册类型type需要设置为service。
```javascript
{
"module": {
"abilities": [
{
"name": ".ServiceAbility",
"type": "service",
"visible": true
...
}
]
...
}
...
}
```
## 启动Service<a name="section944219415599"></a>
Ability为开发者提供了startAbility()方法来启动另外一个Ability。因为Service也是Ability的一种,开发者同样可以通过将Want传递给该方法来启动Service。
开发者可以通过构造包含BundleName与AbilityName的Want对象来设置目标Service信息。参数的含义如下:
- BundleName:表示包名称。
- AbilityName:表示待启动的Ability名称。
启动本地设备Service的代码示例如下:
```javascript
import featureAbility from '@ohos.ability.featureability';
var promise = await featureAbility.startAbility(
{
want:
{
bundleName: "com.jstest.serviceability",
abilityName: "com.jstest.serviceability.MainAbility",
},
}
);
```
- 执行上述代码后,Ability将通过startAbility() 方法来启动Service。
- 如果Service尚未运行,则系统会先调用onStart()来初始化Service,再回调Service的onCommand()方法来启动Service。
- 如果Service正在运行,则系统会直接回调Service的onCommand()方法来启动Service。
- 停止Service
Service一旦创建就会一直保持在后台运行,除非必须回收内存资源,否则系统不会停止或销毁Service。开发者可以在Service中通过terminateAbility()停止本Service或在其他Ability调用stopAbility()来停止Service。
## 连接Service<a name="section126857614018"></a>
如果Service需要与Page Ability或其他应用的Service Ability进行交互,则须创建用于连接的Connection。Service支持其他Ability通过connectAbility()方法与其进行连接。
在使用connectAbility()处理回调时,需要传入目标Service的Want与IAbilityConnection的实例。IAbilityConnection提供了以下方法供开发者实现:onConnect()是用来处理连接Service成功的回调,onDisconnect()是用来处理Service异常死亡的回调,onFailed()是用来处理连接Service失败的回调。
创建连接Service回调实例的代码示例如下:
```javascript
var mRemote;
function onConnectCallback(element, remote){
console.log('ConnectAbility onConnect Callback')
mRemote = remote;
}
function onDisconnectCallback(element){
console.log('ConnectAbility onDisconnect Callback')
}
function onFailedCallback(code){
console.log('ConnectAbility onFailed Callback')
}
```
连接Service的代码示例如下:
```javascript
import featureAbility from '@ohos.ability.featureability';
var connId = featureAbility.connectAbility(
{
bundleName: "com.jstest.serviceability",
abilityName: "com.jstest.serviceability.MainAbility",
},
{
onConnect: onConnectCallback,
onDisconnect: onDisconnectCallback,
onFailed: onFailedCallback,
},
);
```
同时,Service侧也需要在onConnect()时返回IRemoteObject,从而定义与Service进行通信的接口。onConnect()需要返回一个IRemoteObject对象,HarmonyOS提供了IRemoteObject的默认实现,用户可以通过继承rpc.RemoteObject来创建自定义的实现类。
Service侧把自身的实例返回给调用侧的代码示例如下:
```javascript
import rpc from "@ohos.rpc";
var mMyStub;
export default {
onStart(want) {
class MyStub extends rpc.RemoteObject{
constructor(des) {
if (typeof des === 'string') {
super(des, des.length);
}
return null;
}
onRemoteRequest(code, message, reply, option) {
}
}
mMyStub = new MyStub("ServiceAbility-test");
},
onCommand(want, restart, startId) {
console.log('SerivceAbility onCommand');
},
onConnect(want) {
console.log('SerivceAbility OnConnect');
return mMyStub;
},
onDisconnect() {
console.log('SerivceAbility OnDisConnect');
},
onStop() {
console.log('SerivceAbility onStop');
},
}
```
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册