Известные проблемы и ограничения плагина Mega для WeChat Mini Program
В этой статье описаны известные проблемы и ограничения плагина Mega Mini Program при использовании.
Известные проблемы WeChat
Текущие подтвержденные дефекты WeChat xr-frame или VisionKit. При их возникновении функции AR перестают работать. Обращайте внимание на соответствующие сценарии срабатывания при разработке.
Исключение определения плоскости WeChat
В определенных случаях, например при появлении большой белой стены в кадре или длительном перекрытии камеры, определение плоскости, предоставляемое WeChat, может перейти в ненормальное состояние. В этом состоянии MegaTracker не может работать нормально.
Метод обработки см. в обработке исключений Plane AR tracker.
Длительное время инициализации Session
AR Session может завершить инициализацию только после завершения инициализации определения плоскости WeChat. В некоторых случаях инициализация определения плоскости WeChat занимает длительное время.
Причину, по которой AR Session нужно ждать завершения инициализации xr-frame ARTracker, см. в Как MegaTracker работает на xr-frame.
- Справочник по состояниям: Документация по состояниям AR tracker для WeChat Mini Program.
- Пример прослушивания:
<xr-ar-tracker id="xrARTracker" mode="Plane" bind:ar-tracker-state="handleARTrackerState"></xr-ar-tracker>
handleARTrackerState({detail}) {
if (detail.value.state == xrFrameSystem.EARTrackerState.Detected) {
console.log('Plane is now detected by XR-Frame ARTracker.');
}
}
worldPosition узла не обновляется немедленно в текущем кадре
В этом примере trs.worldPosition не обновляется вовремя:
public onTick(delta, data) {
const trs = this.el.getComponent(xrFrameSystem.Transform);
// WorldPosition этого узла до обновления
console.log(`World Position before update: ${trs.worldPosition.x}, ${trs.worldPosition.y}, ${trs.worldPosition.z}`);
// LocalPosition этого узла до обновления
console.log(`Local Position before update: ${trs.Position.x}, ${trs.Position.y}, ${trs.Position.z}`);
trs.position.x += 0.1;
trs.position.y += 0.1;
trs.position.z += 0.1;
// WorldPosition этого узла не обновлена
console.log(`World Position after update: ${trs.worldPosition.x}, ${trs.worldPosition.y}, ${trs.worldPosition.z}`);
// LocalPosition этого узла обновлена
console.log(`Local Position after update: ${trs.Position.x}, ${trs.Position.y}, ${trs.Position.z}`);
}
При разработке рекомендуется всегда использовать LocalTransform, то есть el.getComponent(xrFrameSystem.Transform).position и el.getComponent(xrFrameSystem.Transform).rotation.
Ошибка переключения ориентации экрана
Если в window глобальной конфигурации app.json WeChat Mini Program указано "auto",
то после выхода устройства из Mini Program в альбомном режиме и повторного входа в портретном режиме AR-изображение может стать ненормальным.
Поэтому в приложениях AR Mini Program никогда не используйте "auto".
Ограничения использования
Жесткие требования для работы функции. Если они не выполнены, функция недоступна, но этого можно избежать, настроив конфигурацию или среду.
Ограничения моделей устройств
Устройства, запускающие плагин Mega Mini Program, должны как минимум поддерживать плоскостной интерфейс WeChat VisionKit V1. Для достижения лучших результатов рекомендуется использовать устройства с поддержкой плоскостного интерфейса WeChat VisionKit V2.
Список поддерживаемых устройств: см. список поддержки плоскостного AR-интерфейса V2.
Метод быстрой проверки:
- Отсканируйте официальный QR-код Sample WeChat Mini Program.

- После входа в Mini Program перейдите к Interface > VisionKit visual capability > Horizontal plane AR-v2, чтобы быстро определить, поддерживается ли текущее устройство.
- Отсканируйте официальный QR-код Sample WeChat Mini Program.
Если необходимо использовать сервис Mega на устройствах, которые не поддерживают VisionKit, см. лучшие практики навигационных сцен и используйте продукт EasyAR Sense AR navigation, поддерживающий почти все устройства.
Обязательная конфигурация PlaneMode
Из-за ограничений поддержки некоторых интерфейсов WeChat planeMode должен быть установлен в 1.
<xr-scene ar-system="modes:Plane; planeMode: 1" bind:ready="handleReady">
Ограничения функций GPS
Выравнивание Block через GPS пока не поддерживается.
Размещение данных аннотаций через GPS пока не поддерживается.