Manifest for storage areas(清单存储区域)
警告
重要提示:Chrome 将在所有平台上取消对 Chrome 应用程序的支持。 Chrome 浏览器和 Chrome 网上应用店将继续支持扩展。阅读公告并了解有关迁移应用程序的更多信息。
与本地和同步存储区不同,托管存储区要求将其结构声明为 JSON Schema,并经过 Chrome 严格验证。此架构必须存储在“storage
”清单键的“managed_schema
”属性指示的文件中,并声明应用程序支持的企业策略。
策略类似于选项,但由系统管理员而不是用户配置,允许为组织的所有用户预配置应用程序。了解 Chrome 如何处理 Chrome 本身的示例的政策。
声明策略后,可以从 storage.managed API 读取它们。由应用程序来强制执行管理员配置的策略。
# Sample manifest.json(示例)
storage.managed_schema
属性指示应用程序中包含策略架构的文件。
{
"name": "My enterprise app",
"storage": {
"managed_schema": "schema.json"
},
...
}
然后,Chrome 将从底层操作系统和 Google Apps 为登录用户加载这些策略。每当检测到策略更改时都会触发 storage.onChanged 事件,包括当应用程序使用事件页面(event pages)时浏览器未运行时。您可以在 chrome://policy 验证 Chrome 加载的政策。
# Schema format(格式)
JSON Schema 格式对 Chrome 有一些额外的要求:
- top-level必须具有类型
object
。 - top-level
object
不能有additionalProperties
。声明的properties
是此应用程序的策略。 - 每个模式必须有一个
$ref
值或只有一种type
。
如果架构无效,Chrome 将不会加载扩展程序,并会指出架构未验证的原因。如果策略值不符合架构,则 storage.managed API 将不会发布它。
# Sample schema
{
"type": "object",
// "properties" 将此对象的可选键映射到其架构。在
// top-level object(顶级对象),这些键是支持的策略名称。
"properties": {
// 策略名称“AutoSave”映射到其架构,在本例中
// 将其声明为一个简单的布尔值。
// "title" 和 "description" 是可选的,用于显示一个
// 向管理员提供用户友好名称和文档。
"AutoSave": {
"title": "Automatically save changes.",
"description": "If set to true then changes will be automatically saved.",
"type": "boolean"
},
// 支持的其他简单类型包括 "integer", "string" and "number".
"PollRefreshRate": {
"type": "integer"
},
"DefaultServiceUrl": {
"type": "string"
},
// "array" 是符合另一个模式的项目列表,描述
// 在“items”中。这种模式的一个例子是 [ "one", "two" ]。
"ServiceUrls": {
"type": "array",
"items": {
"type": "string"
}
},
// 一个描述书签列表的更复杂的例子。每个书签
// 有一个“title”,可以有一个“url”或一个“children”书签列表。
// “id”属性用于命名模式,其他模式可以重用
// 它使用“$ref”属性。
"Bookmarks": {
"type": "array",
"id": "ListOfBookmarks",
"items": {
"type": "object",
"properties": {
"title": { "type": "string" },
"url": { "type": "string" },
"children": { "$ref": "ListOfBookmarks" }
}
}
},
// “object”可以具有列为“properties”的已知属性,并且可以
// 可选地具有“additionalProperties”指示要应用的模式
// 在“properties”中找不到的键。
// 此示例策略可以将 URL 映射到其设置。示例值:
// {
// "youtube.com": {
// "blocklisted": true
// },
// "google.com": {
// "bypass_proxy": true
// }
// }
"SettingsForUrls": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"blocklisted": { "type": "boolean" },
"bypass_proxy": { "type": "boolean" }
}
}
}
}
}
By.一粒技术服务