Traduit de l'anglais à l'aide de l'IA
Veuillez noter que cet article a été traduit à l'aide de la technologie IA. Bien que nous travaillions à maintenir l'exactitude, certains détails peuvent ne pas refléter parfaitement le texte original. Si vous avez des doutes sur une information, veuillez vous référer à la version anglaise.
Pourquoi ma capture d'écran ne contient-elle pas tout l'écran ?
Lorsque vous prenez une capture d'écran de votre écran, certaines parties peuvent ne pas être complètes en raison de contenus nécessitant un défilement – comme les écrans d'accueil, les listes de produits ou les détails des produits.
Solution :
- Android : Capturez plusieurs captures d'écran de l'écran et enregistrez-les dans la même zone.
- iOS : Prenez une longue capture d'écran pour capturer l'ensemble de l'écran.
En savoir plus ici
Une capture d'écran Contentsquare ne peut capturer que le contenu qui est rendu par l'application. Ce qui se passe, c'est que dans les cas mentionnés ci-dessus, le contenu qui n'est pas encore visible n'est pas rendu, et le contenu disparaît de l'écran lors du défilement.
La raison en est que les développeurs d'applications mobiles utilisent souvent des composants UI spécifiques pour rendre des listes de contenu, dont le but est d'optimiser les performances et la réactivité de l'application en ne rendant que le contenu visible.
Spécifique à Android
Problème :
L'écran dont vous souhaitez prendre une capture d'écran ne se rend pas bien sur Android (par exemple, les couleurs de fond ne s'affichent pas).
Ce qui cause cela :
Contentsquare ne peut pas capturer les propriétés de style personnalisées dans la capture d'écran. Si des propriétés de style personnalisées ont été utilisées dans le code de votre écran, telles que la couleur de fond, celles-ci ne seront pas rendues dans votre capture d'écran.
Solution :
Utilisez le mode de capture d'écran statique pour capturer vos captures d'écran. Si vous souhaitez avoir l'ensemble de l'écran, capturez plusieurs captures d'écran de chaque section et enregistrez-les dans la même zone.
En savoir plus ici
Les propriétés par défaut sont capturées sans tenir compte des propriétés personnalisées. En raison de cela, si vous capturez une capture d'écran en mode de capture d'écran dynamique par défaut, votre capture d'écran peut avoir des problèmes d'affichage.
Vous pouvez résoudre ce problème grâce à des captures d'écran statiques.
Comment cela fonctionne-t-il ?
La capture d'écran statique ne vous permet de capturer que la partie visible de l'écran de votre téléphone. Contrairement au mode par défaut, le mode statique utilisera la capture d'écran de l'écran entier (similaire à la miniature) et construira un arbre d'éléments d'interface utilisateur visibles uniquement, en attachant moins de propriétés de style (uniquement la position, la largeur et la hauteur).
Comment l'activer ?
Appuyez longuement sur le bouton de capture d'écran pour accéder aux paramètres, activez le drapeau de capture d'écran statique, prenez des captures d'écran en appuyant sur l'icône de capture d'écran.
Dépannage explications techniques
Les développeurs utilisent des composants d'interface utilisateur spécifiques (UITableView ou UICollectionView pour iOS et RecyclerView pour Android) pour faciliter l'affichage efficace de grands ensembles de données. Les développeurs peuvent fournir les données et définir à quoi ressemble chaque élément, et cela créera dynamiquement les éléments lorsqu'ils seront nécessaires.
Ces éléments de conteneur individuels sont recyclés. Lorsqu'un élément défile hors de l'écran, son conteneur n'est pas détruit. Au lieu de cela, la vue (conteneur) est réutilisée pour de nouveaux éléments qui ont défilé à l'écran. Cette réutilisation améliore considérablement les performances et la réactivité de l'application, et réduit la consommation d'énergie.
En général, les développeurs n'utiliseront pas ces composants d'interface utilisateur spécifiques dans ces 2 cas :
Le contenu de l'écran est plus petit que la hauteur de l'appareil :
Le contenu de l'écran n'est pas plus grand que la zone d'affichage, donc il n'est pas nécessaire de faire défiler car tout le contenu est affiché. Pas de problème de capture d'écran, la capture fonctionne bien.
Le contenu de l'écran est un peu plus long, mais rendu :
Le contenu est un peu plus long que la zone d'affichage, les développeurs peuvent décider de créer tous les éléments, même ceux qui ne sont pas encore visibles à l'écran et un peu plus bas à l'écran.
Dans ce cas, Contentsquare pourra capturer une capture d'écran (en mode par défaut iOS ou Android) de tous les éléments d'interface utilisateur qui ont été rendus, même si cela nécessite de faire défiler un peu plus.
Que signifie un 0,00 % ou N/A sur une zone ?
Une zone affiche 0 % lorsque aucune donnée n'a été collectée.
N/A signifie non applicable et est affiché dans le cas où il n'y a pas suffisamment de sessions pour que les données soient significatives, ou lorsqu'une zone contient trop de zones enfants. Essayez de sélectionner une zone plus petite ou un autre segment.
Pourquoi le taux de tap est-il à 0 % pour certaines zones ?
Cause racine : les gestes ne sont pas attachés aux zones les plus basses mais à une zone parente.
Comment valider :
-
Entrez en mode création de zone,
-
Survolez la zone avec 0%,
-
Appuyez sur “touche haut” pour sélectionner la zone parente,
-
Répétez jusqu'à ce que vous ayez sélectionné la zone parente qui a la même taille que celle avec 0%,
-
Créez la zone,
-
Si l'hypothèse est vraie, vous aurez des données.
Sous-cause principale (iOS uniquement) : Les zones sont UIIMAGEVIEW
Solution :
Créez une zone sur une vue parente pour obtenir les taps sur l'image ou utilisez l'option “multi zones” cela sélectionnera la zone parente
Pourquoi le taux de tap est-il à 0% pour toutes les zones (ou une partie significative d'entre elles) ?
Cause principale 1 : l'instantané a été pris sur une version de l'application qui ne correspond pas au contexte d'analyse
Comment valider :
-
survolez le “Instantané X sur Y” pour voir la version de l'application de l'instantané
-
Ouvrez l'AC et ajoutez une condition sur la version de l'application correspondant exactement à celle de l'instantané
-
Appliquez les modifications de l'AC
-
si les données sont maintenant légitimes, c'était la cause principale
Cause principale 2 : le SDK Android n'attache pas les gestes à la vue attendue
Voir l'explication ici.
Pourquoi les captures d'écran échouent-elles ?
Cause principale 1 : Aucune vue d'écran déclenchée auparavant
Pour qu'une capture d'écran soit acceptée par le serveur, elle doit être attachée à une vue d'écran.
Comment nous identifions le problème :
-
Vous devez essayer de reproduire le problème en consultant les journaux
-
Vérifiez s'il y a eu un événement de vue d'écran avant ou non lorsque vous essayez de capturer l'instantané
-
S'il n'y en avait pas, cela signifie que c'est le problème
Solution :
Vous devez mettre à jour le plan de marquage des écrans pour suivre l'écran souhaité
Cause principale 2 : L'instantané est trop grand / La vitesse de téléchargement du réseau est trop lente
La capture de l'instantané en cours prend un certain temps (environ 30 secondes) et échoue ensuite.
Comment nous identifions le problème :
-
Regardez l'écran et si c'est un long écran avec beaucoup d'images, c'est un bon candidat,
-
Quel type de connexion internet avez-vous, surtout en ce qui concerne l'upload. Si c'est un ADSL avec <1Mb/s, c'est un autre indice,
-
Essayez de capturer l'écran sur une connexion internet Fibre ou en utilisant 4G (meilleur upload). Si cela réussit, alors c'est le problème,
-
Si vous êtes sur Android, essayez d'utiliser le mode de capture d'instantané statique pour capturer l'écran. Si cela réussit, alors c'est le problème.
Solution :
Parlez à l'équipe de mise en œuvre
Pourquoi y a-t-il une grande zone grisée avec le texte "Un-tracked webview" ?
Cause racine : Le suivi du Webview ne fonctionne pas pour cet écran.
Le suivi du Webview n'a pas été activé dans les paramètres du SDK
Comment valider le problème :
-
Allez dans les paramètres du SDK,
-
Vérifiez les drapeaux de fonctionnalités,
-
nous devrions avoir ceci :
[{"name":"web_views_tracking","minVersion":"2.0.0","enabled":true}]
Solution :
Dites à l'équipe de mise en œuvre de définir le bon drapeau de fonctionnalité pour le suivi du Webview.
Si la version du SDK est supérieure à 4.1.0, l'équipe de mise en œuvre n'a pas besoin d'ajouter le drapeau de fonctionnalité manuellement.
Le suivi du Webview n'a pas été implémenté du côté de l'application native
Comment valider le problème
-
Avez-vous implémenté le suivi du Webview du côté de l'application native ?
-
si ce n'est pas le cas, c'est au moins une partie du problème
Solution
Suivez les étapes d'implémentation du Webview.
Que faire si le suivi du Webview n'a pas été implémenté du côté de la page web ?
Comment valider le problème :
-
-
Sur iOS : Recherchez un journal spécifique suivant cette documentation.
-
sur Android : Avez-vous implémenté la balise de suivi du Webview sur les pages web chargées dans le Webview ?
-
Solution :
Suivez les étapes d'implémentation de la balise de suivi du Webview.
L'instantané n'est pas rendu comme prévu ou est cassé
Cause racine 1 : Les éléments d'interface utilisateur natifs ne sont pas pris en charge
Comment identifier le problème
Si l'instantané ne ressemble pas à l'écran capturé (parties manquantes) :
-
dans la liste des instantanés
-
le panneau latéral de l'instantané de zonage
-
l'éditeur de zonage
Et si l'élément manquant est un « popup » ou un « menu » ou un élément UI apparaissant par le bas (bottom sheet), alors c'est probablement un élément nativeUI que nous ne supportons pas pour le moment.
Vous pouvez trouver plus de détails et les limitations actuelles ici
Cause racine 2 [sur Android uniquement] : remplacement de style personnalisé
Comment identifier le problème :
Si l'instantané a l'air bon dans la liste des instantanés et le panneau latéral de l'instantané de zonage, mais que l'instantané présente des problèmes d'affichage comme : couleurs incorrectes, sections noires, etc.
C'est probablement un cas où le SDK a des difficultés à obtenir les bonnes valeurs de style parce que vous les avez remplacées dans votre code.
Le symptôme peut même être que l'instantané affiche un écran différent, mais si vous faites attention, vous pouvez voir certains éléments de l'écran attendu comme du texte ou des icônes.
Solution :
Utilisez l'instantané statique. Il a été développé pour gérer les cas particuliers
Cause racine 3 [sur Android uniquement] : Jetpack Compose n'est pas encore supporté sur Android
Jetpack Compose est un kit d'outils UI Android introduit par Google pour construire des interfaces utilisateur natives. Il simplifie le processus de développement UI. Aujourd'hui, le SDK Android est capable d'analyser la partie de l'UI construite avec Compose pour identifier tous les éléments internes. Cela conduit à capturer la partie construite avec Compose comme un seul élément sans la capacité d'analyser les éléments internes.
Pourquoi ne puis-je pas créer une zone sur un élément de liste sur iOS (SwiftUI) ?
Lors de l'utilisation du zonage, vous n'arrivez pas à sélectionner une zone correspondant à un élément qui est la ligne d'une liste. Mais vous pouvez sélectionner des éléments enfants.
Explication :
Le SDK a une limitation lors de la prise d'un instantané ou de la collecte d'événements de geste des écrans SwiftUI qui contiennent des composants VStack et LazyVStack.
Dans certains cas, SwiftUI ne rendra pas un élément UI dans la hiérarchie de la vue pour un élément de liste, c'est particulièrement vrai lorsque l'élément n'a pas de couleur de fond attribuée (ou a une couleur transparente).
Dans l'exemple suivant, nous avons une liste d'éléments, chacun incluant l'image de Luigi et les 2 lignes de texte. Nous voulons créer la zone sur cet élément, mais l'élément UI correspondant à l'élément de liste n'existe pas. Par conséquent, vous ne pourrez pas créer la zone. La raison en est que SwiftUI n'a pas créé l'élément dans UIKit car il n'était pas considéré comme nécessaire :
Solution :
Si possible, nous recommandons d'ajouter un modificateur de couleur de fond pour chaque élément à l'intérieur de la pile. Le modificateur de fond ne peut pas être transparent, il doit être d'une couleur. Cela peut être la même couleur que la couleur de fond de la pile.
Alternativement, nous savons que ce problème n'existe pas lorsqu'un composant Liste est utilisé. Il offre la possibilité d'afficher une liste d'éléments verticalement et présente également les avantages du chargement paresseux et de la réutilisation des éléments, ce qui a un impact moindre sur les performances.
Dans le deuxième exemple ci-dessous, l'élément UI existe. Vous pouvez créer la zone grâce à une couleur de fond qui a été ajoutée, permettant à SwiftUI de créer l'élément dans UIKit :