Table of Contents

Problemas conhecidos e limitações do plugin Mega para WeChat Mini Program

Este artigo apresenta os problemas conhecidos e as limitações do plugin Mega Mini Program durante o uso.

Problemas conhecidos do WeChat

Defeitos atualmente confirmados no WeChat xr-frame ou VisionKit. Quando ocorrem, a função AR falha. Preste atenção aos cenários de acionamento relacionados durante o desenvolvimento.

Exceção de detecção de plano do WeChat

Em casos específicos, como quando aparece uma grande parede branca na imagem ou a câmera fica bloqueada por muito tempo, a detecção de plano fornecida pelo WeChat pode entrar em um estado anormal. Nesse estado, MegaTracker não consegue funcionar normalmente.

Para o método de tratamento, consulte Tratamento de exceção do Plane AR tracker.

Tempo de inicialização da Session longo

AR Session só pode concluir a inicialização depois que a inicialização da detecção de plano do WeChat é concluída. Em alguns casos, a inicialização da detecção de plano do WeChat leva muito tempo.

Para saber por que AR Session precisa esperar a conclusão da inicialização do xr-frame ARTracker, consulte Como MegaTracker funciona no xr-frame.

<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.');
    }
}

O worldPosition do nó não é atualizado imediatamente no frame atual

Neste exemplo, trs.worldPosition não é atualizado a tempo:

public onTick(delta, data) {
    const trs = this.el.getComponent(xrFrameSystem.Transform);
    // WorldPosition deste no antes da atualizacao
    console.log(`World Position before update: ${trs.worldPosition.x}, ${trs.worldPosition.y}, ${trs.worldPosition.z}`);
    // LocalPosition deste no antes da atualizacao
    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 deste no nao foi atualizado
    console.log(`World Position after update: ${trs.worldPosition.x}, ${trs.worldPosition.y}, ${trs.worldPosition.z}`);
    // LocalPosition deste no foi atualizado
    console.log(`Local Position after update: ${trs.Position.x}, ${trs.Position.y}, ${trs.Position.z}`);
}

Durante o desenvolvimento, recomenda-se sempre usar LocalTransform, isto é, el.getComponent(xrFrameSystem.Transform).position e el.getComponent(xrFrameSystem.Transform).rotation.

Exceção ao alternar orientação da tela

Se "auto" for preenchido em window na configuração global app.json do WeChat Mini Program,

depois que o dispositivo sair do Mini Program no modo paisagem e entrar novamente no modo retrato, a visualização AR pode ficar anormal.

Portanto, não use "auto" em aplicações AR Mini Program em nenhum momento.

Limitações de uso

Requisitos rígidos para o funcionamento do recurso. Quando não são atendidos, o recurso fica indisponível, mas isso pode ser evitado ajustando a configuração ou o ambiente.

Limitações de dispositivos

Os dispositivos que executam o plugin Mega Mini Program precisam suportar pelo menos a interface de plano WeChat VisionKit V1. Para obter melhores resultados, recomenda-se usar dispositivos que suportem a interface de plano WeChat VisionKit V2.

  • Lista de dispositivos suportados: consulte lista de suporte da interface AR de plano V2.

  • Método de verificação rápida:

    1. Escaneie o QR code oficial Sample do WeChat Mini Program. Official WeChat Mini Program Sample QR code
    2. Depois de entrar no Mini Program, navegue para Interface > VisionKit visual capability > Horizontal plane AR-v2 para determinar rapidamente se o dispositivo atual é suportado.

Se precisar usar o serviço Mega em dispositivos que não suportam VisionKit, consulte melhores práticas para cena de navegação e use o EasyAR Sense AR navigation product, que suporta quase todos os dispositivos.

Configuração obrigatória de PlaneMode

Devido a limitações de suporte de algumas interfaces do WeChat, planeMode deve ser definido como 1.

<xr-scene ar-system="modes:Plane; planeMode: 1" bind:ready="handleReady">

Limitações da função GPS

Ainda não há suporte para alinhar Block por GPS.

Ainda não há suporte para posicionar dados de anotação por GPS.

Tópicos relacionados