App Widget Schema Example
for illustration concept only
{
"name": { "en": "Widget Name" }, // Section title, Widget display name
"settings": [ // List of settings
{
"id": "setting-id", // Setting ID
"type": "text", // Setting type (e.g., text, color_picker)
"label": { "en": "Label Name" }, // Setting label
"default": "Default Value" // Default value
}
],
"blocks": [ // Reusable content blocks
{
"type": "block-type", // Block type
"name": { "en": "Block Name" }, // Block name
"settings": [
{
"id": "block-setting-id", // Block setting ID
"type": "image_picker", // Setting type
"label": { "en": "Image Picker" } // Block setting label
}
]
}
],
"presets": [ // Preset initial configuration
{
"name": "Default Preset Name", // Preset name
"blocks": [
{ "type": "block-type" } // Preset block type
]
}
]
}
{
"name": {
"en": "Widget Name",
"zh-hant": "小工具名稱"
}, // Section title, supports multiple languages (I18n)
"settings": [ // Configurable settings in the section
{
"id": "title", // Setting ID
"type": "text", // Setting type: text
"label": { "en": "Title" }, // Setting label
"default": "Default Title" // Default value
},
{
"id": "background_color",
"type": "color_picker", // Setting type: color_picker
"label": { "en": "Background Color" },
"default": "#FFFFFF" // Default value: white
}
],
"blocks": [ // Reusable content blocks
{
"type": "image", // Block type
"name": { "en": "Image Block" }, // Block name, supports I18n
"settings": [
{
"id": "image",
"type": "image_picker", // Block setting type: image_picker
"label": { "en": "Select Image" }
}
]
},
{
"type": "text",
"name": { "en": "Text Block" }, // Block type and name
"settings": [
{
"id": "content",
"type": "text", // Block setting type: text
"label": { "en": "Text Content" },
"default": "Add your content here"
}
]
}
],
"max_blocks": 5, // Maximum number of blocks allowed in this section
"presets": [ // Default preset configuration
{
"name": "Default Preset", // Preset name
"blocks": [
{ "type": "image" },
{ "type": "text" }
]
}
],
"ui_options": { // Visual configuration options
"icon": "image", // Section icon
"empty_blocks_content": { // Message when no blocks are added
"en": "No content blocks have been added yet."
},
"blocks_content": { // Block description
"en": "Drag and drop blocks to reorder them."
}
}
}
Updated about 1 month ago