电子说
AbilityContext是Ability的上下文环境,继承自Context。
AbilityContext模块提供允许访问特定于ability的资源的能力,包括对Ability的启动、停止的设置、获取caller通信接口、拉起弹窗请求用户授权等。
说明:
本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块接口仅可在Stage模型下使用。
在使用AbilityContext的功能前,需要通过Ability子类实例获取。
import Ability from '@ohos.application.Ability'
class MainAbility extends Ability {
onWindowStageCreate(windowStage) {
let context = this.context;
}
}
开发前请熟悉鸿蒙开发指导文档:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]点击或者复制转到。
系统能力 :以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
名称 | 参数类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
abilityInfo | AbilityInfo | 是 | 否 | Abilityinfo相关信息 |
currentHapModuleInfo | HapModuleInfo | 是 | 否 | 当前hap包的信息 |
config | [Configuration] | 是 | 否 | 表示配置信息。 |
startAbility(want: Want, callback: AsyncCallback): void
启动Ability。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | [Want] | 是 | 启动Ability的want信息。 |
callback | AsyncCallback | 是 | callback形式返回启动结果 |
示例:
var want = {
"deviceId": "",
"bundleName": "com.extreme.test",
"abilityName": "MainAbility"
};
this.context.startAbility(want, (error) = > {
console.log("error.code = " + error.code)
})
startAbility(want: Want, options: StartOptions, callback: AsyncCallback): void
启动Ability。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | [Want] | 是 | 启动Ability的want信息。 |
options | StartOptions | 是 | 启动Ability所携带的参数。 |
callback | AsyncCallback | 是 | callback形式返回启动结果。 |
示例:
var want = {
"deviceId": "",
"bundleName": "com.extreme.test",
"abilityName": "MainAbility"
};
var options = {
windowMode: 0,
};
this.context.startAbility(want, options, (error) = > {
console.log("error.code = " + error.code)
})
startAbility(want: Want, options?: StartOptions): Promise;
启动Ability。通过Promise返回结果。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | [Want] | 是 | 启动Ability的want信息。 |
options | StartOptions | 否 | 启动Ability所携带的参数。 |
返回值:
类型 | 说明 |
---|---|
Promise | Promise形式返回启动结果。 |
示例:
var want = {
"deviceId": "",
"bundleName": "com.extreme.test",
"abilityName": "MainAbility"
};
var options = {
windowMode: 0,
};
this.context.startAbility(want, options)
.then((data) = > {
console.log('Operation successful.')
}).catch((error) = > {
console.log('Operation failed.');
})
startAbilityForResult(want: Want, callback: AsyncCallback): void;
启动Ability并在结束的时候返回执行结果。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | [Want] | 是 | 启动Ability的want信息。 |
callback | AsyncCallback[AbilityResult | 是 | 执行结果回调函数。 |
示例:
this.context.startAbilityForResult(
{bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo2"},
(error, result) = > {
console.log("startAbilityForResult AsyncCallback is called, error.code = " + error.code)
console.log("startAbilityForResult AsyncCallback is called, result.resultCode = " + result.resultCode)
}
);
startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback): void;
启动Ability并在结束的时候返回执行结果。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | [Want] | 是 | 启动Ability的want信息。 |
options | StartOptions | 是 | 启动Ability所携带的参数。 |
callback | AsyncCallback[AbilityResult] | 是 | 执行结果回调函数。 |
示例:
var options = {
windowMode: 0,
};
this.context.startAbilityForResult(
{bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo2"}, options,
(error, result) = > {
console.log("startAbilityForResult AsyncCallback is called, error.code = " + error.code)
console.log("startAbilityForResult AsyncCallback is called, result.resultCode = " + result.resultCode)
}
);
startAbilityForResult(want: Want, options?: StartOptions): Promise;
启动Ability并在结束的时候返回执行结果。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | [Want] | 是 | 启动Ability的want信息。 |
options | StartOptions | 否 | 启动Ability所携带的参数。 |
返回值:
类型 | 说明 |
---|---|
Promise[AbilityResult] | Promise形式返回执行结果。 |
示例:
var options = {
windowMode: 0,
};
this.context.startAbilityForResult({bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo2"}, options).then((result) = > {
console.log("startAbilityForResult Promise.resolve is called, result.resultCode = " + result.resultCode)
}, (error) = > {
console.log("startAbilityForResult Promise.Reject is called, error.code = " + error.code)
})
startAbilityForResultWithAccount(want: Want, accountId: number, callback: AsyncCallback): void;
启动一个Ability并在该Ability帐号销毁时返回执行结果(callback形式)。
需要权限 : ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
系统API : 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | [Want] | 是 | 启动Ability的want信息。 |
accountId | number | 是 | 需要启动的accountId。 |
callback | AsyncCallback | 是 | 启动Ability的回调函数,返回Ability结果。 |
示例:
var want = {
"deviceId": "",
"bundleName": "com.extreme.test",
"abilityName": "MainAbility"
};
var accountId = 100;
this.context.startAbilityWithAccount(want, accountId, (err, data) = > {
console.log('---------- startAbilityWithAccount fail, err: -----------', err);
console.log('---------- startAbilityWithAccount success, data: -----------', data);
});
startAbilityForResultWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback): void;
启动一个Ability并在该Ability帐号销毁时返回执行结果(callback形式)。
需要权限 : ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
系统API : 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | [Want] | 是 | 启动Ability的want信息。 |
accountId | number | 是 | 需要启动的accountId。 |
options | [StartOptions] | 是 | 启动Ability所携带的参数。 |
callback | AsyncCallback | 是 | 启动Ability的回调函数。 |
示例:
var want = {
"deviceId": "",
"bundleName": "com.extreme.test",
"abilityName": "MainAbility"
};
var accountId = 100;
var options = {
windowMode: 0,
};
this.context.startAbilityForResultWithAccount(want, accountId, options, (err) = > {
console.log('---------- startAbilityForResultWithAccount fail, err: -----------', err);
});
startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartOptions): Promise;
启动一个Ability并在该Ability帐号销毁时返回执行结果(callback形式)。
需要权限 : ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
系统API : 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | [Want] | 是 | 启动Ability的want信息。 |
accountId | number | 是 | 需要启动的accountId。 |
options | [StartOptions] | 否 | 启动Ability所携带的参数。 |
返回值:
类型 | 说明 |
---|---|
Promise | 返回一个Promise,包含Ability结果。 |
示例:
var want = {
"deviceId": "",
"bundleName": "com.extreme.test",
"abilityName": "MainAbility"
};
var accountId = 100;
var options = {
windowMode: 0,
};
this.context.startAbilityForResultWithAccount(want, accountId, options)
.then((data) = > {
console.log('---------- startAbilityForResultWithAccount success, data: -----------', data);
})
.catch((err) = > {
console.log('---------- startAbilityForResultWithAccount fail, err: -----------', err);
})
terminateSelf(callback: AsyncCallback): void;
停止Ability自身。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback | 是 | 回调函数,返回接口调用是否成功的结果。 |
示例:
this.context.terminateSelf((err) = > {
console.log('terminateSelf result:' + JSON.stringify(err));
});
terminateSelf(): Promise;
停止Ability自身。通过Promise返回结果。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
返回值:
类型 | 说明 |
---|---|
Promise | 返回一个Promise,包含接口的结果。 |
示例:
this.context.terminateSelf().then((data) = > {
console.log('success:' + JSON.stringify(data));
}).catch((error) = > {
console.log('failed:' + JSON.stringify(error));
});
terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback): void;
停止Ability,并返回给调用startAbilityForResult 接口调用方的相关信息。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
parameter | [AbilityResult] | 是 | 返回给调用startAbilityForResult 接口调用方的相关信息。 |
callback | AsyncCallback | 是 | callback形式返回停止结果。 |
示例:
this.context.terminateSelfWithResult(
{
want: {bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo"},
resultCode: 100
}, (error) = > {
console.log("terminateSelfWithResult is called = " + error.code)
}
);
terminateSelfWithResult(parameter: AbilityResult): Promise;
停止Ability,并返回给调用startAbilityForResult 接口相关信息。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
parameter | [AbilityResult] | 是 | 返回给startAbilityForResult 调用方的信息。 |
返回值:
类型 | 说明 |
---|---|
Promise | promise形式返回停止结果。 |
示例:
this.context.terminateSelfWithResult(
{
want: {bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo"},
resultCode: 100
}).then((result) = > {
console.log("terminateSelfWithResult")
}
)
connectAbility(want: Want, options: ConnectOptions): number;
使用AbilityInfo.AbilityType.SERVICE模板将当前能力连接到一个能力。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
系统API : 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | [Want] | 是 | 启动Ability的want信息。 |
options | [ConnectOptions] | 否 | 远端对象实例。 |
返回值:
类型 | 说明 |
---|---|
number | 返回Ability连接的结果code。 |
示例:
var want = {
"deviceId": "",
"bundleName": "com.extreme.test",
"abilityName": "MainAbility"
};
var options = {
onConnect(elementName, remote) { console.log('----------- onConnect -----------') },
onDisconnect(elementName) { console.log('----------- onDisconnect -----------') },
onFailed(code) { console.log('----------- onFailed -----------') }
}
const result = this.context.connectAbility(want, options);
console.log('----------- connectAbilityResult: ------------', result);
connectAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number;
使用AbilityInfo.AbilityType.SERVICE模板和account将当前能力连接到一个能力。
需要权限: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
系统API : 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | [Want] | 是 | 启动Ability的want信息。 |
accountId | number | 是 | 需要启动的accountId。 |
options | [ConnectOptions] | 否 | 远端对象实例。 |
返回值:
类型 | 说明 |
---|---|
number | 返回Ability连接的结果code。 |
示例:
var want = {
"deviceId": "",
"bundleName": "com.extreme.test",
"abilityName": "MainAbility"
};
var accountId = 100;
var options = {
onConnect(elementName, remote) { console.log('----------- onConnect -----------') },
onDisconnect(elementName) { console.log('----------- onDisconnect -----------') },
onFailed(code) { console.log('----------- onFailed -----------') }
}
const result = this.context.connectAbilityWithAccount(want, accountId, options);
console.log('----------- connectAbilityResult: ------------', result);
disconnectAbility(connection: number): Promise;
已成功连接接口。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
系统API : 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
connection | number | 是 | 连接的能力的数字代码。 |
返回值:
类型 | 说明 |
---|---|
Promise | 返回执行结果。 |
示例:
var connectionNumber = 0;
this.context.disconnectAbility(connectionNumber).then((data) = > {
console.log('disconnectAbility success, data: ', data);
}).catch((err) = > {
console.log('disconnectAbility fail, err: ', err);
});
disconnectAbility(connection: number, callback:AsyncCallback): void;
已成功连接接口。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
系统API : 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
connection | number | 是 | 连接的能力的数字代码。 |
callback | AsyncCallback | 是 | 表示指定的回调方法。 |
示例:
var connectionNumber = 0;
this.context.disconnectAbility(connectionNumber, (err) = > {
console.log('---------- disconnectAbility fail, err: -----------', err);
});
startAbilityByCall(want: Want): Promise;
获取指定通用组件服务端的caller通信接口, 并且将指定通用组件服务端拉起并切换到后台。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | [Want] | 是 | 传入需要启动的ability的信息,包含ability名称、包名、设备ID,设备ID缺省或为空表示启动本地ability。 |
返回值:
类型 | 说明 |
---|---|
Promise | 获取要通讯的caller对象。 |
示例:
import Ability from '@ohos.application.Ability';
var caller;
export default class MainAbility extends Ability {
onWindowStageCreate(windowStage) {
this.context.startAbilityByCall({
bundleName: "com.example.myservice",
abilityName: "MainAbility",
deviceId: ""
}).then((obj) = > {
caller = obj;
console.log('Caller GetCaller Get ' + caller);
}).catch((e) = > {
console.log('Caller GetCaller error ' + e);
});
}
}
startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback): void;
根据account启动Ability(callback形式)。
需要权限 : ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
系统API : 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | [Want] | 是 | 启动Ability的want信息。 |
accountId | number | 是 | 需要启动的accountId。 |
callback | AsyncCallback | 是 | 启动Ability的回调函数。 |
示例:
var want = {
"deviceId": "",
"bundleName": "com.extreme.test",
"abilityName": "MainAbility"
};
var accountId = 100;
this.context.startAbilityWithAccount(want, accountId, (err) = > {
console.log('---------- startAbilityWithAccount fail, err: -----------', err);
});
startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback): void;
根据account启动Ability(callback形式)。
需要权限 : ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
系统API : 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | [Want] | 是 | 启动Ability的want信息。 |
accountId | number | 是 | 需要启动的accountId。 |
options | [StartOptions] | 否 | 启动Ability所携带的参数。 |
callback | AsyncCallback | 是 | 启动Ability的回调函数。 |
示例:
var want = {
"deviceId": "",
"bundleName": "com.extreme.test",
"abilityName": "MainAbility"
};
var accountId = 100;
var options = {
windowMode: 0,
};
this.context.startAbilityWithAccount(want, accountId, options, (err) = > {
console.log('---------- startAbilityWithAccount fail, err: -----------', err);
});
startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise;
根据account启动Ability(Promise形式)。
需要权限 : ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
系统API : 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | [Want] | 是 | 启动Ability的want信息。 |
accountId | number | 是 | 需要启动的accountId。 |
options | [StartOptions] | 否 | 启动Ability所携带的参数。 |
示例:
var want = {
"deviceId": "",
"bundleName": "com.extreme.test",
"abilityName": "MainAbility"
};
var accountId = 100;
var options = {
windowMode: 0,
};
this.context.startAbilityWithAccount(want, accountId, options)
.then((data) = > {
console.log('---------- startAbilityWithAccount success, data: -----------', data);
})
.catch((err) = > {
console.log('---------- startAbilityWithAccount fail, err: -----------', err);
})
requestPermissionsFromUser(permissions: Array, requestCallback: AsyncCallback) : void;
拉起弹窗请求用户授权。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
permissions | Array | 是 | 权限列表。 |
callback | AsyncCallback[PermissionRequestResult] | 是 | 回调函数,返回接口调用是否成功的结果。 |
示例:
var permissions=['com.example.permission']
this.context.requestPermissionsFromUser(permissions,(result) = > {
console.log('requestPermissionsFromUserresult:' + JSON.stringify(result));
});
requestPermissionsFromUser(permissions: Array) : Promise;
拉起弹窗请求用户授权。通过Promise返回结果。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
permissions | Array | 是 | 权限列表。 |
返回值:
类型 | 说明 |
---|---|
Promise[PermissionRequestResult] | 返回一个Promise,包含接口的结果。 |
示例:
var permissions=['com.example.permission']
this.context.requestPermissionsFromUser(permissions).then((data) = > {
console.log('success:' + JSON.stringify(data));
}).catch((error) = > {
console.log('failed:' + JSON.stringify(error));
});
setMissionLabel(label: string, callback:AsyncCallback): void;
设置ability在任务中显示的名称。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
label | string | 是 | 显示名称。 |
callback | AsyncCallback | 是 | 回调函数,返回接口调用是否成功的结果。 |
示例:
this.context.setMissionLabel("test",(result) = > {
console.log('requestPermissionsFromUserresult:' + JSON.stringify(result));
});
setMissionLabel(label: string): Promise
设置ability在任务中显示的名称。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
label | string | 是 | 显示名称。 |
返回值:
类型 | 说明 |
---|---|
Promise | 返回一个Promise,包含接口的结果。 |
示例:
this.context.setMissionLabel("test").then((data) = > {
console.log('success:' + JSON.stringify(data));
}).catch((error) = > {
console.log('failed:' + JSON.stringify(error));
});
setMissionIcon(icon: image.PixelMap, callback:AsyncCallback): void;
设置当前ability的任务标签。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
系统API : 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
icon | image.PixelMap | 是 | 在最近的任务中显示的能力图标。 |
callback | AsyncCallback | 是 | 指定的回调函数的结果。 |
示例:
import image from '@ohos.multimedia.image'
var imagePixelMap;
var color = new ArrayBuffer(0);
var 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);
})
setMissionIcon(icon: image.PixelMap): Promise;
设置当前ability的任务标签。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
系统API : 此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
icon | image.PixelMap | 是 | 在最近的任务中显示的能力图标。 |
返回值:
类型 | 说明 |
---|---|
Promise | 返回一个Promise,包含接口的结果。 |
示例:
import image from '@ohos.multimedia.image'
var imagePixelMap;
var color = new ArrayBuffer(0);
var 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((data) = > {
console.log('-------------- setMissionIcon success, data: -------------', data);
})
.catch((err) = > {
console.log('-------------- setMissionIcon fail, err: -------------', err);
});
restoreWindowStage(localStorage: LocalStorage) : void;
恢复ability中的window stage数据。
系统能力 :SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
localStorage | image.LocalStorage | 是 | 用于恢复window stage的存储数据。 |
示例:
var storage = new LocalStorage();
this.context.restoreWindowStage(storage);
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !