Разработчики из Mozilla анонсировали проект WebAPI, целью которого является заполнение пробела, связанного с отсутствием единого целостного API для взаимодействия с системным окружением, который работал бы в любом веб-браузере, независимо от того, какая операционная система при этом используется.
В итоге они собираются создать HTML5 API, который стандартизирует выполнение таких задач, как доступ к функциям телефонии, локальной галерее фотографий, системным настройкам, часам, камере, адресной книге и т.п.
После подготовки спецификаций и рабочего прототипа с их реализацией, все наработки WebAPI отправятся в консорциум W3C с тем, чтобы на их основе сформировать единый стандарт.
С целью развития этого проекта Mozilla планирует пригласить для работы над WebAPI несколько инженеров. Разработчики задумали развивать в рамках этого проекта не только высокоуровневые API, к примеру, те, что предоставляют возможность инициировать снимок посредством встроенной камерой, но и низкоуровневые, к примеру, для работы USB-устройствами и иным оборудованием.
Причем первоначально основной акцент будет сделан на низкоуровневые API. На их базе в будущем будут создаваться более безопасные для пользователей и более удобные для разработчиков программные интерфейсы.
Помимо этого огромное внимание будет уделено безопасности. Чтобы предотвратить необходимость совершения лишних операций будут привлечены уже существующие или разработаны новые технологии. К примеру, текущее местоположение пользователя будет определяться только после запроса полномочий на выполнение такой операций.
Разработчики обещают, что любая случайная Интернет-страница не сможет передать какую-либо произвольную команду для подключенного USB-устройства, а также не сможет считать с ПК список контактов.
Уже через 3-6 месяцев должен быть подготовлен вариант HTML5 API для мобильных устройств.
Сегодня каждая мобильная платформа старается продвинуть свой низкоуровневый API для доступа веб-приложений к системным функциям. А WebAPI предоставит возможность создать универсальные приложения для мобильных устройств, которые не будут привязаны к определенному типу устройств или производителю.
В числе первоочередных задач, которые ставят перед собой разработчики, упомянуты API, позволяющие реализовать такие типы приложений:
- Совершение звонков: API для работы с адресной книгой, отправки сообщений и доступа к функциям телефонии;
- Галерея фотографий: API для взаимодействия с файловой системой;
- Адресная книга: API для адресной книги;
- Карты: Geolocation API, а также API для работы с адресной книгой.
- Калькулятор;
- Игры: API для полного контроля мыши и API для взаимодействия с акселерометром;
- SMS: API для работы с адресной книгой, отправки сообщений и доступа к функциям телефонии;
- Камера: API для взаимодействия с файловой системой и API для работы с камерой;
- Часы;
- Управление настройками: API для управления конфигурацией и API для оценки состояния устройства;
Разработчики отдельно отмечают, что, скорее всего API для полного доступа к файловой системе (FileSystem API) создаваться не будет. Вместо этого для доступа к локальным файлам можно будет использовать FileWriter API и FileReader. Они не работают с реальной файловой системой, а предназначены для работы с виртуальной файловой системой, которая изолирована от основной системы и построена с использованием IndexedDB API.