VKWebAppGyroscopeStart
VKWebAppGyroscopeStart включает отслеживание и приём данных гироскопа, установленного на мобильном устройстве.
Схема работы
- 1.Клиент вызывает
VKWebAppGyroscopeStartдля начала получения данных гироскопа. - 2.Платформа отвечает:
- •Событием
VKWebAppGyroscopeStartResultв случае успешного выполнения. - •Событием
VKWebAppGyroscopeStartFailedв случае ошибки доступа к датчику.
- •
- 3.Если на предыдущем шаге не было ошибки, платформа начинает отправлять поток событий
VKWebAppGyroscopeChangedс данными гироскопа. - 4.На iOS поток событий с данными гироскопа может быть прерван. В этом случае платформа отправляет событие
VKWebAppGyroscopeInterrupted. - 5.Чтобы возобновить получение данных гироскопа, снова вызовите
VKWebAppGyroscopeStart.
Чтобы прекратить отслеживание данных, вызовите VKWebAppGyroscopeStop.
Пример
bridge.send('VKWebAppGyroscopeStart', {
refresh_rate: 500
})
.then((data) => {
if (data.result) {
// Отслеживание данных гироскопа включено
}
})
.catch((error) => {
// Ошибка
console.log(error);
});
Платформы
Android, iOS
Параметры
Поле | Тип | Описание |
|---|---|---|
refresh_rate
необязательное | integer | Период обновления данных гироскопа в миллисекундах. Минимальное значение: 20. Максимальное значение: 1000. Значение по умолчанию: 1000. |
Результат
Проверить результат можно:
- •
Используя объект
Promise, который возвращается вызовомbridge.send(...). - •
С помощью событий:
- •
- •
Подробнее о проверке результатов при вызовах VK Bridge — в разделе Обработка результата.
Объект Promise
Если обращение к платформе прошло успешно, управление будет передано в then-обработчик объекта Promise.
Если при обращении к платформе произошла ошибка, управление передаётся в метод catch. В качестве ответа платформа возвращает объект с информацией об ошибке, общий для всех событий VK Bridge.
События
VKWebAppGyroscopeStartResult
Сигнализирует, что отслеживание данных гироскопа включено и мини-приложение может получать данные. В обработчик события на стороне пользователя передаются данные:
{
detail: {
type: "VKWebAppGyroscopeStartResult",
data: {
result: true
}
}
}
В качестве ответа платформа возвращает объект с полем:
Поле | Тип | Описание |
|---|---|---|
result | boolean | true, если отслеживание данных гироскопа включено. |
VKWebAppGyroscopeStartFailed
Информирует, что при взаимодействии с платформой произошла ошибка или что мини-приложение не может получать данные гироскопа.
В обработчик события на стороне пользователя передаётся объект с информацией об ошибке, общий для всех методов VK Bridge.
Отслеживание данных
Чтобы получить текущее состояние гироскопа, подпишитесь на события:
- •
VKWebAppGyroscopeChanged— отслеживает координаты устройства при его перемещении. - •
VKWebAppGyroscopeInterrupted— сообщает о том, что поток данных прервался. Событие доступно только для iOS.
VKWebAppGyroscopeChanged
Сигнализирует, что получены данные гироскопа — скорость вращения устройства вокруг осей X, Y и Z. Знак числа показывает, в какую сторону происходит вращение.
Положение устройства относительно осей X, Y, Z
В обработчик события на стороне пользователя передаются данные:
{
detail: {
type: "VKWebAppGyroscopeChanged",
data: {
x: -0.005497787,
y: 0.002443461,
z: 0.004886922
}
}
}
В качестве ответа платформа возвращает объект с полями:
Поле | Тип | Описание |
|---|---|---|
x | float | Скорость вращения устройства вокруг оси X в радиан/c. |
y | float | Скорость вращения устройства вокруг оси Y в радиан/c. |
z | float | Скорость вращения устройства вокруг оси Z в радиан/c. |
VKWebAppGyroscopeInterrupted
Указывает на то, что поток событий VKWebAppGyroscopeChanged прерван и данные гироскопа больше не могут быть получены. Событие доступно только для iOS.
В обработчик события на стороне пользователя передаются данные:
{
detail: {
type: "VKWebAppGyroscopeInterrupted",
data: {
"message": "Received empty accelerometer data"
}
}
}
Чтобы продолжить отслеживание данных гироскопа, снова вызовите событие VKWebAppGyroscopeStart.