PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV Mobile 2025 → Mise à jours d'une application Android
Mise à jours d'une application Android
Iniciado por Stéphane D., out., 31 2025 5:07 PM - 4 respostas
Membro registado
203 mensagems
Publicado em outubro, 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.
Membro registado
3.732 mensagems
Publicado em novembro, 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
Membro registado
203 mensagems
Publicado em novembro, 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.
Membro registado
203 mensagems
Publicado em novembro, 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.
Membro registado
6 mensagems
Publicado em novembro, 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).