PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile 2025 → Mise à jours d'une application Android
Mise à jours d'une application Android
Started by Stéphane D., Oct., 31 2025 5:07 PM - 7 replies
Registered member
206 messages
Posted on October, 31 2025 - 5:07 PM
Bonjour à tous,
J'ai trouvé un bout de code sur ce forum que j'ai adapté dans mon appli.
J'ai fait une procédure que le lance à l'init de ma première fenêtre.
Il fait bien son job jusqu'à l'installation.
Voici le code :
SI EnModeAndroid() ALORS

Res = HTTPRequête("https://www.xxx.fr/GLOBALPLANNING/VERSION.txt")
SI Res = Vrai ALORS
VersionAjour = AnsiVersUnicode(HTTPDonneRésultat())
FIN

SI Val(VersionAjour) > Val(maVersion) ALORS

<Compile SI TypeConfiguration=Android>
TitreSuivant("Merci de ne pas quitter l'application, Téléchargement de la mise à jour...")
Sablier()
HTTPDestination(fRepEnCours()+"/GPLANNING.apk")
HTTPRequête("https://www.xxx.fr/GLOBALPLANNING/GPLANNING.apk")
Multitâche(-100)
Sablier(Faux)
SI fFichierExiste(fRepEnCours()+"/GPLANNING.apk") ALORS
TitreSuivant("Lancement de l'installation")
SINON
Erreur("le fichier n'existe pas ...")
FIN
Sablier()

Res = LanceAppliAssociée(fRepEnCours()+"/GPLANNING.apk")

SI Res = Faux ALORS
Erreur(ErreurInfo(errComplet))
FIN

SI ErreurDétectée ALORS
Erreur(ErreurInfo(errComplet))
FIN
TitreSuivant("")
Multitâche(-100)
Sablier(Faux)
<FIN>
SINON
ToastAffiche("Application GPLANNING à jour.",toastCourt,cvBas,chCentre)
FIN

FIN

Il trouve bien la mise à jour, il ne tombe dans aucun erreur...
Avez vous une idée ?
Merci d'avance de vos réponse.

--
Stéphane.
Registered member
3,747 messages
Posted on November, 01 2025 - 3:00 AM
Salut
D'après moi, le souci vient du fait que la destination du fichier ne peut être utilisée que par ton application
Or tu lance une application externe pour installer l'APK
Il faut trouver un emplacement accessible par l'autre programme
De plus, il faudrait que ton application soit fermée pour que la mise à jour fonctionne
Registered member
206 messages
Posted on November, 01 2025 - 12:10 PM
Salut Popoy,
Effectivement je comprend ton explication. Le fRepEnCours() n'est pas très judicieux si je ferme l'application...
Je regarde cela lundi, et je viendrais mettre le bon de code qui va bien...
Un bon week-end. :merci:

--
Stéphane.
Registered member
206 messages
Posted on November, 03 2025 - 4:16 PM
Bonjour à tous,
Et bien je viens de faire les modification mais cela ne fonctionne toujours pas...
Voici les modification :
SI EnModeAndroid() ALORS

Res = HTTPRequête("https://www.xxx/GLOBALPLANNING/VERSION.txt")
SI Res = Vrai ALORS
VersionAjour = AnsiVersUnicode(HTTPDonneRésultat())
FIN

SI Val(VersionAjour) > Val(maVersion) ALORS

<Compile SI TypeConfiguration=Android>
TitreSuivant("Merci de ne pas quitter l'application, Téléchargement de la mise à jour...")
Sablier()
HTTPDestination(SysRepStockageExterne(1,ssePublicTéléchargement)+[fSep]+"GPLANNING.apk")
HTTPRequête("https://www.xxx.fr/GLOBALPLANNING/GPLANNING.apk")
Multitâche(-100)
Sablier(Faux)
SI fFichierExiste(SysRepStockageExterne(1,ssePublicTéléchargement)+[fSep]+"GPLANNING.apk") ALORS
TitreSuivant("Lancement de l'installation")
SINON
Erreur("le fichier n'existe pas ...")
FIN
Sablier()

Res = LanceAppliAssociée(SysRepStockageExterne(1,ssePublicTéléchargement)+[fSep]+"GPLANNING.apk")

SI Res = Faux ALORS
Erreur(ErreurInfo(errComplet))
FIN

SI ErreurDétectée ALORS
Erreur(ErreurInfo(errComplet))
FIN

Multitâche(-100)
Sablier(Faux)
FinProgramme()
<FIN>
SINON
lib_version += maVersion
FIN

FIN

Il fait bine le telechargement, je le vois bien dans le répertoire téléchargement du téléphone, il me met bien le message :
TitreSuivant("Lancement de l'installation")

Ce message s'affiche que 3 seconde et plus rien.
Merci d'avance pour votre aide.

--
Stéphane.
Registered member
7 messages
Posted on November, 04 2025 - 2:02 PM
Bonjour,
As-tu les autorisations nécessaires INSTALL_PACKAGES et REQUEST_INSTALL_PACKAGES de mémoire.
J'avais développé un système similaire pour palier la complexité du Play Store (et notamment l'obligation des API 35, je suis en WM27) et j'avais rencontré un problème d'interruption de procédure sans aucun message d'erreur (pas de problème en mode GO pendant les tests).
Finalement, je suis revenu en arrière car je ne trouve pas ça terrible de forcer les clients à autoriser les applications de source inconnue (malgré la lourdeur de la mise en ligne du Play Store).
Registered member
206 messages
Posted on November, 05 2025 - 11:40 AM
Salut Christophe,
Merci de ta réponse.
Oui effectivement, moi avec ma version WM25 et non pas WM2025, je risque de rencontrer de gros problème, car je penses que la WD25 sur le playStore n'en voudra pas...
Donc si je suis sous la version 2026, normalement je n'aurais pas ces contraints, c'est bien cela ?
Et la version 2025/2026, est ce que le déploiement pour android et ios sont simplifié ?
Merci d'avance pour vos réponse.

--
Stéphane.
Registered member
7 messages
Posted on November, 05 2025 - 8:13 PM
Salut Stéphane,

Je ne sais pas si tu peux compiler une appli compatible avec les restrictions du Play Store (API 35) avec WM25, perso en WM27, j'ai utilisé les conseils trouvé sur ce forum et notamment ce lien vers le blog du support :

https://blogs.pcsoft.fr/fr/generation-application-android-fournir-parametres-specifiques-proposes-edition-manifeste-assistant-generation-apk-aab/281474976711034/read.awp

En parallèle, j'ai télécharger Android Studio pour récupérer le SDK pour l'API 35 (sur les conseils de Popoy qui cite Boller) mais sans rien changer dans la configuration de l'assistant de WM (hormis ce qui est dans l'article du blog).
Je veux dire par là que je n'ai pas indiqué à WM le chemin du SDK fraichement téléchargé.
Donc soit WM va chercher le SDK pile-poil dans le répertoire par défaut d'Android Studio, soit la manip indiquée dans le blog est suffisante pour passer la restriction (où alors j'avais déjà le SDK API 35 dans le répertoire que WM utiliser pour la compilation).

Toujours est-il que même avec WM2026, l'utilisation du Play Store est, à mon sens, très lourd. Même si tu compiles avec l'API35, la procédure de mise en ligne est ... particulière : logo de ton appli à la bonne dimension, captures d'écran à la bonne résolution, pleins de questions, tests avec plusieurs testeurs (12 dans mon cas), délais avant la mise à disposition du public (14 jours pour moi), 20 dollars à régler (plus si certification entreprise).
Bref, il faut bien peser le pour et le contre avant de ce lancer dans cette aventure. Une fois que tout est bon, c'est plus simple avec le Play Store ... jusqu'à la prochaine modification de leurs conditions... mais vis-à-vis des clients, ça fait plus sérieux que de leurs demander d'autoriser les sources inconnues, d'analyser l'appli à chaque mise à jour ...

Pour en revenir à ton problème, les autorisations PACKAGE sont obligatoires pour gérer les APK (mise à jours) et pour ma part SysRepStockageExterne(1,ssePublicTéléchargement) ne fonctionne pas en dehors du mode GO. Il lui faut une autre autorisation, à ajouter dans le manifeste mais aussi à demander explicitement à l'utilisateur. Dans ton cas, ça ne pose pas vraiment de problème car SysRepStockageExterne(1,ssePublicTéléchargement) va te retourner une chaine vide, donc ton fichier sera dans le répertoire courant de ton appli et ça fonctionnera quand même (par contre, tu ne pourras pas "voir" le fichier avec l'explorateur Windows ou le "Mes fichiers" d'Android.

Bon dév' à toi
Registered member
206 messages
Posted on November, 06 2025 - 3:33 PM
Salut Christophe,
Encore merci pour cette réponse.
Oui c'est vrai c'est la galère avec le playstore, je viens de déposer ma première version et hop 1 erreur.... API 35...
Enfin c'est pas grave je vais tester dans la semaine prochaine tes liens et conseils pour avancer sur Android Studio pour l'API 35 ainsi que le grald.

Par contre pour le premier point SUPER MERCI cela fonctionne en ajoutant dans le manifest les deux éléments : INSTALL_PACKAGES et REQUEST_INSTALL_PACKAGES.
Et comme tu dis, pour moi c'est pas trop grave, pour le début de l'application elle sera comme cela.
Mais bien-sur, pour la suite je vais bien évidement faire comme toi, la mettre sur le playstore.

Encore un très grand merci pour ton aide.

--
Stéphane.