PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 27 → Plantage au démarrage de l'application
Plantage au démarrage de l'application
Débuté par Simo, 23 nov. 2022 08:07 - 7 réponses
Posté le 23 novembre 2022 - 08:07
Bonjour

J'ai développé une application mobile de gestion des ventes (J'écrit/lit des données depuis un serveur distant via un web service)
Mon problème est qu'à chaque démarrage, il se bloque (pas toujours), il affiche à l'écran "Chargement en cours..."
Pour le faire démarrer, je dois appuyer sur le bouton de fermeture de mon téléphone "Fermer" ou je clique sur l'icône de mon application et maintenez jusqu'à ce que le menu contextuel affiche les 3 options "Sélect., Ajouter à l'accueil, Désinst., puis je clique sur l' icône "i" Information sur l'application ", puis je force l'arrêt de l'application.

Puis je relance l'application et ca marche sans aucun plantage

Avez-vous une explication à mon problème ?
Merci d'avance
Membre enregistré
2 414 messages
Popularité : +93 (137 votes)
Posté le 23 novembre 2022 - 12:12
Oui bien sûr,
Ma boule de divination me dit
Rajoute des temporisations
Ou
Demande le code.
Ou
Évite les données distante dès l'ouverture de l'application.
Posté le 24 novembre 2022 - 08:22
Merci Popoy

Le premier démarrage j'essaye de me connecter au serveur puis j'ouvre la fenêtre d'identification de session
alors il se plante avant d'ouverture de session, donc je ne demande pas encore des données distante

Pour "Demande le code." j'ai pas compris ta proposition
Posté le 24 novembre 2022 - 09:43
tu as télémétrie ?

je l'ai viré , ça plantait régulièrement des applis chez moi
Posté le 24 novembre 2022 - 09:54
Merci Monsieur ouille

Je n'ai pas encore utilisé la télémétrie

je t'explique
Première démarrage, je vérifie la connexion au serveur via une procédure web service, si oui j'ouvre la fenêtre de session(Login et mot de passe)
Mais il se plante avant d'ouverture de session. // coté mobile

Procédure de WS
gnVérifierConnexion est une SeconnecterAuServeur
gNVérifierConnexionReponse est une SeconnecterAuServeurResponse

gNVérifierConnexionReponse=SeconnecterAuServeur(gnVérifierConnexion)

Multitâche(-5)
SI gNVérifierConnexionReponse.SeconnecterAuServeurResult="bonjour" ALORS
OuvreFenêtreMobile(FenSession)
FIN

Dans l'init du projet je met la description de serveur (c'est le seul code qui existe) coté serveur
Cnx_Serveur..Provider = hAccèsHFClientServeur
Cnx_Serveur..Utilisateur = "Admin"
Cnx_Serveur..MotDePasse = Ini_PasseBDD
Cnx_Serveur..Serveur = Ini_AdresseServeur
Cnx_Serveur..BaseDeDonnées = Ini_NomBDD
Cnx_Serveur..Cryptage = hCryptageStandard
Cnx_Serveur..InfosEtendues = "Infos étendues"
Cnx_Serveur..OptionsCurseur = hCurseurClient

SI PAS HOuvreConnexion(Cnx_Serveur) ALORS
FinProgramme("La connexion à la base de données refusée !")
FIN

SI PAS HChangeConnexion(Gestion,Cnx_Serveur) ALORS
FinProgramme("Le changement de la connexion de base de données refusé !")
FIN

SI PAS HCréationSiInexistant(Gestion,Ini_Passefic,hOuvertureDifférée) ALORS
FinProgramme(HErreurInfo(hErrComplet))
FIN

Jje ne consulte aucun fichier HF
Membre enregistré
2 414 messages
Popularité : +93 (137 votes)
Posté le 24 novembre 2022 - 15:16
Merci pour le code.
Il n'y a pas de fonction HErreurInfo pour HOuvreConnexion et HChangeConnexion
De plus tu fais des FinProgramme de suite
Pourquoi ne pas rajouter des toasts entre HOuvreConnexion, HChangeConnexion et HCréationSiInexistant
Ainsi que des Multitâche
Cela permettrait de savoir plus précisément où ça plante et de laisser respirer le système.
Pourquoi aussi ne pas avoir une base local avec réplication sur le serveur.
Membre enregistré
140 messages
Posté le 25 novembre 2022 - 08:50
@Popoy : j'approuve, mais il n'y a que pour HCréationSiInexistant que HErreurInfo n'est pas mentionné. J'ajouterais d'essayer ce code issu de l'aide de HCréationSiInexistant :
QUAND EXCEPTIONEXCEPTION DANS
HCréationSiInexistant(NomFichierHF)
FAIRE
Erreur("Erreur HFSQL : " + HErreur())
SINON
Trace("fichier créé")
FIN
Posté le 25 novembre 2022 - 09:42
Merci pour vos retour

Donc je fais mes tests