Passer au contenu principal

Personnalisation de l'écran de chargement

la bibliothèque XRExtras de 8th Wall fournit des modules qui répondent aux besoins les plus courants des applications WebAR, notamment l'écran de chargement, les flux de liens sociaux et la gestion des erreurs.

Le module Loading affiche une fenêtre de chargement et un message d'autorisation de la caméra pendant que les bibliothèques sont chargées sur et que la caméra démarre. C'est la première chose que voient vos utilisateurs lorsqu'ils entrent sur votre expérience WebAR.

Cette section décrit comment personnaliser l'écran de chargement en fournissant des valeurs qui modifient la couleur , le spinner de chargement et l'animation de chargement pour qu'ils correspondent au design général de votre expérience.

ID / Classes à remplacer

Écran de chargementiOS (13+) Motion Sensor Prompt
  1. #requestingCameraPermissions
  2. #requestingCameraIcon
  3. #loadBackground
  4. #loadImage
  1. .prompt-box-8w
  2. .prompt-button-8w
  3. .button-primary-8w

Pour personnaliser le texte, vous pouvez utiliser un MutationObserver. Veuillez vous référer à l'exemple de code ci-dessous.

Paramètres du composant A-Frame

Si vous utilisez XRExtras avec un projet A-Frame, le module xrextras-loading permet de personnaliser facilement l'écran de chargement grâce aux paramètres suivants :

ParamètresTypeDescription
couleur d'arrière-plan de la caméraCouleur hexagonaleCouleur de fond de la partie supérieure de l'écran de chargement, derrière l'icône de la caméra et le texte (voir ci-dessus). Écran de chargement #1)
loadBackgroundColorCouleur hexagonaleCouleur de fond de la partie inférieure de l'écran de chargement, derrière l'image loadImage (voir ci-dessus). Écran de chargement n° 3)
loadImageidentifiantL'identifiant d'une image. L'image doit être un <a-asset> (voir ci-dessus. Écran de chargement n° 4)
loadAnimationChaîneStyle d'animation de loadImage. Choisissez entre spin (par défaut), pulse, scale, ou none

Exemple de composant de cadre A

<a-scene
tap-place
xrextras-almost-there
xrextras-loading="
loadBackgroundColor: #007AFF;
cameraBackgroundColor: #5AC8FA;
loadImage: #myCustomImage;
loadAnimation: pulse"
xrextras-runtime-error
xrweb>

<a-assets>
<img id="myCustomImage" src="assets/my-custom-image.png">
</a-assets>

Méthode Javascript/CSS

const load = () => {
XRExtras.Loading.showLoading()
console.log('customizing loading spinner')
const loadImage = document.getElementById("loadImage")
if (loadImage) {
loadImage.src = require("./assets/my-custom-image.png")
}
}
window.XRExtras ? load() : window.addEventListener('xrextrasloaded', load)

Exemple CSS

#requestingCameraPermissions {
color : black !important ;
background-color : white !important ;
}
#requestingCameraIcon {
/* L'image passe du blanc au noir */
filter : invert(1) !important ;
}

.prompt-box-8w {
background-color : white !important ;
color : #00FF00 !important ;
}
.prompt-button-8w {
background-color : #0000FF !important ;
}

.button-primary-8w {
background-color : #7611B7 !important ;
}

personnalisation du texte de l'invite du détecteur de mouvement pour iOS (13+)

let inDom = false
const observer = new MutationObserver(() => {
if (document.querySelector('.prompt-box-8w')) {
if (!inDom) {
document.querySelector('.prompt-box-8w p').innerHTML = '<strong>Mon nouveau texte va ici</strong><br/><br/>Appuyez sur Approve pour continuer.'
document.querySelector('.prompt-button-8w').innerHTML = 'Deny'
document.querySelector('.button-primary-8w').innerHTML = 'Approve'
}
inDom = true
} else if (inDom) {
inDom = false
observer.disconnect()
}
})
observer.observe(document.body, {childList: true})