Aller au contenu

Dépannage de WebView

Application Webview Test

Pour faciliter l’intégration de la solution SignBook dans une webview mobile, nous recommandons l'utilisation de l'application officielle Webview Test, disponible sur le Google Play Store ou pour les Iphones sur l'Apple App Store.

Cette application permet de tester et de diagnostiquer la compatibilité du SignBook dans un environnement de webview sécurisé. En cas de difficulté, elle aide à déterminer si le problème vient de votre application mobile ou du périphérique lui-même.

En isolant la webview, Webview Test vous permet d’identifier rapidement la source des erreurs et ainsi de simplifier le débogage.

Problème pour sélectionner une image depuis l'appareil photo du mobile dans Android WebView

L'élément Html inputFile ne fonctionne pas avec l'appareil photo pour prendre une photo et sélectionner ce fichier pour le passer au formulaire html, Ce n'est pas supporté par Android Webview

Solution

Il est nécessaire d'ajouter dans le manifest.xml :

<intent>
    <action android:name='android.intent.action.GET_CONTENT' />
    <data android:mimeType='image/jpeg' />
</intent>

et assurez-vous globalement que vous avez les lignes suivantes

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="mypackage">
    <queries>
    <!-- Camera --><intent><action android:name="android.media.action.IMAGE_CAPTURE" /></intent>
    <!-- Gallery --><intent><action android:name="android.intent.action.GET_CONTENT" /></intent>
    </queries>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.INTERNET"/>
...
</manifest>

Problème d'ouverture des fenêtres pop-up suite en cliquant sur des liens

Impossible d'ouvrir une nouvelle fenêtre contextuelle dans une WebView

Solution

Pour résoudre ce problème, vous pouvez utiliser les méthodes suivantes :

  1. Essayez d'ajouter des paramètres dans votre application mobile
WebSettings webSettings = webViewPage.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportMultipleWindows(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
  1. Utiliser une redirection au lieu d'ouvrir une fenêtre popup, mais c'est une solution de contournement.

Problème avec l'attribut playsinline lors de l'utilisation de la vérification d'identité par vidéo

Cet attribut indique au navigateur de ne pas lire la vidéo en mode plein écran.

Malheureusement, l'attribut de l'élément vidéo html playsinline n'est pas pris en charge par certaines versions de WebKit Webview sur les iphones IOS.

Solution

WebKit WebView (WKWebView) sur iPhone ne prend pas en charge la lecture vidéo à l'emplacement prévu https://developer.mozilla.org/fr/docs/Web/HTML/Element/video#playsinline. Pour résoudre ce problème, vous pouvez utiliser les méthodes suivantes :

  1. Mettre à jour le SDK IOS utilisé pour rebuilder l'application mobile.
  2. Configurez WKWebView en ajoutant le paramètre allowsInlineMediaPlayback à true dans l'objet WKWebViewConfiguration.
  3. Utilisez Safari WebView plutôt que WKWebView, il y a plusieurs types de webview sur Iphone (WKWebView, UIWebView et SafariWebView).

Problème avec la caméra dans le FaceMatch photo l'écran est noir

WebView ne prend pas en charge la lecture automatique du flux vidéo de la caméra avec l'attribut "autoplay".

Solution

Il faut explicitement l'activer dans les paramètres de la WebView :

myWebView.getSettings().setMediaPlaybackRequiresUserGesture(false);