HarmonyOS 标准化数据通路中如何删除指定的数据内容

在官网的标准化数据通路的示例中删除存储在UDMF公共数据通路中的数据对象中时,options只写了intention并没有指定删除的参数。如何实现有多个共享数据指定删除其中一条?

参考示例:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/unified-data-channels-V5#%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E

// 指定要删除数据的数据通路枚举类型
let options: unifiedDataChannel.Options = {
  intention: unifiedDataChannel.Intention.DATA_HUB
};

try {
  unifiedDataChannel.deleteData(options, (err, data) => {
    if (err === undefined) {
      console.info(`Succeeded in deleting data. size = ${data.length}`);
      for (let i = 0; i < data.length; i++) {
        let records = data[i].getRecords();
        for (let j = 0; j < records.length; j++) {
          if (records[j].getType() === uniformTypeDescriptor.UniformDataType.PLAIN_TEXT) {
            let text = records[j] as unifiedDataChannel.PlainText;
            console.info(`${i + 1}.${text.textContent}`);
          }
        }
      }
    } else {
      console.error(`Failed to delete data. code is ${err.code},message is ${err.message} `);
    }
  });
} catch (e) {
  let error: BusinessError = e as BusinessError;
  console.error(`Delete data throws an exception. code is ${error.code},message is ${error.message} `);
}
HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

参考unifiedDataChannel.deleteData中的Options说明配置项参数,key和intention均为可选,根据传入的参数做相应的校验以返回不同的值。在共享的文件在公共数据通路中,数据提供方可以通过UMDF提供的insertData接口将数据写入公共数据通路,获取到的返回值(生成的数据的唯一标识符),可用于对其插入的数据进行更新和删除操作。

参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-data-unifieddatachannel-V5#unifieddatachanneldeletedata

参考demo:

import { unifiedDataChannel } from '@kit.ArkData';
import { uniformTypeDescriptor } from '@kit.ArkData';
import { BusinessError } from '@kit.BasicServicesKit';

let options: unifiedDataChannel.Options = {
  key: 'xxx'
};

try {
  unifiedDataChannel.deleteData(options).then((data) => {
    console.info(`Succeeded in deleting data. size = ${data.length}`);
    for (let i = 0; i < data.length; i++) {
      let records = data[i].getRecords();
      for (let j = 0; j < records.length; j++) {
        if (records[j].getType() === uniformTypeDescriptor.UniformDataType.PLAIN_TEXT) {
          let text = records[j] as unifiedDataChannel.PlainText;
          console.info(`${i + 1}.${text.textContent}`);
        }
      }
    }
  }).catch((err: BusinessError) => {
    console.error(`Failed to delete data. code is ${err.code},message is ${err.message} `);
  });
} catch (e) {
  let error: BusinessError = e as BusinessError;
  console.error(`Query data throws an exception. code is ${error.code},message is ${error.message} `);
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 标准化数据通路删除异常
10浏览 • 1回复 待解决
标准化数据通路UDMF传输限制问题
496浏览 • 1回复 待解决
如何删除preferences缓存数据
684浏览 • 1回复 待解决
PolarDB 如何进行数据通信?
3083浏览 • 1回复 待解决
卡片开发如何实现数据持久
2361浏览 • 1回复 待解决
HarmonyOS 怎么使用webview建立数据通
161浏览 • 1回复 待解决
HarmonyOS 懒加载数据删除问题
609浏览 • 1回复 待解决
HarmonyOS 数据持久demo
148浏览 • 1回复 待解决