清单 [offers] 部分
[offers] 部分声明应用程序包向安装在Vega系统上的其他应用程序包提供的功能。offers是可选部分。
[offers]
[[offers.interaction]]
# 允许的交互的配置
[[offers.service]]
# 所提供服务的配置
[[offers.module]]
# 定义共享工件
[[offers.message-target]]
# 将URI映射到生命周期组件
[[offers.interaction]]
可选
这一部分是一种传统机制,用于向系统其他部分提供应用中的可启动目标。此部分将替换为[[offers.module]] + includes-messages和offers.message-target。在过渡期间,如果应用缺少offers.message-target,但offers.interaction中条目又不为零,在打包时会出现清单验证错误。
offers.interaction部分声明交互式组件或任务组件,这些组件可供其他应用程序包启动,前提是它们具有此处声明的所需权限。
[[offers.interaction]]
id = "com.foo.bar.interactive"
launch-uris = ["foo://interactive"]
字段
-
id(字符串,必需): 交互组件或任务组件的唯一标识符。该标识符属于清单中在[components]部分下声明的组件之一。 -
launch-uris(字符串数组,可选): 可用于调用组件的URI列表。launch-uris = ["smart_app://main"] -
required-privileges(字符串数组,可选): 启动该组件所需的权限列表。只有系统包才能使用所需权限限制访问。此限制功能不适用于非系统包。required-privileges = [ "com.amazon.smart_app.privilege.access" ]
[[offers.service]]
可选
offers.service部分定义了:
- 此包提供的服务
-
其他已安装的应用使用这些服务所需的权限
[[offers.service]] id = "com.foo.bar.service"
字段
-
id(字符串,必需): 服务组件的唯一标识符。该标识符属于清单中在[components]部分下声明的组件之一。 -
required-privileges(字符串数组,可选): 调用服务所需的权限列表。只有系统包才能使用所需权限限制访问。此限制功能不适用于非系统包。required-privileges = [ "com.amazon.smart_app.privilege.access" ]
[[offers.module]]
可选
[[offers.module]] 部分声明了一些共享工件,此程序包向其他应用程序包提供这些工件。
[[offers.module]]
id = "/com.amazon.samplepkg.module@IMod1"
includes-messages = [
"pkg://com.amazon.samplepkg.main",
"samplepkg://play"
]
字段
-
id [字符串](必需): 模块的完全限定标识符必须遵循以下格式:
/<component_name>@<revision_tag>。将<component_name>和<revision_tag>替换为以下信息:<component_name>:- 必须使用反向DNS表示法(例如
com.company.product)。 - 反向DNS名称的部分只能是小写字母数字ASCII字符(
a-z0-9)和下划线 (_),命名空间部分用点 (.) 分隔。命名空间部分中的字词用下划线 (_) 分隔。 - 这些约束条件由正则表达式
^[a-z_][a-z0-9_]*(?:\.[a-z_][a-z0-9_]*)*$描述。 - 在系统中必须是唯一的。
- 提示: 使用程序包ID作为前缀有助于确保唯一性。
- 必须使用反向DNS表示法(例如
-
@: 组件名称和修订标签之间的分隔符。 <revision_tag>:- 遵循与IDL中的接口相同的命名规范。
- 必须以大写字母“
I”开头,这是此类IDL语言的传统写法:IThingDoer,而不是ThingDoer。 - “
I”之后的字符必须为大写。 - 其余字符可以是字母数字 (
a-zA-Z0-9) 或下划线 (_)。 - 这些约束条件由正则表达式
^I([A-Z][a-zA-Z0-9_]*)$描述。
id = "/com.amazon.samplepkg.module@IMod1" -
includes-messages [字符串数组](可选): 此模块定义的URI列表。每个URI必须有相应的
[[message]]部分,描述发送者和接收者的权限。每个URI只能包含在一个模块中。includes-messages = [ "pkg://com.amazon.samplepkg.main", "samplepkg://play" ]
[[offers.message-target]]
可选
[[offers.message-target]] 将URI映射到相应的要启动的生命周期组件。URI必须在同一清单中的模块中定义,或者通过needs.module或wants.module调用导入。此部分可以重复,以定义多个URI到组件的映射组。请注意,pkg://用于直接包含生命周期组件名称的URI。因此,可以跳过此部分。
字段
-
uris [字符串数组](必需): 属于当前映射组的URI列表。
uris = [ "samplepkg://play" ] -
uses-component [字符串](必需): URI接收者组件的名称。该名称应与清单中
[components.interactive]、[components.service]或[components.task]部分中列出的某个组件相匹配。uses-component = "com.amazon.samplepkg.main"
Last updated: 2025年9月30日

