Table of Contents

Adaptação da rotação de tela da AR Session

Este artigo apresenta como configurar AR Session quando um WeChat Mini Program precisa executar em modo paisagem.

Antes de começar

Enum de orientação de tela do plugin Mega Mini Program

Nota

Para a definição da orientação da tela do telefone, consulte as definições oficiais de sistemas como IOS e Android.

Enum de orientação de tela do plugin Mega Mini Program DeviceOrientation:

Constant Value Description
Portrait 0 Portrait
LandscapeLeft 90 LandscapeLeft
PortraitUpsideDown 180 PortraitUpsideDown
LandscapeRight 270 LandscapeRight

Modificar a orientação de tela na configuração global do WeChat Mini Program

Adicione a configuração window em app.json. Para a definição específica, consulte Responder a alterações da área de exibição.

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

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

Cuidado

Nunca use "auto" em um aplicativo AR Mini Program. Em alguns casos, isso pode causar anomalias graves na imagem AR.

Definir orientação de tela

Chame setDeviceOrientation(deviceOrientation) e passe a direção de rotação da tela. Ele pode ser chamado a qualquer momento e entra em vigor imediatamente.

Por exemplo, para usar o modo paisagem em que a tela é girada 90 graus no sentido anti-horário em relação à posição retrato natural:

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

A configuração de orientação de tela fornecida pelo plugin mega serve para compensar a ausência de monitoramento de orientação de tela nos WeChat Mini Programs. WeChat fornece apenas duas opções, portrait e landscape, na configuração pageOrientation, mas para aplicações AR essas duas opções sozinhas não são suficientes. Por exemplo, o modo paisagem girado 90 graus no sentido anti-horário a partir da orientação natural é completamente diferente do modo paisagem girado 270 graus no sentido anti-horário a partir da orientação natural.

Portanto, quando pageOrientation em app.json está definido como portrait, você pode omitir a chamada a setDeviceOrientation(deviceOrientation), porque a direção retrato natural de um telefone comum é a orientação padrão de session.

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