HarmonyOS 鸿蒙Next 有没有办法获取用户已添加到桌面的服务卡片列表与对应的 form_identity
HarmonyOS 鸿蒙Next 有没有办法获取用户已添加到桌面的服务卡片列表与对应的 form_identity
我目前用 onAddForm(want: Want)
在卡片被添加的时候,在本地维护一个添加记录数组,记录 form_identity
和对应的卡片类型,因为我有很多不同的服务卡片,用于不同场景,然后这样在 APP 主页面打开的时候,也可以根据用户编辑的内容,即实刷新服务卡片里的显示效果。
但是我发现 onAddForm
在服务卡片处于窗口添加状态的时候,也会进行调用,这个时候还没有真正添加到用户的桌面上,而且因为会预加载的缘故,右侧两个待添加的组件也会调用 onAddForm
,所以短时间内就连续调用了三次 onAddForm
,然后用户不添加的组件到桌面的情况下,结束服务卡片添加操作的页面,又会连续触发三次 onRemoveForm
,虽然不会出现问题,只是频繁进行了读写操作。
但还是想问有没有更好的方式 获取用户 已添加到桌面的服务卡片列表与对应的 form_identity
,这样就不用自己维护服务卡片添加记录的数据了,或者在 onAddForm
或其它回调中区分此卡片现在处于添加预备状态,还是已经添加到了用户的手机桌面,这样就可以避免那些不必要的组件添加记录读写操作。
更多关于HarmonyOS 鸿蒙Next 有没有办法获取用户已添加到桌面的服务卡片列表与对应的 form_identity的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
目前有获取卡片信息的接口:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-app-form-formprovider-V5#getformsinfo
更多关于HarmonyOS 鸿蒙Next 有没有办法获取用户已添加到桌面的服务卡片列表与对应的 form_identity的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
这个我之前文档看到过,不过里面 getFormsInfo
查到的就像是本 APP 能够给用户提供的服务卡片的清单,有哪些服务卡片能给用户使用,所以用户实际用没用这个服务卡片在 getFormsInfo
回调的数据里面都会包含。
但是我期望的接口是,用户到底使用了本APP哪些服务卡片放到手机桌面,以及到手机桌面他们实际对应的服务卡片ID。
暂时没有相应api可以获取桌面上此应用创建的所有服务卡片的formID,可以考虑提单提个需求,
在HarmonyOS 鸿蒙Next系统中,要获取用户已添加到桌面的服务卡片列表及对应的form_identity
,可以通过以下方式进行:
HarmonyOS提供了特定的系统API和权限来获取与桌面服务卡片相关的信息。开发者需要确保应用已经获得了相应的权限,并且遵循鸿蒙系统的安全规范。
-
使用AbilityManager:鸿蒙系统的AbilityManager可以用来管理和查询Ability(包括服务卡片)的信息。通过调用相关的API,可以查询已经添加到桌面的服务卡片。
-
查询卡片信息:在获得Ability列表后,可以进一步查询每个卡片的详细信息,包括其
form_identity
。form_identity
是卡片的一个唯一标识符,用于区分不同的卡片实例。 -
权限要求:要获取这些信息,应用需要声明并请求相应的系统权限。权限的声明和使用需要遵循鸿蒙系统的权限管理模型。
请注意,直接访问和修改系统级数据(如桌面服务卡片列表)需要谨慎处理,并确保遵循鸿蒙系统的安全和隐私政策。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,