Table of Contents

AR Session の画面回転適応

この記事では、WeChat Mini Program を横画面で実行する必要がある場合に AR Session を設定する方法を紹介します。

開始する前に

Mega Mini Program プラグインの画面方向 enum

注記

スマートフォン画面方向の定義は、IOS、Android などのシステムの公式定義を参照してください。

Mega Mini Program プラグインの画面方向 enum DeviceOrientation:

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

WeChat Mini Program のグローバル設定で画面方向を変更する

app.jsonwindow 設定を追加します。具体的な定義は 表示領域の変化への対応 を参照してください。

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

実際の状況に応じて "portrait"(縦画面)または "landscape"(横画面)を入力します。

注意

AR Mini Program アプリでは、いかなる場合も "auto" を使用しないでください。場合によっては AR 画面に重大な異常が発生します。

画面方向を設定する

setDeviceOrientation(deviceOrientation) を呼び出して画面回転方向を渡します。いつでも呼び出すことができ、即時に有効になります。

たとえば、画面が自然な縦位置に対して反時計回りに 90 度回転した横画面モードで使用する場合:

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

mega プラグインが提供する画面方向設定は、WeChat Mini Programs に画面方向監視がないことを補うためのものです。WeChat は pageOrientation 設定で portraitlandscape の 2 つのオプションのみを提供しますが、AR アプリケーションにとってこの 2 つだけでは不十分です。たとえば、自然方向から反時計回りに 90 度回転した横画面と、自然方向から反時計回りに 270 度回転した横画面は完全に異なります。

したがって、app.jsonpageOrientationportrait に設定されている場合、一般的なスマートフォンの自然な縦方向が session のデフォルト方向であるため、setDeviceOrientation(deviceOrientation) を呼び出さなくてもかまいません。

app.jsonpageOrientationlandscape に設定されている場合は、必ず setDeviceOrientation(deviceOrientation) を呼び出して画面方向を LandscapeLeft または LandscapeRight に固定する必要があります