Я работаю над расширением Chrome, которое будет использоваться в качестве внутреннего инструмента. Его требуемое поведение:
- В качестве действия страницы активируйте значок адресной строки при просмотре определенных страниц интрасети.
- когда пользователь нажимает значок, идентифицирует все файлы определенного типа носителя (например,.jpg) на странице и
- молча сохранить их все в каталог на локальном диске пользователя.
Этот вопрос задан до, но тогда ответ был "использовать NPAPI" и NPAPI теперь заброшен.
Итак, каков доступный в настоящее время способ достичь этого? Я смотрел:
- API chrome.FileSystem --- но это не сохраняет файлы в любом доступном для пользователя месте. Вместо этого хранящиеся файлы скрыты за обфускации имен в недокументированном каталоге. Пользователь требует, чтобы файлы были сохранены под их исходными именами в доступном каталоге.
- атрибут загрузки HTML5, создав URL-адрес данных и программно нажав на него. Появится диалоговое окно "Сохранить как..." для каждого файла, что неприемлемо, если на одной странице есть сто ресурсов. Пользователь требует, чтобы файлы загружались без дальнейшего взаимодействия, кроме одного значка.
- Chrome Download API, но доступен только в бета-версиях и dev-каналах. Пользователь требует, чтобы эта работа расширилась с основным браузером Chrome.
- Используйте Native Messaging API, создав небольшой файл .exe, который просто сохраняет файл на диск, а затем передает .jpg как blob к нему. Это кажется очень громоздким, и я даже не уверен, как надежно передать большие капли в EXE, как это.
Есть ли другой подход, который я могу попробовать?