FeatureAbility模块提供带有UI设计与用户交互的能力,包括启动新的ability、获取dataAbilityHelper、设置此Page Ability、获取当前Ability对应的窗口,连接服务等。
说明:
本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块接口仅可在FA模型下使用。
FeatureAbility模块的接口只能在Page类型的Ability调用
import featureAbility from '@ohos.ability.featureAbility';
startAbility(parameter: StartAbilityParameter, callback: AsyncCallback<number>): void
启动新的ability(callback形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
parameter | StartAbilityParameter | 是 | 表示被启动的Ability。 |
callback | AsyncCallback<number> | 是 | 被指定的回调方法。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
import wantConstant from '@ohos.ability.wantConstant';
featureAbility.startAbility(
{
want:
{
action: "",
entities: [""],
type: "",
flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
deviceId: "",
bundleName: "com.example.myapplication",
/* FA模型中abilityName由package + Ability name组成 */
abilityName: "com.example.entry.secondAbility",
uri: ""
},
},
(err, data) => {
console.info("startAbility err: " + JSON.stringify(err) + "data: " + JSON.stringify(data));
}
);
startAbility(parameter: StartAbilityParameter): Promise<number>
启动新的ability(Promise形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
parameter | StartAbilityParameter | 是 | 表示被启动的Ability。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
import wantConstant from '@ohos.ability.wantConstant';
featureAbility.startAbility(
{
want:
{
action: "action.system.home",
entities: ["entity.system.home"],
type: "MIMETYPE",
flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
deviceId: "",
bundleName: "com.example.myapplication",
/* FA模型中abilityName由package + Ability name组成 */
abilityName: "com.example.entry.secondAbility",
uri: ""
},
}
).then((data) => {
console.info("startAbility data: " + JSON.stringify(data));
});
acquireDataAbilityHelper(uri: string): DataAbilityHelper
获取dataAbilityHelper。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
uri | string | 是 | 指示要打开的文件的路径。 |
返回值:
类型 | 说明 |
---|---|
DataAbilityHelper | 用来协助其他Ability访问DataAbility的工具类。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
var dataAbilityHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
startAbilityForResult(parameter: StartAbilityParameter, callback: AsyncCallback<AbilityResult>): void
启动一个ability,并在该ability被销毁时返回执行结果(callback形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
parameter | StartAbilityParameter | 是 | 表示被启动的Ability。 |
callback | AsyncCallback<AbilityResult> | 是 | 被指定的回调方法。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
import wantConstant from '@ohos.ability.wantConstant';
featureAbility.startAbilityForResult(
{
want:
{
action: "action.system.home",
entities: ["entity.system.home"],
type: "MIMETYPE",
flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
deviceId: "",
bundleName: "com.example.myapplication",
/* FA模型中abilityName由package + Ability name组成 */
abilityName: "com.example.entry.secondAbility",
uri:""
},
},
(err, data) => {
console.info("startAbilityForResult err: " + JSON.stringify(err) + "data: " + JSON.stringify(data));
}
);
startAbilityForResult(parameter: StartAbilityParameter): Promise<AbilityResult>
启动一个ability,并在该ability被销毁时返回执行结果(Promise形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
parameter | StartAbilityParameter | 是 | 表示被启动的Ability |
返回值:
类型 | 说明 |
---|---|
Promise<AbilityResult> | 返回执行结果。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
import wantConstant from '@ohos.ability.wantConstant';
featureAbility.startAbilityForResult(
{
want:
{
action: "action.system.home",
entities: ["entity.system.home"],
type: "MIMETYPE",
flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
deviceId: "",
bundleName: "com.example.myapplication",
/* FA模型中abilityName由package + Ability name组成 */
abilityName: "com.example.entry.secondAbility",
uri:"",
parameters:
{
mykey0: 1111,
mykey1: [1, 2, 3],
mykey2: "[1, 2, 3]",
mykey3: "xxxxxxxxxxxxxxxxxxxxxx",
mykey4: [1, 15],
mykey5: [false, true, false],
mykey6: ["aaaaaa", "bbbbb", "ccccccccccc"],
mykey7: true,
},
},
},
).then((data) => {
console.info("startAbilityForResult data: " + JSON.stringify(data));
});
terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback<void>): void
设置此Page Ability将返回给调用者的结果代码和数据并破坏此Page Ability(callback形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
parameter | AbilityResult | 是 | 表示被启动的Ability。 |
callback | AsyncCallback<void> | 是 | 被指定的回调方法。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
import wantConstant from '@ohos.ability.wantConstant';
featureAbility.terminateSelfWithResult(
{
resultCode: 1,
want:
{
action: "action.system.home",
entities: ["entity.system.home"],
type: "MIMETYPE",
flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
deviceId: "",
bundleName: "com.example.myapplication",
/* FA模型中abilityName由package + Ability name组成 */
abilityName: "com.example.entry.secondAbility",
uri:"",
parameters: {
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: "[1, 2, 3]",
mykey3: "ssssssssssssssssssssssssss",
mykey4: [1, 15],
mykey5: [false, true, false],
mykey6: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"],
mykey7: true,
}
},
},
(err) => {
console.info("err: " + JSON.stringify(err))
}
);
terminateSelfWithResult(parameter: AbilityResult): Promise<void>
设置此Page Ability将返回给调用者的结果代码和数据并破坏此Page Ability(Promise形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
parameter | AbilityResult | 是 | 表示被启动的Ability |
返回值:
类型 | 说明 |
---|---|
Promise<void> | 以Promise形式返回结果。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
import wantConstant from '@ohos.ability.wantConstant';
featureAbility.terminateSelfWithResult(
{
resultCode: 1,
want:
{
action: "action.system.home",
entities: ["entity.system.home"],
type: "MIMETYPE",
flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
deviceId: "",
bundleName: "com.example.myapplication",
/* FA模型中abilityName由package + Ability name组成 */
abilityName: "com.example.entry.secondAbility",
uri:"",
parameters: {
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: "[1, 2, 3]",
mykey3: "ssssssssssssssssssssssssss",
mykey4: [1, 15],
mykey5: [false, true, false],
mykey6: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"],
mykey7: true,
}
},
}
).then((data) => {
console.info("==========================>terminateSelfWithResult=======================>");
});
hasWindowFocus(callback: AsyncCallback<boolean>): void
检查Ability的主窗口是否具有窗口焦点(callback形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<boolean> | 是 | 被指定的回调方法。 如果此Ability当前具有视窗焦点,则返回true;否则返回false。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
featureAbility.hasWindowFocus((err, data) => {
console.info("hasWindowFocus err: " + JSON.stringify(err) + "data: " + JSON.stringify(data));
});
hasWindowFocus(): Promise<boolean>
检查Ability的主窗口是否具有窗口焦点(Promise形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
返回值:
类型 | 说明 |
---|---|
Promise<boolean> | 如果此Ability当前具有视窗焦点,则返回true;否则返回false。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
featureAbility.hasWindowFocus().then((data) => {
console.info("hasWindowFocus data: " + JSON.stringify(data));
});
getWant(callback: AsyncCallback<Want>): void
获取从Ability发送的Want(callback形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<Want> | 是 | 被指定的回调方法。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
featureAbility.getWant((err, data) => {
console.info("getWant err: " + JSON.stringify(err) + "data: " + JSON.stringify(data));
});
getWant(): Promise<Want>
获取从Ability发送的Want(Promise形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
返回值:
类型 | 说明 |
---|---|
Promise<Want> | 以Promise的形式返回结果。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
featureAbility.getWant().then((data) => {
console.info("getWant data: " + JSON.stringify(data));
});
getContext(): Context
获取应用上下文。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
返回值:
类型 | 说明 |
---|---|
Context | 返回应用程序上下文。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
var context = featureAbility.getContext()
context.getBundleName((err, data) => {
console.info("getBundleName err: " + JSON.stringify(err) + "data: " + JSON.stringify(data));
});
terminateSelf(callback: AsyncCallback<void>): void
设置Page Ability返回给被调用方的结果代码和数据,并销毁此Page Ability(callback形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 被指定的回调方法 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
featureAbility.terminateSelf(
(err) => {
console.info("err: " + JSON.stringify(err))
}
)
terminateSelf(): Promise<void>
设置Page Ability返回给被调用方的结果代码和数据,并销毁此Page Ability(Promise形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
返回值:
类型 | 说明 |
---|---|
Promise<void> | 以Promise的形式返回结果。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
featureAbility.terminateSelf().then((data) => {
console.info("==========================>terminateSelf=======================>");
});
connectAbility(request: Want, options:ConnectOptions): number
将当前ability连接到指定ServiceAbility(callback形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
request | Want | 是 | 表示被连接的ServiceAbility。 |
options | ConnectOptions | 是 | 被指定的回调方法。 |
返回值:
类型 | 说明 |
---|---|
number | 连接的ServiceAbilityID。 |
示例:
import rpc from '@ohos.rpc';
import featureAbility from '@ohos.ability.featureAbility';
function onConnectCallback(element, 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('featureAbilityTest ConnectAbility onFailed errCode : ' + code)
}
var connectId = featureAbility.connectAbility(
{
deviceId: "",
bundleName: "com.ix.ServiceAbility",
abilityName: "ServiceAbilityA",
},
{
onConnect: onConnectCallback,
onDisconnect: onDisconnectCallback,
onFailed: onFailedCallback,
},
);
disconnectAbility(connection: number, callback:AsyncCallback<void>): void
断开与指定ServiceAbility的连接(callback形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
connection | number | 是 | 指定断开连接的ServiceAbilityID |
callback | AsyncCallback<void> | 是 | 被指定的回调方法 |
示例:
import rpc from '@ohos.rpc';
import featureAbility from '@ohos.ability.featureAbility';
function onConnectCallback(element, 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('featureAbilityTest ConnectAbility onFailed errCode : ' + code)
}
var connectId = featureAbility.connectAbility(
{
bundleName: "com.ix.ServiceAbility",
abilityName: "ServiceAbilityA",
},
{
onConnect: onConnectCallback,
onDisconnect: onDisconnectCallback,
onFailed: onFailedCallback,
},
);
featureAbility.disconnectAbility(connectId, (err) => {
console.log("featureAbilityTest disconnectAbility err====>"
+ ("json err=") + JSON.stringify(err));
});
disconnectAbility(connection: number): Promise<void>
断开与指定ServiceAbility的连接(Promise形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
connection | number | 是 | 指定断开连接的ServiceAbilityID |
返回值:
类型 | 说明 |
---|---|
Promise<void> | 以Promise形式返回结果。 |
示例:
import rpc from '@ohos.rpc';
import featureAbility from '@ohos.ability.featureAbility';
function onConnectCallback(element, 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('featureAbilityTest ConnectAbility onFailed errCode : ' + code)
}
var connectId = featureAbility.connectAbility(
{
bundleName: "com.ix.ServiceAbility",
abilityName: "ServiceAbilityA",
},
{
onConnect: onConnectCallback,
onDisconnect: onDisconnectCallback,
onFailed: onFailedCallback,
},
);
featureAbility.disconnectAbility(connectId).then((data) => {
console.log('data : ' + data);
}).catch((error)=>{
console.log('featureAbilityTest result errCode : ' + error.code);
});
getWindow(callback: AsyncCallback<window.Window>): void
获取当前Ability对应的窗口(callback形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<window.Window> | 是 | 返回与当前Ability对应的窗口。 |
示例:
featureAbility.getWindow((err, data) => {
console.info("getWindow err: " + JSON.stringify(err) + "data: " + typeof(data));
});
getWindow(): Promise<window.Window>;
获取当前Ability对应的窗口(Promise形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
返回值:
类型 | 说明 |
---|---|
Promise<window.Window> | 返回与当前Ability对应的窗口。 |
示例:
featureAbility.getWindow().then((data) => {
console.info("getWindow data: " + typeof(data));
});
使用时通过featureAbility.AbilityWindowConfiguration获取。
示例:
featureAbility.AbilityWindowConfiguration.WINDOW_MODE_UNDEFINED
系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel
名称 | 值 | 说明 |
---|---|---|
WINDOW_MODE_UNDEFINED7+ | 0 | 未定义。 |
WINDOW_MODE_FULLSCREEN7+ | 1 | 全屏。 |
WINDOW_MODE_SPLIT_PRIMARY7+ | 100 | 分屏主屏。 |
WINDOW_MODE_SPLIT_SECONDARY7+ | 101 | 分屏次屏。 |
WINDOW_MODE_FLOATING7+ | 102 | 悬浮窗。 |
abilityStartSetting属性是一个定义为[key: string]: any的对象,key对应设定类型为:AbilityStartSetting枚举类型,value对应设定类型为:AbilityWindowConfiguration枚举类型。
使用时通过featureAbility.AbilityStartSetting获取。
示例:
featureAbility.AbilityStartSetting.BOUNDS_KEY
系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel
名称 | 值 | 说明 |
---|---|---|
BOUNDS_KEY7+ | "abilityBounds" | 窗口显示大小属性的参数名。 |
WINDOW_MODE_KEY7+ | "windowMode" | 窗口显示模式属性的参数名。 |
DISPLAY_ID_KEY7+ | "displayId" | 窗口显示设备ID属性的参数名。 |
获取错误代码。
系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel
名称 | 值 | 说明 |
---|---|---|
NO_ERROR7+ | 0 | 没有错误。 |
INVALID_PARAMETER7+ | -1 | 无效的参数。 |
ABILITY_NOT_FOUND7+ | -2 | 找不到能力。 |
PERMISSION_DENY7+ | -3 | 拒绝许可。 |
指示数据的操作类型。
系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel
名称 | 值 | 说明 |
---|---|---|
TYPE_INSERT7+ | 1 | 插入类型。 |
TYPE_UPDATE7+ | 2 | 修改类型。 |
TYPE_DELETE7+ | 3 | 删除类型。 |
TYPE_ASSERT7+ | 4 | 声明类型。 |
系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityBase
名称 | 值 | 说明 |
---|---|---|
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上可能持久化的授权。 系统API: 此接口为系统接口,三方应用不支持调用。 |
FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 按照前缀匹配的方式验证URI权限。 系统API: 此接口为系统接口,三方应用不支持调用。 |
FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动。 |
FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能。 系统API: 此接口为系统接口,三方应用不支持调用。 |
FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示迁移是可拉回的。 |
FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能。 |
FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,使用后台模式安装该功能。 |
FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给 ohos.app.Context 中startAbility方法的Want设置此标志,并且必须与flag_ABILITY_NEW_MISSION一起使用。 |
FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 |
FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。