HarmonyOS API:通用能力的接口
版本:v3.1 Beta
DataAbilityOperation
更新时间: 2023-02-17 09:19
定义dataAbility数据操作方式。
说明
本接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本接口仅可在FA模型下使用
系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel
名称 | 类型 | 必填 | 说明 |
uri | string | 是 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。 |
type | featureAbility.DataAbilityOperationType | 是 | 指示操作类型。 |
valuesBucket? | rdb.ValuesBucket | 否 | 指示要设置的数据值。 |
valueBackReferences? | rdb.ValuesBucket | 否 | 指示包含一组键值对的valuesBucket对象。 |
predicates? | dataAbility.DataAbilityPredicates | 否 | 指示要设置的筛选条件。如果此参数为空,则所有数据记录。 |
predicatesBackReferences? | Map<number, number> | 否 | 指示用作谓词中筛选条件的反向引用。 |
interrupted? | boolean | 否 | 指定是否可以中断批处理操作。 |
expectedCount? | number | 否 | 指示要更新或删除的预期行数。 |
示例:
import featureAbility from '@ohos.ability.featureAbility'
let dataAbilityUri = ("dataability:///com.example.myapplication.TestDataAbility");
let DAHelper;
try {
DAHelper = featureAbility.acquireDataAbilityHelper(dataAbilityUri);
if(DAHelper == null){
console.error('DAHelper is null');
return;
}
} catch (err) {
console.error('acquireDataAbilityHelper fail, error:' + JSON.stringify(err));
return;
}
let valueBucket = {
"name": "DataAbilityHelperTest",
"age": 24,
"salary": 2024.20,
};
let dataAbilityOperation = {
uri: dataAbilityUri,
type: featureAbility.DataAbilityOperationType.TYPE_INSERT,
valuesBucket: valueBucket,
predicates: null,
expectedCount: 1,
PredicatesBackReferences: {},
interrupted: true
}
let operations = [
dataAbilityOperation
];
try {
DAHelper.executeBatch(dataAbilityUri, operations,
(err, data) => {
console.log("executeBatch, data: " + JSON.stringify(data));
}
);
} catch (err) {
console.error('executeBatch fail: ' + JSON.stringify(err));
}
DataAbilityResult
更新时间: 2023-02-17 09:19
定义dataAbility数据操作结果。
说明
本接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本接口仅可在FA模型下使用
系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel
名称 | 类型 | 必填 | 说明 |
uri? | string | 否 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。 |
count? | number | 否 | 指示受操作影响的行数。 |
示例:
import featureAbility from '@ohos.ability.featureAbility'
let dataAbilityUri = ("dataability:///com.example.myapplication.TestDataAbility");
let DAHelper;
try {
DAHelper = featureAbility.acquireDataAbilityHelper(dataAbilityUri);
if(DAHelper == null){
console.error('DAHelper is null');
return;
}
} catch (err) {
console.error('acquireDataAbilityHelper fail, error:' + JSON.stringify(err));
return;
}
let valueBucket = {
"name": "DataAbilityHelperTest",
"age": 24,
"salary": 2024.20,
};
let operations = [
{
uri: dataAbilityUri,
type: featureAbility.DataAbilityOperationType.TYPE_INSERT,
valuesBucket: valueBucket,
predicates: null,
expectedCount: 1,
PredicatesBackReferences: {},
interrupted: true,
},
{
uri: dataAbilityUri,
type: featureAbility.DataAbilityOperationType.TYPE_INSERT,
valuesBucket: valueBucket,
predicates: null,
expectedCount: 1,
PredicatesBackReferences: {},
interrupted: true,
}
];
try {
let promise = DAHelper.executeBatch(dataAbilityUri, operations).then((data) => {
for (let i = 0; i < data.length; i++) {
let dataAbilityResult = data[i];
console.log('dataAbilityResult.uri: ' + dataAbilityResult.uri);
console.log('dataAbilityResult.count: ' + dataAbilityResult.count);
}
}).catch(err => {
console.error('executeBatch error: ' + JSON.stringify(err));
});
} catch (err) {
console.error('executeBatch error: ' + JSON.stringify(err));
}
StartAbilityParameter
更新时间: 2023-03-03 17:21
定义启动Ability参数。
说明
本接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本接口仅可在FA模型下使用
系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel
名称 | 类型 | 必填 | 说明 |
want | Want | 是 | 表示需要包含有关目标启动能力的信息。 |
abilityStartSetting | {[key: string]: any} | 否 | 表示能力的特殊属性,当开发者启动能力时,该属性可以作为调用中的输入参数传递。 |
示例:
import featureAbility from '@ohos.ability.featureAbility'
let Want = {
bundleName: "com.example.abilityStartSettingApp2",
abilityName: "com.example.abilityStartSettingApp.MainAbility",
}
let abilityStartSetting ={
[featureAbility.AbilityStartSetting.BOUNDS_KEY] : [100,200,300,400],
[featureAbility.AbilityStartSetting.WINDOW_MODE_KEY] :
featureAbility.AbilityWindowConfiguration.WINDOW_MODE_UNDEFINED,
[featureAbility.AbilityStartSetting.DISPLAY_ID_KEY] : 1,
}
let startAbilityParameter = {
want:Want,
abilityStartSetting:abilityStartSetting
}
featureAbility.startAbility(startAbilityParameter, (err, data)=>{
console.log('errCode : ' + JSON.stringify(err));
console.log('data : ' + JSON.stringify(data));
}).catch(error => {
console.log("startAbility error: " + JSON.stringify(error));
})
Want
更新时间: 2023-02-17 09:19
Want是对象间信息传递的载体, 可以用于应用组件间的信息传递。 Want的使用场景之一是作为startAbility的参数, 其包含了指定的启动目标, 以及启动时需携带的相关数据, 如bundleName和abilityName字段分别指明目标Ability所在应用的包名以及对应包内的Ability名称。当Ability A需要启动Ability B并传入一些数据时, 可使用Want作为载体将这些数据传递给Ability B。
说明
本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityBase
名称 | 类型 | 必填 | 说明 |
deviceId | string | 否 | 表示运行指定Ability的设备ID。 |
bundleName | string | 否 | 表示包名。如果在Want中同时指定了BundleName和AbilityName,则Want可以直接匹配到指定的Ability。 |
abilityName | string | 否 | 表示待启动的Ability名称。如果在Want中该字段同时指定了BundleName和AbilityName,则Want可以直接匹配到指定的Ability。AbilityName需要在一个应用的范围内保证唯一。 |
uri | string | 否 | 表示Uri。如果在Want中指定了Uri,则Want将匹配指定的Uri信息,包括scheme, schemeSpecificPart, authority和path信息。 |
type | string | 否 | 表示MIME type类型,打开文件的类型,主要用于文管打开文件。比如:"text/xml" 、 "image/*"等,MIME定义参考:https://www.iana.org/assignments/media-types/media-types.xhtml?utm_source=ld246.com。 |
flags | number | 否 | 表示处理Want的方式。默认传数字,具体参考:flags说明。 |
action | string | 否 | 表示要执行的通用操作(如:查看、分享、应用详情)。在隐式Want中,您可以定义该字段,配合uri或parameters来表示对数据要执行的操作。 |
parameters | {[key: string]: any} | 否 | 表示WantParams,由开发者自行决定传入的键值对。默认会携带以下key值: ohos.aafwk.callerPid 表示拉起方的pid。 ohos.aafwk.param.callerToken 表示拉起方的token。 ohos.aafwk.param.callerUid 表示bundleInfo中的uid,应用包里应用程序的uid。 |
entities | Array<string> | 否 | 表示目标Ability额外的类别信息(如:浏览器、视频播放器),在隐式Want中是对action字段的补充。在隐式Want中,您可以定义该字段,来过滤匹配Ability类型。 |
moduleName9+ | string | 否 | 表示待启动的Ability所属的模块(module)。 |
示例:
- 基础用法
var want = {
"deviceId": "", // deviceId为空表示本设备
"bundleName": "com.extreme.test",
"abilityName": "MainAbility",
"moduleName": "entry" // moduleName非必选
};
this.context.startAbility(want, (error) => {
// 显式拉起Ability,通过bundleName、abilityName和moduleName可以唯一确定一个Ability
console.log("error.code = " + error.code)
})
- 传递FD数据,FD表示文件描述符(FileDescriptor)
import fileio from '@ohos.fileio';
var fd;
try {
fd = fileio.openSync("/data/storage/el2/base/haps/pic.png");
} catch(e) {
console.log("openSync fail:" + JSON.stringify(e));
}
var want = {
"deviceId": "", // deviceId为空表示本设备
"bundleName": "com.extreme.test",
"abilityName": "MainAbility",
"moduleName": "entry", // moduleName非必选
"parameters": {
"keyFd":{"type":"FD", "value":fd}
}
};
this.context.startAbility(want, (error) => {
// 显式拉起Ability,通过bundleName、abilityName和moduleName可以唯一确定一个Ability
console.log("error.code = " + error.code)
})