as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

清单 [offers] 部分

清单 [offers] 部分

[offers] 部分声明应用程序包向安装在Vega系统上的其他应用程序包提供的功能。offers是可选部分。

[offers]
[[offers.interaction]]
# 允许的交互的配置

[[offers.service]]
# 所提供服务的配置

[[offers.module]]
# 定义共享工件
 
[[offers.message-target]]
# 将URI映射到生命周期组件

[[offers.interaction]]

可选

这一部分是一种传统机制,用于向系统其他部分提供应用中的可启动目标。此部分将替换为[[offers.module]] + includes-messagesoffers.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作为前缀有助于确保唯一性。
    • @: 组件名称和修订标签之间的分隔符。

    • <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.modulewants.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日