Веб-поддержка
Tracelet предоставляет веб-реализацию (tracelet_web), поэтому тот же API Dart компилируется и запускается в браузере. Веб-платформа работает только на переднем плане и поддерживает часть функций, доступных на Android и iOS. Браузеры принципиально не могут запускать фоновую геолокацию, поэтому Интернет лучше всего подходит для отслеживания в реальном времени во вкладках (панели мониторинга, активные экраны водителя/диспетчерской службы), а не для постоянного фонового отслеживания, которое есть на мобильных устройствах.
Единственное ограничение, которое следует помнить: в Интернете нет фонового отслеживания. API геолокации браузера не запускается на фоновой вкладке, закрытой вкладке или Service Worker. Отслеживание происходит только тогда, когда ваша страница открыта и сосредоточена.
Что работает в Интернете
| Особенность | Заметки |
|---|---|
| Отслеживание местоположения на переднем плане | API геолокации браузера (watchPosition); НОТРАНС1ЛАТЕ / НОТРАНС2ЛАТЕ / НОТРАНС3ЛАТЕ. |
| HTTP-синхронизация | Загрузка на основе fetch с пакетной обработкой и повторами — тот же HttpConfig. |
| Геозенс | Близость оценивается, пока страница открыта. |
| Зоны конфиденциальности | Исключить/ухудшить качество исправлений внутри чувствительных областей. |
| Аудиторский след | Хеш-цепочка SHA-256 для записей. |
| Одометр и оценка выбросов углекислого газа | Рассчитывается на основе дорожки переднего плана. |
| Разрешения и подключение | navigator.permissions для местоположения; navigator.onLine для подключения. |
| Локальное постоянство | В памяти, с резервной копией localStorage, если она доступна (может быть очищена в некоторых режимах инкогнито). |
| API ведения журнала | getLogs(), clearLogs() и log() работают как буфер журнала в памяти. |
| Планирование на переднем плане | Простые таймеры запуска/остановки с интервалом. |
Что не доступно в Интернете
| Особенность | Почему |
|---|---|
| Отслеживание фона | Браузеры приостанавливают JS и геолокацию на фоновых вкладках; У Service Workers нет геолокации. |
Загрузка/возобновление перезагрузки (startOnBoot) | В ОС нет процесса перезапуска веб-страницы. |
| Безголовые задачи и обратные вызовы безголовой синхронизации | В сети не существует фонового изолята Dart. |
Фоновые задачи (startBackgroundTask) | Никакого фонового выполнения. |
| Обнаружение движения/Распознавание активности | Нет надежного эквивалента браузера (разрешение на движение — это заглушка). |
| Уведомление службы переднего плана | Концепция только для Android. |
Зашифрованная база данных (encryptDatabase) | Веб-хранилище находится в памяти / localStorage (не зашифровано) — флаг неактивен. |
| Аттестация устройства | Нет браузерного эквивалента. |
| Мертвый расчет | Не реализовано в сети. |
| Телематика и пользовательская синхронизация | Никакой аппаратной телематики (getTelematicsEvents(), simulateTelematicsEvent()) или пользовательской фоновой синхронизации (connectCustomSync()). |
emailLog, playSound, точные сигналы тревоги | Нет веб-эквивалента (без операций/не поддерживается). |
Вызовы неподдерживаемых API не приводят к сбою — они регистрируют четкое сообщение [Tracelet Web] … not supported on web и возвращают безопасное значение по умолчанию, поэтому общий кроссплатформенный код продолжает работать.
Когда использовать Интернет
- ✅ Панели мониторинга в реальном времени, экраны диспетчеров/водителей или любой другой поток, в котором вкладка остается открытой и сосредоточенной.
- ✅ Совместное использование одной базы кода Dart на мобильных устройствах и в Интернете с плавной деградацией в браузере.
- ❌ «Всегда включенное» фоновое отслеживание, оповещения о геозонах, когда вкладка закрыта, или что-то еще, что требует, чтобы устройство продолжало отслеживать, пока страница не открыта — для этого используйте приложения Android/iOS.