Table of Contents

AR Session adaptação de rotação de tela

Este artigo descreve como configurar uma AR Session quando é necessário executar um mini-programa WeChat em modo paisagem.

Antes de começar

Enumeração de orientação de tela do plug-in Mega mini-programa

Nota

Consulte as definições oficiais de sistemas como IOS, Android, etc., para a definição da orientação da tela do telefone.

Enumeração de orientação de tela do plug-in Mega mini-programa DeviceOrientation:

Constante Valor Descrição
Portrait 0 Portrait
LandscapeLeft 90 LandscapeLeft
PortraitUpsideDown 180 PortraitUpsideDown
LandscapeRight 270 LandscapeRight

Modificar a orientação da tela na configuração global do mini-programa WeChat

Adicione a configuração window em app.json, conforme definido em Mudanças de área de exibição responsiva.

"window": {
    "pageOrientation": "landscape"
}

Preencha com "portrait" (retrato) ou "landscape" (paisagem) conforme a situação.

Cuidado

Nunca use "auto" em aplicativos de mini-programa AR, pois em alguns casos pode causar anomalias graves na imagem AR.

Configurar a orientação da tela

Chame setDeviceOrientation(deviceOrientation) passando a direção de rotação da tela. Pode ser chamado a qualquer momento, com efeito imediato.

Por exemplo, para usar no modo paisagem com rotação de 90 graus no sentido anti-horário em relação à posição vertical natural:

let deviceOrientation = mega.DeviceOrientation.LandscapeLeft;
session.setDeviceOrientation(deviceOrientation);

A configuração de orientação de tela fornecida pelo plug-in mega visa compensar a falta de monitoramento de orientação de tela no mini-programa WeChat. O WeChat oferece apenas as opções portrait e landscape na configuração pageOrientation, o que é insuficiente para aplicativos AR. Por exemplo, um modo paisagem girado 90 graus no sentido anti-horário em relação à orientação natural é completamente diferente de um girado 270 graus.

Portanto, quando pageOrientation em app.json estiver definido como portrait, você pode omitir a chamada de setDeviceOrientation(deviceOrientation), pois a orientação vertical natural do telefone geralmente é a padrão da session.

Quando pageOrientation em app.json estiver definido como landscape, você deve chamar setDeviceOrientation(deviceOrientation) para fixar a orientação da tela como LandscapeLeft ou LandscapeRight