want参数的uri和type匹配规则是怎样的?

阅读 497
1 个回答

调用方传入的want参数中设置uri和type参数发起启动应用组件的请求,系统会遍历当前系统已安装的组件列表,并逐个匹配待匹配应用组件的skills配置中的uris数组,如果待匹配应用组件的skills配置中的uris数组中只要有一个可以匹配调用方传入的want参数中设置的uri和type即为匹配成功。

实际应用中,uri和type共存在四种情况,下面将讲解四种情况的具体匹配规则:

调用方传入的want参数的uri和type都为空。

如果待匹配应用组件的skills配置中的uris数组为空,匹配成功。
如果待匹配应用组件的skills配置中的uris数组中存在uri的scheme和type都为空的元素,匹配成功。
除以上两种情况,其他情况均为匹配失败。
调用方传入的want参数的uri不为空,type为空。

如果待匹配应用组件的skills配置中的uris数组为空,匹配失败。
如果待匹配应用组件的skills配置中的uris数组存在一条数据uri匹配成功且type为空,则匹配成功,否则匹配失败。
如果前两条均匹配失败,并且传入的uri为文件路径uri,则根据文件后缀获取文件的MIME类型,如果该类型与skills文件中配置的type相匹配,则匹配成功。
调用方传入的want参数的uri为空,type不为空。

如果待匹配应用组件的skills配置中的uris数组为空,匹配失败。
如果待匹配应用组件的skills配置中的uris数组存在一条数据uri的scheme为空且type匹配成功,则匹配成功,否则匹配失败。
调用方传入的want参数的uri和type都不为空,如下图所示。

如果待匹配应用组件的skills配置中的uris数组为空,匹配失败。
如果待匹配应用组件的skills配置中的uris数组存在一条数据uri匹配和type匹配需要均匹配成功,则匹配成功,否则匹配失败。
最左uri匹配:当配置文件待匹配应用组件的skills配置中的uris数组中只配置scheme;或者只配置scheme和host;或者只配置scheme、host和port时。传入want参数的uri的最左边依次需要和scheme,或者scheme和host,或者scheme、host和port都匹配,才满足最左uri匹配。

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进