A widget, at minimum, comprises of a single file:
index.html. From there, you are free to add whatever resources your widget requires, such as images and styling.
You can add an additional
config.json file, which defines some metadata to display in the UI shown to users when picking widgets. In a future update, this will also be where you specify configuration layouts for users to adjust.
Furthermore, you can also bundle a
Screenshot.png file, which is shown to users when picking widgets. This should be sized at maximum
Widget Folder Name
This file is set out like a
package.json file from NPM modules. For now, the following keys are recognised:
"px", or percentage of the screen size
width: set as
max-width: set as
height: set as
max-height: set as
Your widget must be installed in any of the following
Install Locations for this file to be read.
Widgets can be installed in one central place on the user's filesystem:
This folder contains four (4) sub-folders:
Additionally, legacy widgets are also loaded into the UI shown to users when picking widgets. These are read from the following locations:
It is strongly recommended to install newly created widgets into the central folder heirarchy, detailed above.
Widget preferences are currently using existing legacy systems, meaning that a new preferences API will become available as part of the new
Right now, the following preference systems are respected in the Settings app:
iWidgetsfolder, or in the new central place as detailed above
Options.plistcannot be found