HarmonyOS 鸿蒙Next中应用间共享配置

HarmonyOS 鸿蒙Next中应用间共享配置 目前有一个应用A,应用B 需要通过应用共享配置来共享应用B的版本号

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/share-config#%E9%85%8D%E7%BD%AE%E8%AE%BF%E9%97%AE%E6%96%B9%E6%8E%A5%E5%8F%A3

查阅文档发现配置发布方的module.json5文件中的crossAppSharedConfig字段中有一项allowList为允许访问该共享配置项的应用程序列表,其中数组中每个元素为应用的appIdentifier

cke_6233.png

这里说appIdentifier是不同设备上的时候字段不一样,让我很难理解

难道说为了实现应用间共享配置,我要把我手头、用户的每台appIdentifier都加进去吗?那这样子肯定就不能稳定的实现应用间共享配置了把


更多关于HarmonyOS 鸿蒙Next中应用间共享配置的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

开发者您好,appIdentifier是不同设备上的时候字段不一样:这个只是在自动签名的基础上是这样的。

如果想要通过应用共享配置来共享应用B的版本号,建议您这边使用手动签名:

采用手动签名,并通过AppGallery Connect平台申请证书,此时申请调试Profile或者发布Profile中的appIdentifier字段是固定的,该字段来源于AppGallery Connect创建应用时生成的APP ID,由云端统一分配。此时的appIdentifier字段在应用全生命周期中不会发生变化,包括版本升级、证书变更、开发者公私钥变更、应用转移等。

手动签名时appIdentifier字段是固定不变的。

更多关于HarmonyOS 鸿蒙Next中应用间共享配置的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我测试的时候可以这样子做 但对于用户的appIdentifier我怎么能拿到 我不可能提前拿到之后放进crossAppSharedConfig的allowList吧,

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

开发者您好,可以参考新的楼层,

可使用getBundleInfoForSelf接口来获取当前应用的appIdentifier。获取到appIdentifier后,可以通过调用publish接口或delete接口,动态新增、删除或修改配置项。参考链接:动态配置

在HarmonyOS鸿蒙Next中,应用间共享配置主要通过分布式数据管理框架实现。系统提供统一的数据共享机制,应用可通过DataShareExtensionAbility组件跨应用访问配置数据。共享数据存储在分布式数据库中,支持多设备间数据同步。应用需在配置文件中声明相关权限,并通过DataSharePredicates对象进行数据查询与操作。该机制允许应用安全地读写其他应用的公共配置项,无需依赖Java或C语言环境。

在HarmonyOS Next中,appIdentifier 是应用在不同设备上的唯一标识,确实可能因设备而异。但应用间共享配置的 allowList 设计用于指定允许访问共享配置的应用列表,通常基于开发阶段或已知目标应用进行配置。

实际开发中,allowList 应填入目标应用(如应用B)的 appIdentifier,但需注意:

  • 如果应用B部署到多台设备,每台设备上的 appIdentifier 可能不同,这可能导致配置访问失败。
  • 对于生产环境,建议通过动态方式或使用通配符(如支持)来简化管理,但当前文档未明确说明跨设备一致性方案。

您可以先在同一设备上测试,确保应用A和应用B的 appIdentifier 匹配。若涉及多设备,需收集所有目标设备的 appIdentifier 并更新到 allowList。这可能会增加维护复杂度,但这是当前机制的限制。

回到顶部