Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
449e61ac
D
Docs
项目概览
OpenHarmony
/
Docs
大约 2 年 前同步成功
通知
161
Star
293
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
449e61ac
编写于
2月 23, 2023
作者:
M
mingxihua
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
mingxihua@huawei.com.cn
Signed-off-by:
N
mingxihua
<
mingxihua@huawei.com
>
上级
dc5bb5f4
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
31 addition
and
2961 deletion
+31
-2961
zh-cn/application-dev/reference/apis/js-apis-ability-context.md
...application-dev/reference/apis/js-apis-ability-context.md
+0
-1880
zh-cn/application-dev/reference/apis/js-apis-app-ability-environmentCallback.md
...reference/apis/js-apis-app-ability-environmentCallback.md
+17
-0
zh-cn/application-dev/reference/apis/js-apis-application-ability.md
...ication-dev/reference/apis/js-apis-application-ability.md
+0
-747
zh-cn/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md
...ence/apis/js-apis-application-abilityLifecycleCallback.md
+0
-214
zh-cn/application-dev/reference/apis/js-apis-application-errorManager.md
...on-dev/reference/apis/js-apis-application-errorManager.md
+0
-100
zh-cn/application-dev/reference/apis/js-apis-inner-app-context.md
...plication-dev/reference/apis/js-apis-inner-app-context.md
+1
-11
zh-cn/application-dev/reference/apis/js-apis-inner-application-abilityMonitor.md
...eference/apis/js-apis-inner-application-abilityMonitor.md
+2
-0
zh-cn/application-dev/reference/apis/js-apis-inner-application-applicationContext.md
...ence/apis/js-apis-inner-application-applicationContext.md
+9
-9
zh-cn/application-dev/reference/apis/js-apis-inner-application-context.md
...n-dev/reference/apis/js-apis-inner-application-context.md
+2
-0
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-ability-context.md
已删除
100644 → 0
浏览文件 @
dc5bb5f4
# AbilityContext
AbilityContext是Ability的上下文环境,继承自Context。
AbilityContext模块提供允许访问特定Ability的资源的能力,包括对Ability的启动、停止的设置、获取caller通信接口、拉起弹窗请求用户授权等。
> **说明:**
>
> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> - 本模块接口仅可在Stage模型下使用。
## 使用说明
在使用AbilityContext的功能前,需要通过Ability子类实例获取。
```
ts
import
Ability
from
'
@ohos.app.ability.UIAbility
'
;
let
context
=
undefined
;
class
MainAbility
extends
Ability
{
onWindowStageCreate
(
windowStage
)
{
context
=
this
.
context
;
}
}
```
## 属性
**系统能力**
:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| abilityInfo |
[
AbilityInfo
](
js-apis-bundleManager-abilityInfo.md
)
| 是 | 否 | Abilityinfo相关信息 |
| currentHapModuleInfo |
[
HapModuleInfo
](
js-apis-bundleManager-hapModuleInfo.md
)
| 是 | 否 | 当前hap包的信息 |
| config |
[
Configuration
](
js-apis-application-configuration.md
)
| 是 | 否 | 表示配置信息。 |
## AbilityContext.startAbility
startAbility(want: Want, callback: AsyncCallback
<
void
>
): void;
启动Ability(callback形式)。
使用规则:
-
调用方应用位于后台时,使用该接口启动Ability需申请
`ohos.permission.START_ABILITIES_FROM_BACKGROUND`
权限
-
目标Ability的visible属性若配置为false,调用方应用需申请
`ohos.permission.START_INVISIBLE_ABILITY`
权限
-
组件启动规则详见:
[
组件启动规则(Stage模型)
](
../../application-models/component-startup-rules.md
)
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| callback | AsyncCallback
<
void
>
| 是 | callback形式返回启动结果 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
bundleName
:
'
com.example.myapp
'
,
abilityName
:
'
MyAbility
'
};
try
{
this
.
context
.
startAbility
(
want
,
(
error
)
=>
{
if
(
error
.
code
)
{
// 处理业务逻辑错误
console
.
log
(
'
startAbility failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
return
;
}
// 执行正常业务
console
.
log
(
'
startAbility succeed
'
);
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.startAbility
startAbility(want: Want, options: StartOptions, callback: AsyncCallback
<
void
>
): void;
启动Ability(callback形式)。
使用规则:
-
调用方应用位于后台时,使用该接口启动Ability需申请
`ohos.permission.START_ABILITIES_FROM_BACKGROUND`
权限
-
目标Ability的visible属性若配置为false,调用方应用需申请
`ohos.permission.START_INVISIBLE_ABILITY`
权限
-
组件启动规则详见:
[
组件启动规则(Stage模型)
](
../../application-models/component-startup-rules.md
)
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| options |
[
StartOptions
](
js-apis-app-ability-startOptions.md
)
| 是 | 启动Ability所携带的参数。 |
| callback | AsyncCallback
<
void
>
| 是 | callback形式返回启动结果。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
let
options
=
{
windowMode
:
0
};
try
{
this
.
context
.
startAbility
(
want
,
options
,
(
error
)
=>
{
if
(
error
.
code
)
{
// 处理业务逻辑错误
console
.
log
(
'
startAbility failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
return
;
}
// 执行正常业务
console
.
log
(
'
startAbility succeed
'
);
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.startAbility
startAbility(want: Want, options?: StartOptions): Promise
<
void
>
;
启动Ability(promise形式)。
使用规则:
-
调用方应用位于后台时,使用该接口启动Ability需申请
`ohos.permission.START_ABILITIES_FROM_BACKGROUND`
权限
-
目标Ability的visible属性若配置为false,调用方应用需申请
`ohos.permission.START_INVISIBLE_ABILITY`
权限
-
组件启动规则详见:
[
组件启动规则(Stage模型)
](
../../application-models/component-startup-rules.md
)
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| options |
[
StartOptions
](
js-apis-app-ability-startOptions.md
)
| 否 | 启动Ability所携带的参数。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Promise
<
void
>
| Promise形式返回启动结果。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
bundleName
:
'
com.example.myapp
'
,
abilityName
:
'
MyAbility
'
};
let
options
=
{
windowMode
:
0
,
};
try
{
this
.
context
.
startAbility
(
want
,
options
)
.
then
((
data
)
=>
{
// 执行正常业务
console
.
log
(
'
startAbility succeed
'
);
})
.
catch
((
error
)
=>
{
// 处理业务逻辑错误
console
.
log
(
'
startAbility failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.startAbilityForResult
startAbilityForResult(want: Want, callback: AsyncCallback
<
AbilityResult
>
): void;
启动一个Ability。Ability被启动后,有如下情况(callback形式):
-
正常情况下可通过调用
[
terminateSelfWithResult
](
#abilitycontextterminateselfwithresult
)
接口使之终止并且返回结果给调用方。
-
异常情况下比如杀死Ability会返回异常信息给调用方, 异常信息中resultCode为-1。
-
如果被启动的Ability模式是单实例模式, 不同应用多次调用该接口启动这个Ability,当这个Ability调用
[
terminateSelfWithResult
](
#abilitycontextterminateselfwithresult
)
接口使之终止时,只将正常结果返回给最后一个调用方, 其它调用方返回异常信息, 异常信息中resultCode为-1。
使用规则:
-
调用方应用位于后台时,使用该接口启动Ability需申请
`ohos.permission.START_ABILITIES_FROM_BACKGROUND`
权限
-
目标Ability的visible属性若配置为false,调用方应用需申请
`ohos.permission.START_INVISIBLE_ABILITY`
权限
-
组件启动规则详见:
[
组件启动规则(Stage模型)
](
../../application-models/component-startup-rules.md
)
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| callback | AsyncCallback
<
[AbilityResult](js-apis-inner-ability-abilityResult.md)
>
| 是 | 执行结果回调函数。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
try
{
this
.
context
.
startAbilityForResult
(
want
,
(
error
,
result
)
=>
{
if
(
error
.
code
)
{
// 处理业务逻辑错误
console
.
log
(
'
startAbilityForResult failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
return
;
}
// 执行正常业务
console
.
log
(
'
startAbilityForResult succeed, result.resultCode =
'
+
result
.
resultCode
);
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.startAbilityForResult
startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback
<
AbilityResult
>
): void;
启动一个Ability。Ability被启动后,有如下情况(callback形式):
-
正常情况下可通过调用
[
terminateSelfWithResult
](
#abilitycontextterminateselfwithresult
)
接口使之终止并且返回结果给调用方。
-
异常情况下比如杀死Ability会返回异常信息给调用方, 异常信息中resultCode为-1。
-
如果被启动的Ability模式是单实例模式, 不同应用多次调用该接口启动这个Ability,当这个Ability调用
[
terminateSelfWithResult
](
#abilitycontextterminateselfwithresult
)
接口使之终止时,只将正常结果返回给最后一个调用方, 其它调用方返回异常信息, 异常信息中resultCode为-1。
使用规则:
-
调用方应用位于后台时,使用该接口启动Ability需申请
`ohos.permission.START_ABILITIES_FROM_BACKGROUND`
权限
-
目标Ability的visible属性若配置为false,调用方应用需申请
`ohos.permission.START_INVISIBLE_ABILITY`
权限
-
组件启动规则详见:
[
组件启动规则(Stage模型)
](
../../application-models/component-startup-rules.md
)
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| options |
[
StartOptions
](
js-apis-app-ability-startOptions.md
)
| 是 | 启动Ability所携带的参数。 |
| callback | AsyncCallback
<
[AbilityResult](js-apis-inner-ability-abilityResult.md)
>
| 是 | 执行结果回调函数。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
let
options
=
{
windowMode
:
0
,
};
try
{
this
.
context
.
startAbilityForResult
(
want
,
options
,
(
error
,
result
)
=>
{
if
(
error
.
code
)
{
// 处理业务逻辑错误
console
.
log
(
'
startAbilityForResult failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
return
;
}
// 执行正常业务
console
.
log
(
'
startAbilityForResult succeed, result.resultCode =
'
+
result
.
resultCode
);
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.startAbilityForResult
startAbilityForResult(want: Want, options?: StartOptions): Promise
<
AbilityResult
>
;
启动一个Ability。Ability被启动后,有如下情况(promise形式):
-
正常情况下可通过调用
[
terminateSelfWithResult
](
#abilitycontextterminateselfwithresult
)
接口使之终止并且返回结果给调用方。
-
异常情况下比如杀死Ability会返回异常信息给调用方, 异常信息中resultCode为-1。
-
如果被启动的Ability模式是单实例模式, 不同应用多次调用该接口启动这个Ability,当这个Ability调用
[
terminateSelfWithResult
](
#abilitycontextterminateselfwithresult
)
接口使之终止时,只将正常结果返回给最后一个调用方, 其它调用方返回异常信息, 异常信息中resultCode为-1。
使用规则:
-
调用方应用位于后台时,使用该接口启动Ability需申请
`ohos.permission.START_ABILITIES_FROM_BACKGROUND`
权限
-
目标Ability的visible属性若配置为false,调用方应用需申请
`ohos.permission.START_INVISIBLE_ABILITY`
权限
-
组件启动规则详见:
[
组件启动规则(Stage模型)
](
../../application-models/component-startup-rules.md
)
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| options |
[
StartOptions
](
js-apis-app-ability-startOptions.md
)
| 否 | 启动Ability所携带的参数。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Promise
<
[AbilityResult](js-apis-inner-ability-abilityResult.md)
>
| Promise形式返回执行结果。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
bundleName
:
'
com.example.myapp
'
,
abilityName
:
'
MyAbility
'
};
let
options
=
{
windowMode
:
0
,
};
try
{
this
.
context
.
startAbilityForResult
(
want
,
options
)
.
then
((
result
)
=>
{
// 执行正常业务
console
.
log
(
'
startAbilityForResult succeed, result.resultCode =
'
+
result
.
resultCode
);
})
.
catch
((
error
)
=>
{
// 处理业务逻辑错误
console
.
log
(
'
startAbilityForResult failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.startAbilityForResultWithAccount
startAbilityForResultWithAccount(want: Want, accountId: number, callback: AsyncCallback
\<
AbilityResult>): void;
启动一个Ability并在该Ability帐号销毁时返回执行结果(callback形式)。
使用规则:
-
调用方应用位于后台时,使用该接口启动Ability需申请
`ohos.permission.START_ABILITIES_FROM_BACKGROUND`
权限
-
跨应用场景下,目标Ability的visible属性若配置为false,调用方应用需申请
`ohos.permission.START_INVISIBLE_ABILITY`
权限
-
组件启动规则详见:
[
组件启动规则(Stage模型)
](
../../application-models/component-startup-rules.md
)
**需要权限**
: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| accountId | number | 是 | 系统帐号的帐号ID,详情参考
[
getCreatedOsAccountsCount
](
js-apis-osAccount.md#getosaccountlocalidfromprocess
)
。 |
| callback | AsyncCallback
\<
[
AbilityResult
](
js-apis-inner-ability-abilityResult.md
)
\>
| 是 | 启动Ability的回调函数,返回Ability结果。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
let
accountId
=
100
;
try
{
this
.
context
.
startAbilityForResultWithAccount
(
want
,
accountId
,
(
error
,
result
)
=>
{
if
(
error
.
code
)
{
// 处理业务逻辑错误
console
.
log
(
'
startAbilityForResultWithAccount failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
return
;
}
// 执行正常业务
console
.
log
(
'
startAbilityForResultWithAccount succeed, result.resultCode =
'
+
result
.
resultCode
);
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.startAbilityForResultWithAccount
startAbilityForResultWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback
\<
void
\>
): void;
启动一个Ability并在该Ability帐号销毁时返回执行结果(callback形式)。
使用规则:
-
调用方应用位于后台时,使用该接口启动Ability需申请
`ohos.permission.START_ABILITIES_FROM_BACKGROUND`
权限
-
目标Ability的visible属性若配置为false,调用方应用需申请
`ohos.permission.START_INVISIBLE_ABILITY`
权限
-
组件启动规则详见:
[
组件启动规则(Stage模型)
](
../../application-models/component-startup-rules.md
)
**需要权限**
: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| accountId | number | 是 | 系统帐号的帐号ID,详情参考
[
getCreatedOsAccountsCount
](
js-apis-osAccount.md#getosaccountlocalidfromprocess
)
。 |
| options |
[
StartOptions
](
js-apis-app-ability-startOptions.md
)
| 是 | 启动Ability所携带的参数。 |
| callback | AsyncCallback
\<
void
\>
| 是 | 启动Ability的回调函数。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
let
accountId
=
100
;
let
options
=
{
windowMode
:
0
};
try
{
this
.
context
.
startAbilityForResultWithAccount
(
want
,
accountId
,
options
,
(
error
,
result
)
=>
{
if
(
error
.
code
)
{
// 处理业务逻辑错误
console
.
log
(
'
startAbilityForResultWithAccount failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
return
;
}
// 执行正常业务
console
.
log
(
'
startAbilityForResultWithAccount succeed, result.resultCode =
'
+
result
.
resultCode
);
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.startAbilityForResultWithAccount
startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartOptions): Promise
\<
AbilityResult
\>
;
启动一个Ability并在该Ability帐号销毁时返回执行结果(promise形式)。
使用规则:
-
调用方应用位于后台时,使用该接口启动Ability需申请
`ohos.permission.START_ABILITIES_FROM_BACKGROUND`
权限
-
目标Ability的visible属性若配置为false,调用方应用需申请
`ohos.permission.START_INVISIBLE_ABILITY`
权限
-
组件启动规则详见:
[
组件启动规则(Stage模型)
](
../../application-models/component-startup-rules.md
)
**需要权限**
: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| accountId | number | 是 | 系统帐号的帐号ID,详情参考
[
getCreatedOsAccountsCount
](
js-apis-osAccount.md#getosaccountlocalidfromprocess
)
。 |
| options |
[
StartOptions
](
js-apis-app-ability-startOptions.md
)
| 否 | 启动Ability所携带的参数。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Promise
<
[AbilityResult](js-apis-inner-ability-abilityResult.md)
>
| 返回一个Promise,包含Ability结果。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
let
accountId
=
100
;
let
options
=
{
windowMode
:
0
};
try
{
this
.
context
.
startAbilityForResultWithAccount
(
want
,
accountId
,
options
)
.
then
((
result
)
=>
{
// 执行正常业务
console
.
log
(
'
startAbilityForResultWithAccount succeed, result.resultCode =
'
+
result
.
resultCode
);
})
.
catch
((
error
)
=>
{
// 处理业务逻辑错误
console
.
log
(
'
startAbilityForResultWithAccount failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.startServiceExtensionAbility
startServiceExtensionAbility(want: Want, callback: AsyncCallback
\<
void>): void;
启动一个新的ServiceExtensionAbility(callback形式)。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| callback | AsyncCallback
\<
void
\>
| 是 | 启动Ability的回调函数。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
try
{
this
.
context
.
startServiceExtensionAbility
(
want
,
(
error
)
=>
{
if
(
error
.
code
)
{
// 处理业务逻辑错误
console
.
log
(
'
startServiceExtensionAbility failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
return
;
}
// 执行正常业务
console
.
log
(
'
startServiceExtensionAbility succeed
'
);
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.startServiceExtensionAbility
startServiceExtensionAbility(want: Want): Promise
\<
void>;
启动一个新的ServiceExtensionAbility(Promise形式)。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
try
{
this
.
context
.
startServiceExtensionAbility
(
want
)
.
then
((
data
)
=>
{
// 执行正常业务
console
.
log
(
'
startServiceExtensionAbility succeed
'
);
})
.
catch
((
error
)
=>
{
// 处理业务逻辑错误
console
.
log
(
'
startServiceExtensionAbility failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.startServiceExtensionAbilityWithAccount
startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback
\<
void>): void;
启动一个新的ServiceExtensionAbility(callback形式)。
**需要权限**
: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| accountId | number | 是 | 系统帐号的帐号ID,详情参考
[
getCreatedOsAccountsCount
](
js-apis-osAccount.md#getosaccountlocalidfromprocess
)
。 |
| callback | AsyncCallback
\<
void
\>
| 是 | 启动Ability的回调函数。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
let
accountId
=
100
;
try
{
this
.
context
.
startServiceExtensionAbilityWithAccount
(
want
,
accountId
,
(
error
)
=>
{
if
(
error
.
code
)
{
// 处理业务逻辑错误
console
.
log
(
'
startServiceExtensionAbilityWithAccount failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
return
;
}
// 执行正常业务
console
.
log
(
'
startServiceExtensionAbilityWithAccount succeed
'
);
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.startServiceExtensionAbilityWithAccount
startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise
\<
void>;
启动一个新的ServiceExtensionAbility(Promise形式)。
**需要权限**
: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| accountId | number | 是 | 系统帐号的帐号ID,详情参考
[
getCreatedOsAccountsCount
](
js-apis-osAccount.md#getosaccountlocalidfromprocess
)
。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
let
accountId
=
100
;
try
{
this
.
context
.
startServiceExtensionAbilityWithAccount
(
want
,
accountId
)
.
then
((
data
)
=>
{
// 执行正常业务
console
.
log
(
'
startServiceExtensionAbilityWithAccount succeed
'
);
})
.
catch
((
error
)
=>
{
// 处理业务逻辑错误
console
.
log
(
'
startServiceExtensionAbilityWithAccount failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.stopServiceExtensionAbility
stopServiceExtensionAbility(want: Want, callback: AsyncCallback
\<
void>): void;
停止同一应用程序内的服务(callback形式)。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| callback | AsyncCallback
\<
void
\>
| 是 | 启动Ability的回调函数。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
try
{
this
.
context
.
stopServiceExtensionAbility
(
want
,
(
error
)
=>
{
if
(
error
.
code
)
{
// 处理业务逻辑错误
console
.
log
(
'
stopServiceExtensionAbility failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
return
;
}
// 执行正常业务
console
.
log
(
'
stopServiceExtensionAbility succeed
'
);
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.stopServiceExtensionAbility
stopServiceExtensionAbility(want: Want): Promise
\<
void>;
停止同一应用程序内的服务(Promise形式)。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
try
{
this
.
context
.
stopServiceExtensionAbility
(
want
)
.
then
((
data
)
=>
{
// 执行正常业务
console
.
log
(
'
stopServiceExtensionAbility succeed
'
);
})
.
catch
((
error
)
=>
{
// 处理业务逻辑错误
console
.
log
(
'
stopServiceExtensionAbility failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.stopServiceExtensionAbilityWithAccount
stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback
\<
void>): void;
使用帐户停止同一应用程序内的服务(callback形式)。
**需要权限**
: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| accountId | number | 是 | 系统帐号的帐号ID,详情参考
[
getCreatedOsAccountsCount
](
js-apis-osAccount.md#getosaccountlocalidfromprocess
)
。 |
| callback | AsyncCallback
\<
void
\>
| 是 | 启动Ability的回调函数。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
let
accountId
=
100
;
try
{
this
.
context
.
stopServiceExtensionAbilityWithAccount
(
want
,
accountId
,
(
error
)
=>
{
if
(
error
.
code
)
{
// 处理业务逻辑错误
console
.
log
(
'
stopServiceExtensionAbilityWithAccount failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
return
;
}
// 执行正常业务
console
.
log
(
'
stopServiceExtensionAbilityWithAccount succeed
'
);
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.stopServiceExtensionAbilityWithAccount
stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise
\<
void>;
使用帐户停止同一应用程序内的服务(Promise形式)。
**需要权限**
: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| accountId | number | 是 | 系统帐号的帐号ID,详情参考
[
getCreatedOsAccountsCount
](
js-apis-osAccount.md#getosaccountlocalidfromprocess
)
。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
let
accountId
=
100
;
try
{
this
.
context
.
stopServiceExtensionAbilityWithAccount
(
want
,
accountId
)
.
then
((
data
)
=>
{
// 执行正常业务
console
.
log
(
'
stopServiceExtensionAbilityWithAccount succeed
'
);
})
.
catch
((
error
)
=>
{
// 处理业务逻辑错误
console
.
log
(
'
stopServiceExtensionAbilityWithAccount failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.terminateSelf
terminateSelf(callback: AsyncCallback
<
void
>
): void;
停止Ability自身(callback形式)。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback
<
void
>
| 是 | 回调函数,返回接口调用是否成功的结果。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
this
.
context
.
terminateSelf
((
error
)
=>
{
if
(
error
.
code
)
{
// 处理业务逻辑错误
console
.
log
(
'
terminateSelf failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
return
;
}
// 执行正常业务
console
.
log
(
'
terminateSelf succeed
'
);
});
```
## AbilityContext.terminateSelf
terminateSelf(): Promise
<
void
>
;
停止Ability自身(promise形式)。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Promise
<
void
>
| 返回一个Promise,包含接口的结果。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
this
.
context
.
terminateSelf
().
then
((
data
)
=>
{
// 执行正常业务
console
.
log
(
'
terminateSelf succeed
'
);
}).
catch
((
error
)
=>
{
// 处理业务逻辑错误
console
.
log
(
'
terminateSelf failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
});
```
## AbilityContext.terminateSelfWithResult
terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback
<
void
>
): void;
停止当前的Ability。如果该Ability是通过调用
[
startAbilityForResult
](
#abilitycontextstartabilityforresult
)
接口被拉起的,调用terminateSelfWithResult接口时会将结果返回给调用者,如果该Ability不是通过调用
[
startAbilityForResult
](
#abilitycontextstartabilityforresult
)
接口被拉起的,调用terminateSelfWithResult接口时不会有结果返回给调用者(callback形式)。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| parameter |
[
AbilityResult
](
js-apis-inner-ability-abilityResult.md
)
| 是 | 返回给调用startAbilityForResult
接口调用方的相关信息。 |
| callback | AsyncCallback
<
void
>
| 是 | callback形式返回停止结果。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
bundleName
:
'
com.extreme.myapplication
'
,
abilityName
:
'
SecondAbility
'
};
let
resultCode
=
100
;
// 返回给接口调用方AbilityResult信息
let
abilityResult
=
{
want
,
resultCode
};
try
{
this
.
context
.
terminateSelfWithResult
(
abilityResult
,
(
error
)
=>
{
if
(
error
.
code
)
{
// 处理业务逻辑错误
console
.
log
(
'
terminateSelfWithResult failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
return
;
}
// 执行正常业务
console
.
log
(
'
terminateSelfWithResult succeed
'
);
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.terminateSelfWithResult
terminateSelfWithResult(parameter: AbilityResult): Promise
<
void
>
;
停止Ability,配合startAbilityForResult使用,返回给接口调用方AbilityResult信息(promise形式)。
停止当前的Ability。如果该Ability是通过调用
[
startAbilityForResult
](
#abilitycontextstartabilityforresult
)
接口被拉起的,调用terminateSelfWithResult接口时会将结果返回给调用者,如果该Ability不是通过调用
[
startAbilityForResult
](
#abilitycontextstartabilityforresult
)
接口被拉起的,调用terminateSelfWithResult接口时不会有结果返回给调用者(promise形式)。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| parameter |
[
AbilityResult
](
js-apis-inner-ability-abilityResult.md
)
| 是 | 返回给startAbilityForResult
调用方的信息。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Promise
<
void
>
| promise形式返回停止结果。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
bundleName
:
'
com.extreme.myapplication
'
,
abilityName
:
'
SecondAbility
'
};
let
resultCode
=
100
;
// 返回给接口调用方AbilityResult信息
let
abilityResult
=
{
want
,
resultCode
};
try
{
this
.
context
.
terminateSelfWithResult
(
abilityResult
)
.
then
((
data
)
=>
{
// 执行正常业务
console
.
log
(
'
terminateSelfWithResult succeed
'
);
})
.
catch
((
error
)
=>
{
// 处理业务逻辑错误
console
.
log
(
'
terminateSelfWithResult failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.connectServiceExtensionAbility
connectServiceExtensionAbility(want: Want, options: ConnectOptions): number;
使用AbilityInfo.AbilityType.SERVICE模板将当前Ability连接到一个Ability。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| options |
[
ConnectOptions
](
js-apis-inner-ability-connectOptions.md
)
| 是 | 远端对象实例。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| number | 返回Ability连接的结果code。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
let
options
=
{
onConnect
(
elementName
,
remote
)
{
console
.
log
(
'
----------- onConnect -----------
'
)
},
onDisconnect
(
elementName
)
{
console
.
log
(
'
----------- onDisconnect -----------
'
)
},
onFailed
(
code
)
{
console
.
log
(
'
----------- onFailed -----------
'
)
}
}
let
connection
=
null
;
try
{
connection
=
this
.
context
.
connectServiceExtensionAbility
(
want
,
options
);
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.connectServiceExtensionAbilityWithAccount
connectServiceExtensionAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number;
使用AbilityInfo.AbilityType.SERVICE模板和account将当前Ability连接到一个Ability。
**需要权限:**
ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| accountId | number | 是 | 系统帐号的帐号ID,详情参考
[
getCreatedOsAccountsCount
](
js-apis-osAccount.md#getosaccountlocalidfromprocess
)
。 |
| options |
[
ConnectOptions
](
js-apis-inner-ability-connectOptions.md
)
| 是 | 远端对象实例。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| number | 返回Ability连接的结果code。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
let
accountId
=
100
;
let
options
=
{
onConnect
(
elementName
,
remote
)
{
console
.
log
(
'
----------- onConnect -----------
'
)
},
onDisconnect
(
elementName
)
{
console
.
log
(
'
----------- onDisconnect -----------
'
)
},
onFailed
(
code
)
{
console
.
log
(
'
----------- onFailed -----------
'
)
}
}
let
connection
=
null
;
try
{
connection
=
this
.
context
.
connectServiceExtensionAbilityWithAccount
(
want
,
accountId
,
options
);
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.disconnectServiceExtensionAbility
disconnectServiceExtensionAbility(connection: number): Promise
\<
void>;
断开连接(promise形式)。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| connection | number | 是 | 连接的Ability的数字代码。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Promise
\<
void> | 返回执行结果。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
// connection为connectServiceExtensionAbility中的返回值
let
connection
=
1
;
try
{
this
.
context
.
disconnectServiceExtensionAbility
(
connection
)
.
then
((
data
)
=>
{
// 执行正常业务
console
.
log
(
'
disconnectServiceExtensionAbility succeed
'
);
})
.
catch
((
error
)
=>
{
// 处理业务逻辑错误
console
.
log
(
'
disconnectServiceExtensionAbility failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.disconnectServiceExtensionAbility
disconnectServiceExtensionAbility(connection: number, callback:AsyncCallback
\<
void>): void;
断开连接(callback形式)。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| connection | number | 是 | 连接的Ability的数字代码。 |
| callback | AsyncCallback
\<
void> | 是 | 表示指定的回调方法。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
// connection为connectServiceExtensionAbility中的返回值
let
connection
=
1
;
try
{
this
.
context
.
disconnectServiceExtensionAbility
(
connection
,
(
error
)
=>
{
if
(
error
.
code
)
{
// 处理业务逻辑错误
console
.
log
(
'
disconnectServiceExtensionAbility failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
return
;
}
// 执行正常业务
console
.
log
(
'
disconnectServiceExtensionAbility succeed
'
);
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.startAbilityByCall
startAbilityByCall(want: Want): Promise
<
Caller
>
;
启动指定Ability至前台或后台,同时获取其Caller通信接口,调用方可使用Caller与被启动的Ability进行通信。
使用规则:
-
调用方应用位于后台时,使用该接口启动Ability需申请
`ohos.permission.START_ABILITIES_FROM_BACKGROUND`
权限
-
目标Ability的visible属性若配置为false,调用方应用需申请
`ohos.permission.START_INVISIBLE_ABILITY`
权限
-
组件启动规则详见:
[
组件启动规则(Stage模型)
](
../../application-models/component-startup-rules.md
)
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 传入需要启动的Ability的信息,包含abilityName、moduleName、bundleName、deviceId(可选)、parameters(可选),其中deviceId缺省或为空表示启动本地Ability,parameters缺省或为空表示后台启动Ability。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Promise
<
Caller
>
| 获取要通讯的caller对象。 |
**示例:**
后台启动:
```
ts
let
caller
=
undefined
;
// 后台启动Ability,不配置parameters
let
wantBackground
=
{
bundleName
:
'
com.example.myservice
'
,
moduleName
:
'
entry
'
,
abilityName
:
'
MainAbility
'
,
deviceId
:
''
};
try
{
this
.
context
.
startAbilityByCall
(
wantBackground
)
.
then
((
obj
)
=>
{
// 执行正常业务
caller
=
obj
;
console
.
log
(
'
startAbilityByCall succeed
'
);
}).
catch
((
error
)
=>
{
// 处理业务逻辑错误
console
.
log
(
'
startAbilityByCall failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
前台启动:
```
ts
let
caller
=
undefined
;
// 前台启动Ability,将parameters中的'ohos.aafwk.param.callAbilityToForeground'配置为true
let
wantForeground
=
{
bundleName
:
'
com.example.myservice
'
,
moduleName
:
'
entry
'
,
abilityName
:
'
MainAbility
'
,
deviceId
:
''
,
parameters
:
{
'
ohos.aafwk.param.callAbilityToForeground
'
:
true
}
};
try
{
this
.
context
.
startAbilityByCall
(
wantForeground
)
.
then
((
obj
)
=>
{
// 执行正常业务
caller
=
obj
;
console
.
log
(
'
startAbilityByCall succeed
'
);
}).
catch
((
error
)
=>
{
// 处理业务逻辑错误
console
.
log
(
'
startAbilityByCall failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.startAbilityWithAccount
startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback
\<
void
\>
): void;
根据account启动Ability(callback形式)。
使用规则:
-
调用方应用位于后台时,使用该接口启动Ability需申请
`ohos.permission.START_ABILITIES_FROM_BACKGROUND`
权限
-
目标Ability的visible属性若配置为false,调用方应用需申请
`ohos.permission.START_INVISIBLE_ABILITY`
权限
-
组件启动规则详见:
[
组件启动规则(Stage模型)
](
../../application-models/component-startup-rules.md
)
**需要权限**
: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| accountId | number | 是 | 系统帐号的帐号ID,详情参考
[
getCreatedOsAccountsCount
](
js-apis-osAccount.md#getosaccountlocalidfromprocess
)
。 |
| callback | AsyncCallback
\<
void
\>
| 是 | 启动Ability的回调函数。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
let
accountId
=
100
;
try
{
this
.
context
.
startAbilityWithAccount
(
want
,
accountId
,
(
error
)
=>
{
if
(
error
.
code
)
{
// 处理业务逻辑错误
console
.
log
(
'
startAbilityWithAccount failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
return
;
}
// 执行正常业务
console
.
log
(
'
startAbilityWithAccount succeed
'
);
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.startAbilityWithAccount
startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback
\<
void
\>
): void;
根据account启动Ability(callback形式)。
使用规则:
-
调用方应用位于后台时,使用该接口启动Ability需申请
`ohos.permission.START_ABILITIES_FROM_BACKGROUND`
权限
-
目标Ability的visible属性若配置为false,调用方应用需申请
`ohos.permission.START_INVISIBLE_ABILITY`
权限
-
组件启动规则详见:
[
组件启动规则(Stage模型)
](
../../application-models/component-startup-rules.md
)
**需要权限**
: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| accountId | number | 是 | 系统帐号的帐号ID,详情参考
[
getCreatedOsAccountsCount
](
js-apis-osAccount.md#getosaccountlocalidfromprocess
)
。|
| options |
[
StartOptions
](
js-apis-app-ability-startOptions.md
)
| 是 | 启动Ability所携带的参数。 |
| callback | AsyncCallback
\<
void
\>
| 是 | 启动Ability的回调函数。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
let
accountId
=
100
;
let
options
=
{
windowMode
:
0
};
try
{
this
.
context
.
startAbilityWithAccount
(
want
,
accountId
,
options
,
(
error
)
=>
{
if
(
error
.
code
)
{
// 处理业务逻辑错误
console
.
log
(
'
startAbilityWithAccount failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
return
;
}
// 执行正常业务
console
.
log
(
'
startAbilityWithAccount succeed
'
);
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.startAbilityWithAccount
startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise
\<
void
\>
;
根据account启动Ability(Promise形式)。
使用规则:
-
调用方应用位于后台时,使用该接口启动Ability需申请
`ohos.permission.START_ABILITIES_FROM_BACKGROUND`
权限
-
目标Ability的visible属性若配置为false,调用方应用需申请
`ohos.permission.START_INVISIBLE_ABILITY`
权限
-
组件启动规则详见:
[
组件启动规则(Stage模型)
](
../../application-models/component-startup-rules.md
)
**需要权限**
: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | 启动Ability的want信息。 |
| accountId | number | 是 | 系统帐号的帐号ID,详情参考
[
getCreatedOsAccountsCount
](
js-apis-osAccount.md#getosaccountlocalidfromprocess
)
。 |
| options |
[
StartOptions
](
js-apis-app-ability-startOptions.md
)
| 否 | 启动Ability所携带的参数。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见
[
元能力子系统错误码
](
../errorcodes/errorcode-ability.md
)
**示例:**
```
ts
let
want
=
{
deviceId
:
''
,
bundleName
:
'
com.extreme.test
'
,
abilityName
:
'
MainAbility
'
};
let
accountId
=
100
;
let
options
=
{
windowMode
:
0
};
try
{
this
.
context
.
startAbilityWithAccount
(
want
,
accountId
,
options
)
.
then
((
data
)
=>
{
// 执行正常业务
console
.
log
(
'
startAbilityWithAccount succeed
'
);
})
.
catch
((
error
)
=>
{
// 处理业务逻辑错误
console
.
log
(
'
startAbilityWithAccount failed, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
});
}
catch
(
paramError
)
{
// 处理入参错误异常
console
.
log
(
'
error.code:
'
+
JSON
.
stringify
(
paramError
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
paramError
.
message
));
}
```
## AbilityContext.setMissionLabel
setMissionLabel(label: string, callback:AsyncCallback
<
void
>
): void;
设置ability在任务中显示的名称(callback形式)。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| label | string | 是 | 显示名称。 |
| callback | AsyncCallback
<
void
>
| 是 | 回调函数,返回接口调用是否成功的结果。 |
**示例:**
```
ts
this
.
context
.
setMissionLabel
(
'
test
'
,(
result
)
=>
{
console
.
log
(
'
setMissionLabel result:
'
+
JSON
.
stringify
(
result
));
});
```
## AbilityContext.setMissionLabel
setMissionLabel(label: string): Promise
<
void
>
;
设置ability在任务中显示的名称(promise形式)。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| label | string | 是 | 显示名称。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Promise
<
void
>
| 返回一个Promise,包含接口的结果。 |
**示例:**
```
ts
this
.
context
.
setMissionLabel
(
'
test
'
).
then
(()
=>
{
console
.
log
(
'
success
'
);
}).
catch
((
error
)
=>
{
console
.
log
(
'
failed:
'
+
JSON
.
stringify
(
error
));
});
```
## AbilityContext.setMissionIcon
setMissionIcon(icon: image.PixelMap, callback:AsyncCallback
\<
void>): void;
设置当前ability在任务中显示的图标(callback形式)。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| icon |
[
image.PixelMap
](
js-apis-image.md#pixelmap7
)
| 是 | 在最近的任务中显示的ability图标。 |
| callback | AsyncCallback
\<
void> | 是 | 指定的回调函数的结果。 |
**示例:**
```
ts
import
image
from
'
@ohos.multimedia.image
'
;
let
imagePixelMap
;
let
color
=
new
ArrayBuffer
(
0
);
let
initializationOptions
=
{
size
:
{
height
:
100
,
width
:
100
}
};
image
.
createPixelMap
(
color
,
initializationOptions
)
.
then
((
data
)
=>
{
imagePixelMap
=
data
;
})
.
catch
((
err
)
=>
{
console
.
log
(
'
--------- createPixelMap fail, err: ---------
'
,
err
);
});
this
.
context
.
setMissionIcon
(
imagePixelMap
,
(
err
)
=>
{
console
.
log
(
'
---------- setMissionIcon fail, err: -----------
'
,
err
);
})
```
## AbilityContext.setMissionIcon
setMissionIcon(icon: image.PixelMap): Promise
\<
void>;
设置当前ability在任务中显示的图标(promise形式)。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**系统API**
: 此接口为系统接口,三方应用不支持调用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| icon |
[
image.PixelMap
](
js-apis-image.md#pixelmap7
)
| 是 | 在最近的任务中显示的ability图标。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Promise
<
void
>
| 返回一个Promise,包含接口的结果。 |
**示例:**
```
ts
import
image
from
'
@ohos.multimedia.image
'
;
let
imagePixelMap
;
let
color
=
new
ArrayBuffer
(
0
);
let
initializationOptions
=
{
size
:
{
height
:
100
,
width
:
100
}
};
image
.
createPixelMap
(
color
,
initializationOptions
)
.
then
((
data
)
=>
{
imagePixelMap
=
data
;
})
.
catch
((
err
)
=>
{
console
.
log
(
'
--------- createPixelMap fail, err: ---------
'
,
err
);
});
this
.
context
.
setMissionIcon
(
imagePixelMap
)
.
then
(()
=>
{
console
.
log
(
'
-------------- setMissionIcon success -------------
'
);
})
.
catch
((
err
)
=>
{
console
.
log
(
'
-------------- setMissionIcon fail, err: -------------
'
,
err
);
});
```
## AbilityContext.restoreWindowStage
restoreWindowStage(localStorage: LocalStorage) : void;
恢复ability中的window stage数据。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| localStorage | LocalStorage | 是 | 用于恢复window stage的存储数据。 |
**示例:**
```
ts
let
storage
=
new
LocalStorage
();
this
.
context
.
restoreWindowStage
(
storage
);
```
## AbilityContext.isTerminating
isTerminating(): boolean;
查询ability是否在terminating状态。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| bool | true:ability当前处于terminating状态;false:不处于terminating状态。 |
**示例:**
```
ts
let
isTerminating
=
this
.
context
.
isTerminating
();
console
.
log
(
'
ability state :
'
+
isTerminating
);
```
\ No newline at end of file
zh-cn/application-dev/reference/apis/js-apis-app-ability-environmentCallback.md
浏览文件 @
449e61ac
...
@@ -29,6 +29,20 @@ onConfigurationUpdated(config: Configuration): void;
...
@@ -29,6 +29,20 @@ onConfigurationUpdated(config: Configuration): void;
| -------- | -------- | -------- | -------- |
| -------- | -------- | -------- | -------- |
| config |
[
Configuration
](
js-apis-app-ability-configuration.md
)
| 是 | 变化后的Configuration对象。 |
| config |
[
Configuration
](
js-apis-app-ability-configuration.md
)
| 是 | 变化后的Configuration对象。 |
## EnvironmentCallback.onMemoryLevel
onMemoryLevel(level: AbilityConstant.MemoryLevel): void;
注册系统环境变化的监听后,在系统内存变化时触发回调。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| level |
[
AbilityConstant.MemoryLevel
](
js-apis-app-ability-abilityConstant.md#abilityconstantmemorylevel
)
| 是 | 回调返回内存微调级别,显示当前内存使用状态。|
**示例:**
**示例:**
...
@@ -45,6 +59,9 @@ export default class MyAbility extends Ability {
...
@@ -45,6 +59,9 @@ export default class MyAbility extends Ability {
onConfigurationUpdated
(
config
){
onConfigurationUpdated
(
config
){
console
.
log
(
'
onConfigurationUpdated config:
'
+
JSON
.
stringify
(
config
));
console
.
log
(
'
onConfigurationUpdated config:
'
+
JSON
.
stringify
(
config
));
},
},
onMemoryLevel
(
level
){
console
.
log
(
'
onMemoryLevel level: ${JSON.stringify(level)}
'
);
}
}
}
// 1.获取applicationContext
// 1.获取applicationContext
let
applicationContext
=
globalThis
.
applicationContext
;
let
applicationContext
=
globalThis
.
applicationContext
;
...
...
zh-cn/application-dev/reference/apis/js-apis-application-ability.md
已删除
100644 → 0
浏览文件 @
dc5bb5f4
# @ohos.application.Ability (Ability)
Ability模块提供对Ability生命周期、上下文环境等调用管理的能力,包括Ability创建、销毁、转储客户端信息等。
该模块提供以下Ability相关的常用功能:
-
[
Caller
](
#caller
)
:通用组件Caller通信客户端调用接口, 用来向通用组件服务端发送约定数据。
-
[
Callee
](
#callee
)
:通用组件服务端注册和解除客户端caller通知送信的callback接口。
> **说明:**
>
> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> 本模块接口仅可在Stage模型下使用。
## 导入模块
```
ts
import
Ability
from
'
@ohos.application.Ability
'
;
```
## 属性
**系统能力**
:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.AbilityCore
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| context |
[
UIAbilityContext
](
js-apis-inner-application-uiAbilityContext.md
)
| 是 | 否 | 上下文。 |
| launchWant |
[
Want
](
js-apis-app-ability-want.md
)
| 是 | 否 | Ability启动时的参数。 |
| lastRequestWant |
[
Want
](
js-apis-app-ability-want.md
)
| 是 | 否 | Ability最后请求时的参数。|
| callee |
[
Callee
](
#callee
)
| 是 | 否 | 调用Stub(桩)服务对象。|
## Ability.onCreate
onCreate(want: Want, param: AbilityConstant.LaunchParam): void;
Ability创建时回调,执行初始化业务逻辑操作。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-app-ability-want.md
)
| 是 | 当前Ability的Want类型信息,包括ability名称、bundle名称等。 |
| param | AbilityConstant.LaunchParam | 是 | 创建
ability、上次异常退出的原因信息。 |
**示例:**
```
ts
class
myAbility
extends
Ability
{
onCreate
(
want
,
param
)
{
console
.
log
(
'
onCreate, want:
'
+
want
.
abilityName
);
}
}
```
## Ability.onWindowStageCreate
onWindowStageCreate(windowStage: window.WindowStage): void
当WindowStage创建后调用。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| windowStage |
[
window.WindowStage
](
js-apis-window.md#windowstage9
)
| 是 | WindowStage相关信息。 |
**示例:**
```
ts
class
myAbility
extends
Ability
{
onWindowStageCreate
(
windowStage
)
{
console
.
log
(
'
onWindowStageCreate
'
);
}
}
```
## Ability.onWindowStageDestroy
onWindowStageDestroy(): void
当WindowStage销毁后调用。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**示例:**
```
ts
class
myAbility
extends
Ability
{
onWindowStageDestroy
()
{
console
.
log
(
'
onWindowStageDestroy
'
);
}
}
```
## Ability.onWindowStageRestore
onWindowStageRestore(windowStage: window.WindowStage): void
当迁移多实例ability时,恢复WindowStage后调用。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| windowStage |
[
window.WindowStage
](
js-apis-window.md#windowstage9
)
| 是 | WindowStage相关信息。 |
**示例:**
```
ts
class
myAbility
extends
Ability
{
onWindowStageRestore
(
windowStage
)
{
console
.
log
(
'
onWindowStageRestore
'
);
}
}
```
## Ability.onDestroy
onDestroy(): void;
Ability生命周期回调,在销毁时回调,执行资源清理等操作。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**示例:**
```
ts
class
myAbility
extends
Ability
{
onDestroy
()
{
console
.
log
(
'
onDestroy
'
);
}
}
```
## Ability.onForeground
onForeground(): void;
Ability生命周期回调,当应用从后台转到前台时触发。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**示例:**
```
ts
class
myAbility
extends
Ability
{
onForeground
()
{
console
.
log
(
'
onForeground
'
);
}
}
```
## Ability.onBackground
onBackground(): void;
Ability生命周期回调,当应用从前台转到后台时触发。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**示例:**
```
ts
class
myAbility
extends
Ability
{
onBackground
()
{
console
.
log
(
'
onBackground
'
);
}
}
```
## Ability.onContinue
onContinue(wantParam : {[key: string]: any}): AbilityConstant.OnContinueResult;
当ability迁移准备迁移时触发,保存数据。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| wantParam | {[key:
string]:
any} | 是 | want相关参数。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| AbilityConstant.OnContinueResult | 继续的结果。 |
**示例:**
```
ts
import
AbilityConstant
from
'
@ohos.application.AbilityConstant
'
;
class
myAbility
extends
Ability
{
onContinue
(
wantParams
)
{
console
.
log
(
'
onContinue
'
);
wantParams
[
'
myData
'
]
=
'
my1234567
'
;
return
AbilityConstant
.
OnContinueResult
.
AGREE
;
}
}
```
## Ability.onNewWant
onNewWant(want: Want, launchParams: AbilityConstant.LaunchParam): void;
当传入新的Want,ability再次被拉起时会回调执行该方法。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |
[
Want
](
js-apis-application-want.md
)
| 是 | Want类型参数,如ability名称,包名等。 |
| launchParams | AbilityConstant.LaunchParam | 是 | Ability启动的原因、上次异常退出的原因信息。 |
**示例:**
```
ts
class
myAbility
extends
Ability
{
onNewWant
(
want
,
launchParams
)
{
console
.
log
(
'
onNewWant, want:
'
+
want
.
abilityName
);
console
.
log
(
'
onNewWant, launchParams:
'
+
JSON
.
stringify
(
launchParams
));
}
}
```
## Ability.onConfigurationUpdated
onConfigurationUpdated(config: Configuration): void;
环境变化通知接口,发生全局配置变更时回调。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| config |
[
Configuration
](
js-apis-application-configuration.md
)
| 是 | 发生全局配置变更时触发回调,当前全局配置包括系统语言、深浅色模式。 |
**示例:**
```
ts
class
myAbility
extends
Ability
{
onConfigurationUpdated
(
config
)
{
console
.
log
(
'
onConfigurationUpdated, language:
'
+
config
.
language
);
}
}
```
## Ability.dump
dump(params: Array
\<
string>): Array
\<
string>;
转储客户端信息时调用。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| params | Array
\<
string> | 是 | 表示命令形式的参数。|
**示例:**
```
ts
class
myAbility
extends
Ability
{
dump
(
params
)
{
console
.
log
(
'
dump, params:
'
+
JSON
.
stringify
(
params
));
return
[
'
params
'
]
}
}
```
## Ability.onMemoryLevel
onMemoryLevel(level: AbilityConstant.MemoryLevel): void;
当系统已决定调整内存时调用。例如,当该功能在后台运行时,没有足够的内存来运行尽可能多的后台进程时可以使用。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| level |
[
AbilityConstant.MemoryLevel
](
js-apis-application-abilityConstant.md#abilityconstantmemorylevel
)
| 是 | 回调返回内存微调级别,显示当前内存使用状态。|
**示例:**
```
ts
class
myAbility
extends
Ability
{
onMemoryLevel
(
level
)
{
console
.
log
(
'
onMemoryLevel, level:
'
+
JSON
.
stringify
(
level
));
}
}
```
## Ability.onSaveState
onSaveState(reason: AbilityConstant.StateType, wantParam : {[key: string]: any}): AbilityConstant.OnSaveResult;
该API配合
[
appRecovery
](
js-apis-app-ability-appRecovery.md
)
使用。在应用故障时,如果使能了自动保存状态,框架将回调onSaveState保存Ability状态。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| reason |
[
AbilityConstant.StateType
](
js-apis-app-ability-abilityConstant.md#abilityconstantstatetype
)
| 是 | 回调保存状态的原因。 |
| wantParam | {[key:
string]:
any} | 是 | want相关参数。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| AbilityConstant.OnSaveResult | 是否同意保存当前Ability的状态。 |
**示例:**
```
ts
import
AbilityConstant
from
'
@ohos.application.AbilityConstant
'
;
class
myAbility
extends
Ability
{
onSaveState
(
reason
,
wantParam
)
{
console
.
log
(
'
onSaveState
'
);
wantParam
[
'
myData
'
]
=
'
my1234567
'
;
return
AbilityConstant
.
OnSaveResult
.
RECOVERY_AGREE
;
}
}
```
## Caller
通用组件Caller通信客户端调用接口, 用来向通用组件服务端发送约定数据。
## Caller.call
call(method: string, data: rpc.Sequenceable): Promise
<
void
>
;
向通用组件服务端发送约定序列化数据。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| method | string | 是 | 约定的服务端注册事件字符串。 |
| data | rpc.Sequenceable | 是 | 由开发者实现的Sequenceable可序列化数据。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Promise
<
void
>
| Promise形式返回应答。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 201 | The application does not have permission to call the interface. |
| 401 | Invalid input parameter. |
| 16200001 | Caller released. The caller has been released. |
| 16200002 | Callee invalid. The callee does not exist. |
| 16000050 | Internal Error. |
**示例:**
```
ts
import
Ability
from
'
@ohos.application.Ability
'
;
class
MyMessageAble
{
// 自定义的Sequenceable数据结构
name
:
''
str
:
''
num
:
1
constructor
(
name
,
str
)
{
this
.
name
=
name
;
this
.
str
=
str
;
}
marshalling
(
messageParcel
)
{
messageParcel
.
writeInt
(
this
.
num
);
messageParcel
.
writeString
(
this
.
str
);
console
.
log
(
'
MyMessageAble marshalling num[
'
+
this
.
num
+
'
] str[
'
+
this
.
str
+
'
]
'
);
return
true
;
}
unmarshalling
(
messageParcel
)
{
this
.
num
=
messageParcel
.
readInt
();
this
.
str
=
messageParcel
.
readString
();
console
.
log
(
'
MyMessageAble unmarshalling num[
'
+
this
.
num
+
'
] str[
'
+
this
.
str
+
'
]
'
);
return
true
;
}
};
let
method
=
'
call_Function
'
;
// 约定的通知消息字符串
let
caller
;
export
default
class
MainAbility
extends
Ability
{
onWindowStageCreate
(
windowStage
)
{
this
.
context
.
startAbilityByCall
({
bundleName
:
'
com.example.myservice
'
,
abilityName
:
'
MainAbility
'
,
deviceId
:
''
}).
then
((
obj
)
=>
{
caller
=
obj
;
let
msg
=
new
MyMessageAble
(
'
msg
'
,
'
world
'
);
// 参考Sequenceable数据定义
caller
.
call
(
method
,
msg
)
.
then
(()
=>
{
console
.
log
(
'
Caller call() called
'
);
})
.
catch
((
callErr
)
=>
{
console
.
log
(
'
Caller.call catch error, error.code:
'
+
JSON
.
stringify
(
callErr
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
callErr
.
message
));
});
}).
catch
((
err
)
=>
{
console
.
log
(
'
Caller GetCaller error, error.code:
'
+
JSON
.
stringify
(
err
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
err
.
message
));
});
}
}
```
## Caller.callWithResult
callWithResult(method: string, data: rpc.Sequenceable): Promise
<
rpc.MessageParcel
>
;
向通用组件服务端发送约定序列化数据, 并将服务端返回的约定序列化数据带回。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| method | string | 是 | 约定的服务端注册事件字符串。 |
| data | rpc.Sequenceable | 是 | 由开发者实现的Sequenceable可序列化数据。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Promise
<
rpc.MessageParcel
>
| Promise形式返回通用组件服务端应答数据。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 201 | The application does not have permission to call the interface. |
| 401 | Invalid input parameter. |
| 16200001 | Caller released. The caller has been released. |
| 16200002 | Callee invalid. The callee does not exist. |
| 16000050 | Internal Error. |
**示例:**
```
ts
import
Ability
from
'
@ohos.application.Ability
'
;
class
MyMessageAble
{
name
:
''
str
:
''
num
:
1
constructor
(
name
,
str
)
{
this
.
name
=
name
;
this
.
str
=
str
;
}
marshalling
(
messageParcel
)
{
messageParcel
.
writeInt
(
this
.
num
);
messageParcel
.
writeString
(
this
.
str
);
console
.
log
(
'
MyMessageAble marshalling num[
'
+
this
.
num
+
'
] str[
'
+
this
.
str
+
'
]
'
);
return
true
;
}
unmarshalling
(
messageParcel
)
{
this
.
num
=
messageParcel
.
readInt
();
this
.
str
=
messageParcel
.
readString
();
console
.
log
(
'
MyMessageAble unmarshalling num[
'
+
this
.
num
+
'
] str[
'
+
this
.
str
+
'
]
'
);
return
true
;
}
};
let
method
=
'
call_Function
'
;
let
caller
;
export
default
class
MainAbility
extends
Ability
{
onWindowStageCreate
(
windowStage
)
{
this
.
context
.
startAbilityByCall
({
bundleName
:
'
com.example.myservice
'
,
abilityName
:
'
MainAbility
'
,
deviceId
:
''
}).
then
((
obj
)
=>
{
caller
=
obj
;
let
msg
=
new
MyMessageAble
(
1
,
'
world
'
);
caller
.
callWithResult
(
method
,
msg
)
.
then
((
data
)
=>
{
console
.
log
(
'
Caller callWithResult() called
'
);
let
retmsg
=
new
MyMessageAble
(
0
,
''
);
data
.
readSequenceable
(
retmsg
);
})
.
catch
((
callErr
)
=>
{
console
.
log
(
'
Caller.callWithResult catch error, error.code:
'
+
JSON
.
stringify
(
callErr
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
callErr
.
message
));
});
}).
catch
((
err
)
=>
{
console
.
log
(
'
Caller GetCaller error, error.code:
'
+
JSON
.
stringify
(
err
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
err
.
message
));
});
}
}
```
## Caller.release
release(): void;
主动释放通用组件服务端的通信接口。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | Invalid input parameter. |
| 16200001 | Caller released. The caller has been released. |
| 16200002 | Callee invalid. The callee does not exist. |
| 16000050 | Internal Error. |
**示例:**
```
ts
import
Ability
from
'
@ohos.application.Ability
'
;
let
caller
;
export
default
class
MainAbility
extends
Ability
{
onWindowStageCreate
(
windowStage
)
{
this
.
context
.
startAbilityByCall
({
bundleName
:
'
com.example.myservice
'
,
abilityName
:
'
MainAbility
'
,
deviceId
:
''
}).
then
((
obj
)
=>
{
caller
=
obj
;
try
{
caller
.
release
();
}
catch
(
releaseErr
)
{
console
.
log
(
'
Caller.release catch error, error.code:
'
+
JSON
.
stringify
(
releaseErr
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
releaseErr
.
message
));
}
}).
catch
((
err
)
=>
{
console
.
log
(
'
Caller GetCaller error, error.code:
'
+
JSON
.
stringify
(
err
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
err
.
message
));
});
}
}
```
## Caller.onRelease
onRelease(callback: OnReleaseCallBack): void;
注册通用组件服务端Stub(桩)断开监听通知。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | OnReleaseCallBack | 是 | 返回onRelease回调结果。 |
**示例:**
```
ts
import
Ability
from
'
@ohos.application.Ability
'
;
let
caller
;
export
default
class
MainAbility
extends
Ability
{
onWindowStageCreate
(
windowStage
)
{
this
.
context
.
startAbilityByCall
({
bundleName
:
'
com.example.myservice
'
,
abilityName
:
'
MainAbility
'
,
deviceId
:
''
}).
then
((
obj
)
=>
{
caller
=
obj
;
try
{
caller
.
onRelease
((
str
)
=>
{
console
.
log
(
'
Caller OnRelease CallBack is called
'
+
str
);
});
}
catch
(
error
)
{
console
.
log
(
'
Caller.on catch error, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
}
}).
catch
((
err
)
=>
{
console
.
log
(
'
Caller GetCaller error, error.code:
'
+
JSON
.
stringify
(
err
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
err
.
message
));
});
}
}
```
## Callee
通用组件服务端注册和解除客户端caller通知送信的callback接口。
## Callee.on
on(method: string, callback: CalleeCallBack): void;
通用组件服务端注册消息通知callback。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| method | string | 是 | 与客户端约定的通知消息字符串。 |
| callback | CalleeCallBack | 是 | 一个rpc.MessageParcel类型入参的js通知同步回调函数,
回调函数至少要返回一个空的rpc.Sequenceable数据对象,
其他视为函数执行错误。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | Invalid input parameter. |
| 16200004 | Method registered. The method has registered. |
| 16000050 | Internal Error. |
**示例:**
```
ts
import
Ability
from
'
@ohos.application.Ability
'
;
class
MyMessageAble
{
name
:
''
str
:
''
num
:
1
constructor
(
name
,
str
)
{
this
.
name
=
name
;
this
.
str
=
str
;
}
marshalling
(
messageParcel
)
{
messageParcel
.
writeInt
(
this
.
num
);
messageParcel
.
writeString
(
this
.
str
);
console
.
log
(
'
MyMessageAble marshalling num[
'
+
this
.
num
+
'
] str[
'
+
this
.
str
+
'
]
'
);
return
true
;
}
unmarshalling
(
messageParcel
)
{
this
.
num
=
messageParcel
.
readInt
();
this
.
str
=
messageParcel
.
readString
();
console
.
log
(
'
MyMessageAble unmarshalling num[
'
+
this
.
num
+
'
] str[
'
+
this
.
str
+
'
]
'
);
return
true
;
}
};
let
method
=
'
call_Function
'
;
function
funcCallBack
(
pdata
)
{
console
.
log
(
'
Callee funcCallBack is called
'
+
pdata
);
let
msg
=
new
MyMessageAble
(
'
test
'
,
''
);
pdata
.
readSequenceable
(
msg
);
return
new
MyMessageAble
(
'
test1
'
,
'
Callee test
'
);
}
export
default
class
MainAbility
extends
Ability
{
onCreate
(
want
,
launchParam
)
{
console
.
log
(
'
Callee onCreate is called
'
);
try
{
this
.
callee
.
on
(
method
,
funcCallBack
);
}
catch
(
error
)
{
console
.
log
(
'
Callee.on catch error, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
}
}
}
```
## Callee.off
off(method: string): void;
解除通用组件服务端注册消息通知callback。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| method | string | 是 | 已注册的通知事件字符串。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | Invalid input parameter. |
| 16200005 | Method not registered. The method has not registered. |
| 16000050 | Internal Error. |
**示例:**
```
ts
import
Ability
from
'
@ohos.application.Ability
'
;
let
method
=
'
call_Function
'
;
export
default
class
MainAbility
extends
Ability
{
onCreate
(
want
,
launchParam
)
{
console
.
log
(
'
Callee onCreate is called
'
);
try
{
this
.
callee
.
off
(
method
);
}
catch
(
error
)
{
console
.
log
(
'
Callee.off catch error, error.code:
'
+
JSON
.
stringify
(
error
.
code
)
+
'
error.message:
'
+
JSON
.
stringify
(
error
.
message
));
}
}
}
```
## OnReleaseCallBack
(msg: string): void;
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| (msg: string) | function | 是 | 否 | 调用者注册的侦听器函数接口的原型。 |
## CalleeCallBack
(indata: rpc.MessageParcel): rpc.Sequenceable;
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| (indata: rpc.MessageParcel) | rpc.Sequenceable | 是 | 否 | 被调用方注册的消息侦听器函数接口的原型。 |
\ No newline at end of file
zh-cn/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md
已删除
100644 → 0
浏览文件 @
dc5bb5f4
# @ohos.application.AbilityLifecycleCallback (AbilityLifecycleCallback)
AbilityLifecycleCallback模块提供应用上下文ApplicationContext的生命周期监听方法的回调类的能力,包括onAbilityCreate、onWindowStageCreate、onWindowStageDestroy等方法。
> **说明:**
>
> 本模块首批接口从API version 9 开始支持,从API version 9废弃,替换模块为[@ohos.app.ability.AbilityLifecycleCallback](js-apis-app-ability-abilityLifecycleCallback.md)。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> 本模块接口仅可在Stage模型下使用。
## 导入模块
```
ts
import
AbilityLifecycleCallback
from
'
@ohos.application.AbilityLifecycleCallback
'
;
```
## AbilityLifecycleCallback.onAbilityCreate
onAbilityCreate(ability: Ability): void;
注册监听应用上下文的生命周期后,在ability创建时触发回调。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| ability |
[
Ability
](
js-apis-application-ability.md#Ability
)
| 是 | 当前Ability对象 |
## AbilityLifecycleCallback.onWindowStageCreate
onWindowStageCreate(ability: Ability, windowStage: window.WindowStage): void;
注册监听应用上下文的生命周期后,在windowStage创建时触发回调。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| ability |
[
Ability
](
js-apis-application-ability.md#Ability
)
| 是 | 当前Ability对象 |
| windowStage |
[
window.WindowStage
](
js-apis-window.md#windowstage9
)
| 是 | 当前WindowStage对象 |
## AbilityLifecycleCallback.onWindowStageActive
onWindowStageActive(ability: Ability, windowStage: window.WindowStage): void;
注册监听应用上下文的生命周期后,在windowStage获焦时触发回调。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| ability |
[
Ability
](
js-apis-application-ability.md#Ability
)
| 是 | 当前Ability对象 |
| windowStage |
[
window.WindowStage
](
js-apis-window.md#windowstage9
)
| 是 | 当前WindowStage对象 |
## AbilityLifecycleCallback.onWindowStageInactive
onWindowStageInactive(ability: Ability, windowStage: window.WindowStage): void;
注册监听应用上下文的生命周期后,在windowStage失焦时触发回调。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| ability |
[
Ability
](
js-apis-application-ability.md#Ability
)
| 是 | 当前Ability对象 |
| windowStage |
[
window.WindowStage
](
js-apis-window.md#windowstage9
)
| 是 | 当前WindowStage对象 |
## AbilityLifecycleCallback.onWindowStageDestroy
onWindowStageDestroy(ability: Ability, windowStage: window.WindowStage): void;
注册监听应用上下文的生命周期后,在windowStage销毁时触发回调。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| ability |
[
Ability
](
js-apis-application-ability.md#Ability
)
| 是 | 当前Ability对象 |
| windowStage |
[
window.WindowStage
](
js-apis-window.md#windowstage9
)
| 是 | 当前WindowStage对象 |
## AbilityLifecycleCallback.onAbilityDestroy
onAbilityDestroy(ability: Ability): void;
注册监听应用上下文的生命周期后,在ability销毁时触发回调。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| ability |
[
Ability
](
js-apis-application-ability.md#Ability
)
| 是 | 当前Ability对象 |
## AbilityLifecycleCallback.onAbilityForeground
onAbilityForeground(ability: Ability): void;
注册监听应用上下文的生命周期后,在ability的状态从后台转到前台时触发回调。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| ability |
[
Ability
](
js-apis-application-ability.md#Ability
)
| 是 | 当前Ability对象 |
## AbilityLifecycleCallback.onAbilityBackground
onAbilityBackground(ability: Ability): void;
注册监听应用上下文的生命周期后,在ability的状态从前台转到后台时触发回调。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| ability |
[
Ability
](
js-apis-application-ability.md#Ability
)
| 是 | 当前Ability对象 |
## AbilityLifecycleCallback.onAbilityContinue
onAbilityContinue(ability: Ability): void;
注册监听应用上下文的生命周期后,在ability迁移时触发回调。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| ability |
[
Ability
](
js-apis-application-ability.md#Ability
)
| 是 | 当前Ability对象 |
**示例:**
```
ts
import
AbilityStage
from
'
@ohos.application.AbilityStage
'
;
let
lifecycleid
;
export
default
class
MyAbilityStage
extends
AbilityStage
{
onCreate
()
{
console
.
log
(
'
MyAbilityStage onCreate
'
)
let
AbilityLifecycleCallback
=
{
onAbilityCreate
(
ability
){
console
.
log
(
'
AbilityLifecycleCallback onAbilityCreate ability:
'
+
JSON
.
stringify
(
ability
));
},
onWindowStageCreate
(
ability
,
windowStage
){
console
.
log
(
'
AbilityLifecycleCallback onWindowStageCreate ability:
'
+
JSON
.
stringify
(
ability
));
console
.
log
(
'
AbilityLifecycleCallback onWindowStageCreate windowStage:
'
+
JSON
.
stringify
(
windowStage
));
},
onWindowStageActive
(
ability
,
windowStage
){
console
.
log
(
'
AbilityLifecycleCallback onWindowStageActive ability:
'
+
JSON
.
stringify
(
ability
));
console
.
log
(
'
AbilityLifecycleCallback onWindowStageActive windowStage:
'
+
JSON
.
stringify
(
windowStage
));
},
onWindowStageInactive
(
ability
,
windowStage
){
console
.
log
(
'
AbilityLifecycleCallback onWindowStageInactive ability:
'
+
JSON
.
stringify
(
ability
));
console
.
log
(
'
AbilityLifecycleCallback onWindowStageInactive windowStage:
'
+
JSON
.
stringify
(
windowStage
));
},
onWindowStageDestroy
(
ability
,
windowStage
){
console
.
log
(
'
AbilityLifecycleCallback onWindowStageDestroy ability:
'
+
JSON
.
stringify
(
ability
));
console
.
log
(
'
AbilityLifecycleCallback onWindowStageDestroy windowStage:
'
+
JSON
.
stringify
(
windowStage
));
},
onAbilityDestroy
(
ability
){
console
.
log
(
'
AbilityLifecycleCallback onAbilityDestroy ability:
'
+
JSON
.
stringify
(
ability
));
},
onAbilityForeground
(
ability
){
console
.
log
(
'
AbilityLifecycleCallback onAbilityForeground ability:
'
+
JSON
.
stringify
(
ability
));
},
onAbilityBackground
(
ability
){
console
.
log
(
'
AbilityLifecycleCallback onAbilityBackground ability:
'
+
JSON
.
stringify
(
ability
));
},
onAbilityContinue
(
ability
){
console
.
log
(
'
AbilityLifecycleCallback onAbilityContinue ability:
'
+
JSON
.
stringify
(
ability
));
}
}
// 1.通过context属性获取applicationContext
let
applicationContext
=
this
.
context
.
getApplicationContext
();
// 2.通过applicationContext注册监听应用内生命周期
lifecycleid
=
applicationContext
.
registerAbilityLifecycleCallback
(
AbilityLifecycleCallback
);
console
.
log
(
'
registerAbilityLifecycleCallback number:
'
+
JSON
.
stringify
(
lifecycleid
));
}
onDestroy
()
{
let
applicationContext
=
this
.
context
.
getApplicationContext
();
applicationContext
.
unregisterAbilityLifecycleCallback
(
lifecycleid
,
(
error
,
data
)
=>
{
console
.
log
(
'
unregisterAbilityLifecycleCallback success, err:
'
+
JSON
.
stringify
(
error
));
});
}
}
```
<!--no_check-->
\ No newline at end of file
zh-cn/application-dev/reference/apis/js-apis-application-errorManager.md
已删除
100644 → 0
浏览文件 @
dc5bb5f4
# @ohos.application.errorManager (ErrorManager)
ErrorManager模块提供对错误观察器的注册和注销的能力。
> **说明:**
>
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```
ts
import
errorManager
from
'
@ohos.application.errorManager
'
```
## ErrorManager.registerErrorObserver
registerErrorObserver(observer: ErrorObserver): number;
注册错误观测器。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| observer |
[
ErrorObserver
](
js-apis-inner-application-errorObserver.md
)
| 是 | 返回观察者的数字代码。 |
**示例:**
```
ts
let
observer
=
{
onUnhandledException
(
errorMsg
)
{
console
.
log
(
'
onUnhandledException, errorMsg:
'
,
errorMsg
);
}
}
errorManager
.
registerErrorObserver
(
observer
)
```
## ErrorManager.unregisterErrorObserver
unregisterErrorObserver(observerId: number, callback: AsyncCallback
\<
void>): void;
注销错误观测器。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| observerId | number | 是 | 返回观察者的数字代码。 |
| callback | AsyncCallback
\<
void> | 是 | 表示指定的回调方法。 |
**示例:**
```
ts
let
observerId
=
100
;
function
unregisterErrorObserverCallback
(
err
)
{
if
(
err
)
{
console
.
log
(
'
------------ unregisterErrorObserverCallback ------------
'
,
err
);
}
}
errorManager
.
unregisterErrorObserver
(
observerId
,
unregisterErrorObserverCallback
);
```
## ErrorManager.unregisterErrorObserver
unregisterErrorObserver(observerId: number): Promise
\<
void>;
注销错误观测器。
**系统能力**
:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| observerId | number | 是 | 返回观察者的数字代码。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Promise
\<
void> | 返回执行结果。 |
**示例:**
```
ts
let
observerId
=
100
;
errorManager
.
unregisterErrorObserver
(
observerId
)
.
then
((
data
)
=>
{
console
.
log
(
'
----------- unregisterErrorObserver success ----------
'
,
data
);
})
.
catch
((
err
)
=>
{
console
.
log
(
'
----------- unregisterErrorObserver fail ----------
'
,
err
);
});
```
\ No newline at end of file
zh-cn/application-dev/reference/apis/js-apis-inner-app-context.md
浏览文件 @
449e61ac
...
@@ -1290,14 +1290,4 @@ context.printDrawnCompleted().then((data) => {
...
@@ -1290,14 +1290,4 @@ context.printDrawnCompleted().then((data) => {
| ----------- | ---- | -------------- | ---- | ---------- |
| ----------- | ---- | -------------- | ---- | ---------- |
| requestCode | 只读 | number | 是 | 用户传入的请求代码。 |
| requestCode | 只读 | number | 是 | 用户传入的请求代码。 |
| permissions | 只读 | Array
\<
string> | 是 | 用户传入的权限。 |
| permissions | 只读 | Array
\<
string> | 是 | 用户传入的权限。 |
| authResults | 只读 | Array
\<
number> | 是 | 请求权限的结果。 |
| authResults | 只读 | Array
\<
number> | 是 | 请求权限的结果。 |
\ No newline at end of file
## AppVersionInfo<sup>7+</sup>
**系统能力**
:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ----------- | ------ | ---- | ---- | ------- |
| appName | string | 是 | 否 | 模块名称。 |
| versionCode | number | 是 | 否 | 模块描述信息。 |
| versionName | string | 是 | 否 | 描述信息ID。 |
\ No newline at end of file
zh-cn/application-dev/reference/apis/js-apis-inner-application-abilityMonitor.md
浏览文件 @
449e61ac
...
@@ -19,6 +19,7 @@ Ability监听器
...
@@ -19,6 +19,7 @@ Ability监听器
| 名称 | 类型 | 可读 | 可写 | 说明 |
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------------------------------------------------------------ | -------- | ---- | ---- | ------------------------------------------------------------ |
| ------------------------------------------------------------ | -------- | ---- | ---- | ------------------------------------------------------------ |
| abilityName | string | 是 | 是 | 当前AbilityMonitor绑定的ability名称 |
| abilityName | string | 是 | 是 | 当前AbilityMonitor绑定的ability名称 |
| moduleName? | string | 是 | 是 | 当前AbilityMonitor绑定的模块名称 |
| onAbilityCreate?:(data:
[
UIAbility
](
js-apis-app-ability-uiAbility.md
)
) | function | 是 | 是 | ability被启动初始化时的回调函数
<br/>
不设置该属性则不能收到该生命周期回调 |
| onAbilityCreate?:(data:
[
UIAbility
](
js-apis-app-ability-uiAbility.md
)
) | function | 是 | 是 | ability被启动初始化时的回调函数
<br/>
不设置该属性则不能收到该生命周期回调 |
| onAbilityForeground?:(data:
[
UIAbility
](
js-apis-app-ability-uiAbility.md
)
) | function | 是 | 是 | ability状态变成前台时的回调函数
<br/>
不设置该属性则不能收到该生命周期回调 |
| onAbilityForeground?:(data:
[
UIAbility
](
js-apis-app-ability-uiAbility.md
)
) | function | 是 | 是 | ability状态变成前台时的回调函数
<br/>
不设置该属性则不能收到该生命周期回调 |
| onAbilityBackground?:(data:
[
UIAbility
](
js-apis-app-ability-uiAbility.md
)
) | function | 是 | 是 | ability状态变成后台时的回调函数
<br/>
不设置该属性则不能收到该生命周期回调 |
| onAbilityBackground?:(data:
[
UIAbility
](
js-apis-app-ability-uiAbility.md
)
) | function | 是 | 是 | ability状态变成后台时的回调函数
<br/>
不设置该属性则不能收到该生命周期回调 |
...
@@ -38,6 +39,7 @@ function onAbilityCreateCallback(data) {
...
@@ -38,6 +39,7 @@ function onAbilityCreateCallback(data) {
let
monitor
=
{
let
monitor
=
{
abilityName
:
'
abilityname
'
,
abilityName
:
'
abilityname
'
,
moduleName
:
"
moduleName
"
,
onAbilityCreate
:
onAbilityCreateCallback
onAbilityCreate
:
onAbilityCreateCallback
};
};
...
...
zh-cn/application-dev/reference/apis/js-apis-inner-application-applicationContext.md
浏览文件 @
449e61ac
...
@@ -265,9 +265,9 @@ export default class MyAbility extends Ability {
...
@@ -265,9 +265,9 @@ export default class MyAbility extends Ability {
}
}
```
```
## ApplicationContext.get
ProcessRunning
Information<sup>9+</sup>
## ApplicationContext.get
RunningProcess
Information<sup>9+</sup>
get
ProcessRunningInformation(): Promise
\<
Array
\<
ProcessRunning
Information>>;
get
RunningProcessInformation(): Promise
\<
Array
\<
Process
Information>>;
获取有关运行进程的信息。
获取有关运行进程的信息。
...
@@ -281,22 +281,22 @@ getProcessRunningInformation(): Promise\<Array\<ProcessRunningInformation>>;
...
@@ -281,22 +281,22 @@ getProcessRunningInformation(): Promise\<Array\<ProcessRunningInformation>>;
| 类型 | 说明 |
| 类型 | 说明 |
| -------- | -------- |
| -------- | -------- |
| Promise
\<
Array
\<
[
Process
RunningInformation
](
js-apis-inner-application-processRunningInfo
.md
)
>> | 以Promise方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 |
| Promise
\<
Array
\<
[
Process
Information
](
js-apis-inner-application-processInformation
.md
)
>> | 以Promise方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 |
**示例:**
**示例:**
```
ts
```
ts
let
applicationContext
=
this
.
context
.
getApplicationContext
();
let
applicationContext
=
this
.
context
.
getApplicationContext
();
applicationContext
.
get
ProcessRunning
Information
().
then
((
data
)
=>
{
applicationContext
.
get
RunningProcess
Information
().
then
((
data
)
=>
{
console
.
log
(
'
The process running information is:
'
+
JSON
.
stringify
(
data
));
console
.
log
(
'
The process running information is:
'
+
JSON
.
stringify
(
data
));
}).
catch
((
error
)
=>
{
}).
catch
((
error
)
=>
{
console
.
log
(
'
error:
'
+
JSON
.
stringify
(
error
));
console
.
log
(
'
error:
'
+
JSON
.
stringify
(
error
));
});
});
```
```
## ApplicationContext.get
ProcessRunning
Information<sup>9+</sup>
## ApplicationContext.get
RunningProcess
Information<sup>9+</sup>
get
ProcessRunningInformation(callback: AsyncCallback
\<
Array
\<
ProcessRunning
Information>>): void;
get
RunningProcessInformation(callback: AsyncCallback
\<
Array
\<
Process
Information>>): void;
获取有关运行进程的信息。
获取有关运行进程的信息。
...
@@ -310,15 +310,15 @@ getProcessRunningInformation(callback: AsyncCallback\<Array\<ProcessRunningInfor
...
@@ -310,15 +310,15 @@ getProcessRunningInformation(callback: AsyncCallback\<Array\<ProcessRunningInfor
| 类型 | 说明 |
| 类型 | 说明 |
| -------- | -------- |
| -------- | -------- |
|AsyncCallback
\<
Array
\<
[
Process
RunningInformation
](
js-apis-inner-application-processRunningInfo
.md
)
>> | 以回调方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 |
|AsyncCallback
\<
Array
\<
[
Process
Information
](
js-apis-inner-application-processInformation
.md
)
>> | 以回调方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 |
**示例:**
**示例:**
```
ts
```
ts
let
applicationContext
=
this
.
context
.
getApplicationContext
();
let
applicationContext
=
this
.
context
.
getApplicationContext
();
applicationContext
.
get
ProcessRunning
Information
((
err
,
data
)
=>
{
applicationContext
.
get
RunningProcess
Information
((
err
,
data
)
=>
{
if
(
err
.
code
!==
0
)
{
if
(
err
.
code
!==
0
)
{
console
.
error
(
'
get
ProcessRunning
Information faile, err:
'
+
JSON
.
stringify
(
err
));
console
.
error
(
'
get
RunningProcess
Information faile, err:
'
+
JSON
.
stringify
(
err
));
}
else
{
}
else
{
console
.
log
(
'
The process running information is:
'
+
JSON
.
stringify
(
data
));
console
.
log
(
'
The process running information is:
'
+
JSON
.
stringify
(
data
));
}
}
...
...
zh-cn/application-dev/reference/apis/js-apis-inner-application-context.md
浏览文件 @
449e61ac
...
@@ -78,6 +78,8 @@ createModuleContext(moduleName: string): Context;
...
@@ -78,6 +78,8 @@ createModuleContext(moduleName: string): Context;
let
moduleContext
=
this
.
context
.
createModuleContext
(
'
entry
'
);
let
moduleContext
=
this
.
context
.
createModuleContext
(
'
entry
'
);
```
```
## Context.createModuleContext
createModuleContext(bundleName: string, moduleName: string): Context;
createModuleContext(bundleName: string, moduleName: string): Context;
根据包名和模块名创建上下文Context。
根据包名和模块名创建上下文Context。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录