Нативные API операционной системы

Angular работает в браузере, однако для расширенных возможностей взаимодействия с системой используются нативные API, доступные через JavaScript. Они позволяют управлять файловой системой, графикой, сетью и событиями операционной системы.

Основные группы нативных API

  1. Работа с файлами и хранилищем

    • File API и Blob позволяют читать и записывать локальные файлы в браузере.
    • IndexedDB и LocalStorage предоставляют возможность хранить структурированные данные и состояния приложения.
    const fileReader = new FileReader();
    fileReader.onl oad = (event) => console.log(event.target?.result);
    fileReader.readAsText(fileInput.files[0]);
  2. Сетевые возможности

    • Fetch API позволяет выполнять HTTP-запросы без необходимости использования сторонних библиотек.
    • WebSockets обеспечивают двустороннюю связь с сервером в реальном времени.
  3. Графика и анимация

    • Canvas API и WebGL обеспечивают рисование 2D и 3D графики.
    • OffscreenCanvas используется для вычислений графики в отдельных потоках, что повышает производительность.
  4. События и сенсорные интерфейсы

    • API для работы с мышью, клавиатурой, сенсорными экранами и акселерометром позволяют создавать интерактивные интерфейсы.
    • Pointer Events объединяют мышь, сенсор и стилус в единую систему управления событиями.
  5. Работа с системными возможностями

    • Clipboard API предоставляет доступ к буферу обмена.
    • Notification API и Push API позволяют отправлять уведомления пользователю.
    • Geolocation API обеспечивает получение текущих координат устройства.

Интеграция с Angular

В Angular доступ к нативным API реализуется через сервисы и dependency injection. Например, для работы с геолокацией создается сервис:

@Injectable({ providedIn: 'root' })
export class GeolocationService {
  getCurrentPosition(): Promise<GeolocationPosition> {
    return new Promise((resolve, reject) => {
      navigator.geolocation.getCurrentPosition(resolve, reject);
    });
  }
}

Использование сервисов позволяет абстрагироваться от платформо-зависимых особенностей и облегчает тестирование. При этом важно учитывать ограничения безопасности браузера: многие API требуют HTTPS и явного разрешения пользователя.

Нативные API открывают возможности, которые выходят за рамки стандартных возможностей Angular, позволяя создавать сложные, интерактивные и высокопроизводительные приложения с прямым доступом к ресурсам операционной системы.