0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发Ability Kit程序框架服务:DataAbility切换 组件切换

jf_46214456 ? 来源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-28 14:08 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

DataAbility切换

FA模型中的DataAbility对应Stage模型中的DataShareExtensionAbility。

与ServiceExtensionAbility类似,Stage模型下的DataShareExtensionAbility为系统API,只有系统应用才可以创建。因此,FA模型的DataAbility的切换,对于系统应用和三方应用策略有所不同。下面分别介绍这两种场景。

系统应用DataAbility切换至DataShareExtensionAbility

迁移步骤和PageAbility基本一致。

  1. 在Stage应用中创建DataShareExtensionAbility。
  2. 将FA应用中DataAbility的业务代码迁移到新创建的DataShareExtensionAbility中。 DataAbility和DataShareExtensionAbility生命周期对比见下表。
  3. 开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
    FA的DataAbilityStage的DataShareExtensionAbility对比描述
    onInitialized?(info: AbilityInfo): voidonCreate?(want: Want, callback: AsyncCallback): void两者调用时机一致,函数名即入参都不一样,Stage模型下增加了入参want以便开发者在创建时获取参数。
    update?(uri: string, valueBucket: rdb.ValuesBucket, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): voidupdate?(uri: string, predicates: dataSharePredicates.DataSharePredicates, value: ValuesBucket, callback: AsyncCallback): void两者意义和调用时机一致,参数顺序和参数类型略有不同,需要简单改造。
    query?(uri: string, columns: Array, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): voidquery?(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array, callback: AsyncCallback): void;两者意义和调用时机一致,参数顺序和参数类型略有不同,需要简单改造。
    delete?(uri: string, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): voiddelete?(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback):两者意义和调用时机一致,参数类型略有不同,需要简单改造。
    normalizeUri?(uri: string, callback: AsyncCallback): voidnormalizeUri?(uri: string, callback: AsyncCallback): void两者意义和调用时机一致,参数也一致。
    batchInsert?(uri: string, valueBuckets: Array, callback: AsyncCallback): voidbatchInsert?(uri: string, values: Array, callback: AsyncCallback): void两者意义和调用时机一致,参数类型略有不同,需要简单改造。
    denormalizeUri?(uri: string, callback: AsyncCallback): voiddenormalizeUri?(uri: string, callback: AsyncCallback): void两者意义和调用时机一致,参数也一致。
    insert?(uri: string, valueBucket: rdb.ValuesBucket, callback: AsyncCallback): voidinsert?(uri: string, value: ValuesBucket, callback: AsyncCallback): void两者意义和调用时机一致,参数类型略有不同,需要简单改造。
    openFile?(uri: string, mode: string, callback: AsyncCallback): voidNAStage模型不支持uri跨进程访问,建议通过[want携带FD和文件信息]进行跨进程文件访问。
    getFileTypes?(uri: string, mimeTypeFilter: string, callback: AsyncCallback>): voidNAStage模型不支持uri跨进程访问,建议通过[want携带FD和文件信息]进行跨进程文件访问。
    getType?(uri: string, callback: AsyncCallback): voidNAStage模型不支持uri跨进程访问,建议通过[want携带FD和文件信息]进行跨进程文件访问。
    executeBatch?(ops: Array, callback: AsyncCallback>): voidNADataShareExtensonAbility不提供该接口,开发者需根据业务功能重新实现。
    call?(method: string, arg: string, extras: PacMap, callback: AsyncCallback): voidNAHarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿
    DataShareExtensonAbility不提供该接口,开发者需根据业务功能重新实现。

搜狗高速浏览器截图20240326151547.png

三方应用DataAbility改造为公共模块

Stage模型三方应用不能对其他三方提供数据,应用需要根据具体业务选择切换方案。

DataAbility业务类型切换DataShareExtension策略
对三方提供数据需根据业务场景匹配到系统对应的场景化[ExtensionAbility]。
应用内使用的数据对应用内其他组件提供数据,建议提取公共模块。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 组件
    +关注

    关注

    1

    文章

    533

    浏览量

    18520
  • 鸿蒙
    +关注

    关注

    60

    文章

    2658

    浏览量

    44362
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FA模型的DataAbility切换介绍

    开发者需根据业务功能重新实现。 三方应用DataAbility改造为公共模块 Stage模型三方应用不能对其他三方提供数据,应用需要根据具体业务选择切换方案。 DataAbility
    发表于 06-06 08:10

    从FA模型切换到Stage模型时:module的切换说明

    form_config.json。 srcLanguageAbility开发语言的类型。/Stage模型不支持。 srcPath该标签标识Ability对应的JS组件代码路径。srcEntry该标签标识
    发表于 06-05 08:16

    如何将一个FA模型开发的声明式范式应用切换到Stage模型

    为app.json5和module.json5。 组件切换:PageAbility/ServiceAbility/DataAbility切换为UIAbility和ExtensionAb
    发表于 06-04 06:22

    DataAbility组件概述介绍

    DataAbility组件概述 DataAbility,即\"使用Data模板的Ability\",主要用于对外部提供统一的数据访问抽象,不提供用户交互界面
    发表于 05-28 08:19

    鸿蒙应用元服务开发-Account Kit获取手机号

    一、概述 当元服务需要获取用户手机号时,可通过调用Scenario Fusion Kit提供的Button组件,引导用户完成手机号授权。 Scenario Fusion Kit通过提供
    发表于 04-08 16:14

    鸿蒙应用元服务开发-Account Kit获取收货地址

    Fusion Kit对应的Button组件并设置openType为CHOOSE_ADDRESS,打开华为账号收货地址管理页面。 用户可以在收货地址管理页面添加新的收货地址或者选择已有收货地址,点击确认后
    发表于 04-07 17:15

    鸿蒙应用元服务开发-Account Kit获取华为账号用户信息概述

    获取与展示。 (二)业务流程 流程说明: 元服务调用Scenario Fusion Kit对应的Button组件,选择CHOOSE_AVATAR模式。 用户点击Button,拉起头像选择页面。 用户有
    发表于 04-02 11:10

    鸿蒙应用元服务开发-Account Kit获发票抬头

    一、场景介绍 当元服务需要获取用户发票抬头时,可使用选择发票抬头Button,帮助用户打开发票抬头选择页面进行选择或管理发票抬头。 二、业务流程 流程说明: 用户需要使用发票抬头时,元服务通过调用
    发表于 04-01 15:26

    HarmonyOS NEXT应用元服务开发Intents Kit(意图框架服务)综述

    一、综述 Intents Kit(意图框架服务)是HarmonyOS级的意图标准体系 ,意图连接了应用/元服务内的业务功能。 意图框架能帮
    发表于 11-28 10:43

    HarmonyOS NEXT应用元服务开发Intents Kit(意图框架服务)习惯推荐方案开发者测试

    华为意图框架接口同事提交后端接口文档,华为同事会配合开发者进行联调。 . 本文主要参考鸿蒙官方网站材料
    发表于 11-25 17:37

    HarmonyOS NEXT应用元服务开发Intents Kit(意图框架服务)习惯推荐方案概述

    。 卡片展示效果 意图框架提供各垂域习惯推荐在小艺建议中展示使用的标准模板卡片,开发者无需开发展示卡片。在展示模板上,会展示应用/元服务名称与logo和内容必要信息,比如音乐名、音乐图
    发表于 11-19 17:59

    HarmonyOS NEXT应用元服务开发Intents Kit(意图框架服务)事件推荐开发者测试

    意图框架开发者提供真机测试能力,即开发者可连接设备进行调测。开发者完成代码开发之后,功能正式上架应用市场前,可以在HarmonyOS NE
    发表于 11-18 17:39

    鸿蒙原生开发手记:01-元服务开发

    简介 元服务鸿蒙中的一种轻量应用形态,无需下载,直接运行。类似于微信小程序,但与小程序不同的是,元服务更加轻量。 元
    发表于 11-14 17:28

    HarmonyOS NEXT应用元服务开发Intents Kit(意图框架服务)事件推荐接入方案

    一、方案概述 当开发者有事件想要通知到用户时,可通过应用/元服务的云侧服务器向智慧分发平台推送事件内容(意图共享)。系统通过智慧决策判断事件发生的条件,在满足条件时,向用户推荐事件提醒卡片,当用
    发表于 11-14 15:26

    HarmonyOS NEXT应用元服务开发Intents Kit(意图框架服务)本地搜索方案概述

    一、概述 本地搜索是在HarmonyOS归一化搜索特性,开发者将应用/元服务内的功能和内容通过意图框架共享到HarmonyOS,即可实现“一步搜索,内容直达”。 二、典型场景 以“音乐垂域”的“歌曲
    发表于 11-06 10:59