Table of Contents

Adaptasi rotasi layar AR Session

Artikel ini memperkenalkan cara mengonfigurasi AR Session ketika WeChat Mini Program perlu berjalan dalam mode landscape.

Sebelum memulai

Enum orientasi layar plugin Mega Mini Program

Catatan

Untuk definisi orientasi layar ponsel, lihat definisi resmi sistem seperti IOS dan Android.

Enum orientasi layar plugin Mega Mini Program DeviceOrientation:

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

Mengubah orientasi layar dalam konfigurasi global WeChat Mini Program

Tambahkan konfigurasi window dalam app.json. Untuk definisi spesifik, lihat Merespons perubahan area tampilan.

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

Isi "portrait" (layar portrait) atau "landscape" (layar landscape) sesuai kondisi aktual.

Hati-Hati

Jangan pernah menggunakan "auto" dalam aplikasi AR Mini Program kapan pun. Dalam beberapa kasus, ini dapat menyebabkan kelainan gambar AR yang serius.

Mengatur orientasi layar

Panggil setDeviceOrientation(deviceOrientation) dan teruskan arah rotasi layar. Ini dapat dipanggil kapan saja dan langsung berlaku.

Misalnya, untuk menggunakan mode landscape ketika layar diputar 90 derajat berlawanan arah jarum jam relatif terhadap posisi portrait alami:

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

Pengaturan orientasi layar yang disediakan plugin mega dimaksudkan untuk mengompensasi tidak adanya pemantauan orientasi layar di WeChat Mini Programs. WeChat hanya menyediakan dua opsi, portrait dan landscape, dalam pengaturan pageOrientation, tetapi dua opsi ini saja tidak cukup untuk aplikasi AR. Misalnya, mode landscape yang diputar 90 derajat berlawanan arah jarum jam dari orientasi alami benar-benar berbeda dari mode landscape yang diputar 270 derajat berlawanan arah jarum jam dari orientasi alami.

Karena itu, ketika pageOrientation dalam app.json diatur ke portrait, Anda dapat tidak memanggil setDeviceOrientation(deviceOrientation), karena arah portrait alami ponsel umum adalah orientasi default session.

Ketika pageOrientation dalam app.json diatur ke landscape, Anda harus memanggil setDeviceOrientation(deviceOrientation) untuk mengunci orientasi layar ke LandscapeLeft atau LandscapeRight