HarmonyOS API:通用能力的接口

joytrian
发布于 2023-4-2 09:38
浏览
0收藏

版本: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)
  })


文章转载自:​​https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/js-apis-inner-ability-want-0000001428061892-V3?catalogVersion=V3​

已于2023-4-2 09:38:45修改
收藏
回复
举报
回复