JS-виджет
JS-виджет Скапибары позволяет с легкостью реализовать функционал сканирования документов в своих собственных веб-приложениях.
Установка виджета
Для установки виджета на сайт добавьте скрипт на страницу:
<script src="https://widget.scapy.ru/widget.js"></script>
При инициализации скрипт добавляет экземпляр класса Scapy в window.Scapy.
Использование
Процесс сканирования документов аналогичен процессу при использовании расширения для браузера.
В случае использования JS-виджета наличие расширения для браузера не требуется.
Методы виджета
Scapy.run(options)
Функция открывает форму сканирования.
Описание объекта options:
target- элемент DOM в который будет добавлен виджет (по-умолчанию открывается в окне, которое монтируется вbody)handleFiles- обработчик загрузки файловhandleClose- обработчик закрытия
Scapy.runForInput(options, input)
Функция открывает форму сканирования для конкретного input.
При загрузке результата сканирования эмитирует выбор файлов в input.
При использовании этой функции обработчики handleFiles и handleClose не требуются.
Описание объекта options:
target- элемент DOM в который будет добавлен виджет (по-умолчанию открывается в окне, которое монтируется вbody)
Scapy.close()
Функция закрывает форму сканирования.
Scapy.pushFilesToInput(input, files)
Функция эмитирует выбор файлов files в input.
Scapy.enableForAllFileInputs()
Функция включает перехват нажатий на все input с type="file".
При нажатии на любой input с type="file" будет открываться форма сканирования в окне.
Scapy.disableForAllFileInputs()
Функция отключает перехват нажатий на все input с type="file".
Отменяет действие функции Scapy.enableForAllFileInputs().
Пример использования на Vue.js
Установка скрипта
Добавьте следующий код в body или head в файл index.html:
<script src="https://widget.scapy.ru/widget.js"></script>
Использование в компонентах
Ниже приведен пример использования Scapybara в Vue.js.
При нажатии на кнопку будет открыто окно сканирования.
<template>
<button @click="selectFile()">Сканировать</button>
</template>
<script>
export default {
methods: {
selectFile () {
// Проверяем наличие экземпляра Scapy в window.
if (!window.Scapy) {
alert('Виджет сканирования не загружен!')
return
}
window.Scapy.run({
handleFiles: (files) => {
// Добавьте необходимые действия для массива с файлами - files
alert(`Загружено ${files.length} файла(ов)`)
// Закрываем окно сканирования
window.Scapy.close()
},
handleClose: () => {
// Закрываем окно сканирования
window.Scapy.close()
}
})
}
}
}
</script>