|
| 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. 
-- 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). |
| |
| |
| | | |
|
| | | | |
| | |
|