SaiCore поддерживает встраиваемые интерактивные виджеты на основе HTML5, CSS3 и JavaScript. Виджеты используют стандарт W3C Widgets и имеют доступ к API SaiCore через JavaScript-объект sankore.
Виджет представляет собой ZIP-архив со следующей структурой:
my-widget.wgt/
├── config.xml (метаданные виджета)
├── index.html (главная страница)
├── style.css (стили)
├── script.js (логика)
└── icon.png (иконка 128×128)
<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns="http://www.w3.org/ns/widgets"
id="https://saicore.ru/widgets/my-widget"
version="1.0.0"
width="400"
height="300">
<name>Мой виджет</name>
<description>Описание виджета</description>
<author>ООО «Карума»</author>
<content src="index.html"/>
</widget>
Доступ к API осуществляется через объект sankore, доступный в контексте виджета.
sankore.pen(color, size) — установить перо с указанным цветом и размеромsankore.marker(color, size) — установить маркерsankore.erase() — переключить на ластикsankore.clear() — очистить текущую страницуsankore.pageCount() — получить количество страницsankore.currentPage() — получить индекс текущей страницыsankore.addPage() — добавить новую страницуsankore.goToPage(index) — перейти к странице по индексуsankore.documentTitle() — получить название документаsankore.exportPDF() — экспортировать документ в PDFsankore.onPageChanged = function(index) {} — смена страницыsankore.onSceneActive = function() {} — активация сценыsankore.onDropEvent = function(data) {} — перетаскивание данных на виджет// script.js
sankore.onSceneActive = function() {
document.getElementById('status').innerText = 'Готов к работе';
};
function changeColor(color) {
sankore.pen(color, 3);
}