A partir de Android 9, Google supprime par défaut la possibilité d'utiliser le protocole HTTP (non sécurisé), au profit de l'utilisation de HTTPS (un certificat sur le serveur permet le chiffrement des échanges).


De ce fait lorsqu'une application est générée en spécifiant un niveau d'API cible à 28, et que le système d'exécution est Android 9 ou supérieur, si l'application utilise le protocole HTTP le contenu de la réponse sera vide.


Les fonctionnalités principalement impactées sont les suivantes :

  • consommation d'un webservice importé dans le projet via sons WSDL,
  • connexion à une base de données par SQLConnecteWS (via le serveur réservé),
  • récupération d'images,
  • l'affichage d'un contenu dans un champ HTML...

 

Donc sous Android 9 afin de rétablir l'accès aux ressources, les solutions sont les suivantes :

 

Solution 1 : passer tous les échanges HTTP en HTTPS :

  • ajout d'un certificat sur le serveur web qui héberge le webservice, images, pages (…),
  • modifier dans l'application les adresses pour avoir "https://..." et non plus "http://...". Le remplacement doit être fait :
    • dans les adresses pour accéder à des contenus HTML, des images,
    • pour l'adresse d'un webservice importé : <NomWebservice>..Adresse = "https://..."

 

Solution 2 : autoriser l'utilisation de HTTP :

 

En effet on peut indiquer dans le manifeste configuré lors de la génération de l'APK que le protocole HTTP pourra être utilisé. Cela peut être fait de deux façons :

  • de façon automatique et systématique pour toutes les applications grâce à une mise à jour de WINDEV Mobile 24 :
    • demander la mise à jour portant la référence 114 307 dans les modules correctifs proposés dans les ressources pratiques de notre site :
      https://www.pcsoft.fr/st/nouveautes-st.html
      régénérer et déployer à nouveau l'application avec la mise à jour installée.

  • de façon ponctuelle en éditant le manifeste de l'application lors de sa génération (cela permet d'effectuer le réglage application par application) :
    • lancer l'assistant de génération de l'application,
    • à l'étape "Configuration" cliquer sur "Editer le manifeste",
    • sélectionner le noeud "Application",
    • clic droit sur le noeud et "Ajouter un attribut",
    • indiquer le nom "android:usesCleartextTraffic" et la valeur "true" pour la valeur :

    • valider l'édition du manifeste puis les étapes suivantes de l'assistant.


Dans une prochaine version de WINDEV Mobile, l'assistant de génération de l'APK proposera une option dédiée pour autoriser ou non l'utilisation de HTTP.

 

 

< Retour

Publier un commentaire : 
Votre adresse email ne sera pas publiée