HarmonyOS API:FA模型能力接口

joytrian
发布于 2023-3-31 17:46
浏览
0收藏

版本:v3.1 Beta

@ohos.ability.ability (Ability)

更新时间: 2023-03-30 17:37


Ability模块将二级模块API组织在一起方便开发者进行导出。


说明

本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


本模块接口仅可在FA模型下使用

导入模块

import ability from '@ohos.ability.ability'


系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityBase

名称

类型

必填

描述

DataAbilityHelper

​DataAbilityHelper​

DataAbilityHelper二级模块。

PacMap

​PacMap​

PacMap二级模块。

DataAbilityOperation

​DataAbilityOperation​

DataAbilityOperation二级模块。

DataAbilityResult

​DataAbilityResult​

DataAbilityResult二级模块。

AbilityResult

​AbilityResult​

AbilityResult二级模块。

ConnectOptions

​ConnectOptions​

ConnectOptions二级模块。

StartAbilityParameter

​StartAbilityParameter​

StartAbilityParameter二级模块。

示例:

import ability from '@ohos.ability.ability';

let dataAbilityHelper: ability.DataAbilityHelper;
let pacMap: ability.PacMap;
let dataAbilityOperation: ability.DataAbilityOperation;
let dataAbilityResult: ability.DataAbilityResult;
let abilityResult: ability.AbilityResult;
let connectOptions: ability.ConnectOptions;  
let startAbilityParameter: ability.StartAbilityParameter;

@ohos.ability.featureAbility (FeatureAbility模块)

更新时间: 2023-02-17 09:19


FeatureAbility模块提供带有UI设计与用户交互的能力,包括启动新的ability、获取dataAbilityHelper、设置此Page Ability、获取当前Ability对应的窗口,连接服务等。


说明

本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


本模块接口仅可在FA模型下使用。

使用限制

FeatureAbility模块的接口只能在Page类型的Ability调用

导入模块

import featureAbility from '@ohos.ability.featureAbility';

featureAbility.startAbility

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));
    }
);

featureAbility.startAbility

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));
});

featureAbility.acquireDataAbilityHelper7+

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"
);

featureAbility.startAbilityForResult7+

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));
    }
);

featureAbility.startAbilityForResult7+

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));
});

featureAbility.terminateSelfWithResult7+

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))
    }
);

featureAbility.terminateSelfWithResult7+

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=======================>");
});

featureAbility.hasWindowFocus7+

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));
});

featureAbility.hasWindowFocus7+

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));
});

featureAbility.getWant

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));
});

featureAbility.getWant

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));
});

featureAbility.getContext

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));
});

featureAbility.terminateSelf7+

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))
    }
)

featureAbility.terminateSelf7+

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=======================>");
});

featureAbility.connectAbility7+

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,
    },
);

featureAbility.disconnectAbility7+

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,
    },
);
var result = featureAbility.disconnectAbility(connectId,
    (error) => {
        console.log('featureAbilityTest DisConnectJsSameBundleName result errCode : ' + error.code)
    },
);

featureAbility.disconnectAbility7+

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);
});

featureAbility.getWindow7+

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));
});

featureAbility.getWindow7+

getWindow(): Promise<window.Window>;

获取当前Ability对应的窗口(Promise形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

返回值:

类型

说明

Promise<window.Window>

返回与当前Ability对应的窗口。

示例:

featureAbility.getWindow().then((data) => {
    console.info("getWindow data: " + typeof(data));
});

AbilityWindowConfiguration

使用时通过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

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属性的参数名。

ErrorCode

获取错误代码。

系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel

名称

说明

NO_ERROR7+

0

没有错误。

INVALID_PARAMETER7+

-1

无效的参数。

ABILITY_NOT_FOUND7+

-2

找不到能力。

PERMISSION_DENY7+

-3

拒绝许可。

DataAbilityOperationType

指示数据的操作类型。

系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel

名称

说明

TYPE_INSERT7+

1

插入类型。

TYPE_UPDATE7+

2

修改类型。

TYPE_DELETE7+

3

删除类型。

TYPE_ASSERT7+

4

声明类型。

flags说明

系统能力:以下各项对应的系统能力均为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_ABILITYSLICE_MULTI_DEVICE

0x00000100

支持分布式调度系统中的多设备启动。

FLAG_ABILITY_CONTINUATION_REVERSIBLE

0x00000400

表示迁移是可拉回的。

FLAG_INSTALL_ON_DEMAND

0x00000800

如果未安装指定的功能,请安装该功能。

FLAG_INSTALL_WITH_BACKGROUND_MODE

0x80000000

如果未安装,使用后台模式安装该功能。

FLAG_ABILITY_CLEAR_MISSION

0x00008000

指示清除其他任务的操作。可以为传递给startAbility方法的Want设置此标志,并且必须与flag_ABILITY_NEW_MISSION一起使用。

FLAG_ABILITY_NEW_MISSION

0x10000000

指示在历史任务堆栈上创建任务的操作。

FLAG_ABILITY_MISSION_TOP

0x20000000

指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。


文章转载自:​​https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/js-apis-ability-featureability-0000001478181545-V3?catalogVersion=V3#ZH-CN_TOPIC_0000001478181545__使用限制​

分类
已于2023-3-31 17:46:18修改
收藏
回复
举报
回复