PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile (précédentes versions) → WM18 windows phone 8 charger champ image avec adresse http
WM18 windows phone 8 charger champ image avec adresse http
Débuté par olafarge, 01 juin 2015 17:52 - 1 réponse
Membre enregistré
3 messages
Posté le 01 juin 2015 - 17:52
Bonjour,
je travaille sur une petite appli ayant un champs image, j'ai céé un timer et toute les 300 milisecondes, je dois charger l'image sur le serveur http (le format retourné est en jpeg) (URL style http://192.168.16.22:8080/livefeed…)
Cela fonctionne parfaitement sur Android et sous iOS avec quelques modification, mais impossible d'arriver à le faire fonctionner sur Windows phone (différence totale de fonctionnement entre l'appareil et le simulateur WindevM
Mon code d'origine pour Android:
Procedure t1_tick()

sUrl est une chaîne
sImage est une chaîne
sCam est une chaîne
sCam=FEN_principal.gtabLcam[FEN_principal.gnActucam]
sUrl="http://" + FEN_principal.gsErveur + ":" + FEN_principal.gsPort + "/livefeed?oid=" + sCam //+ FEN_principal.gtabLcam[fen_principal.gnActucam]
SI FEN_principal.gsAuth<>"" ALORS
sUrl=sUrl + "&auth=" + FEN_principal.gsAuth
FIN
sUrl=sUrl + "&size=" + NumériqueVersChaîne(FEN_principal.gnTailleX) + "x" + NumériqueVersChaîne(FEN_principal.gnTailleY)
SI HTTPRequête(sUrl)
//sImage=""
sImage=HTTPDonneRésultat(httpRésultat)
//sinon

FEN_principal.IMG_2=sImage

FIN

J'ai du modifier comme ceci pour Ios:
sTemp est une chaîne ANSI
surl est une chaîne
surl=SAI_URL

SI EnModeiOS ALORS
SI HTTPRequête(surl) ALORS
sTemp=HTTPDonneRésultat()
//décorticons les données reçues
SI ChaîneOccurrence(sTemp,"cameras")>0 ALORS
//on a bien le retour avec les infos complètes
tabSpl1 est un tableau dynamique de 0 chaînes
tabSpl2 est un tableau dynamique de 0 chaînes
tabSpl3 est un tableau dynamique de 0 chaînes
ChaîneVersTableau(sTemp,tabSpl1,";")
SI ChaîneOccurrence(tabSpl1[2],"var iSpyResult")>0 ALORS
nPos est un entier
nPos=Position(tabSpl1[2],"{",1,DepuisDébut)
sTrait est une chaîne
sTrait=Milieu(tabSpl1[2],nPos+1)
sTrait=Remplace(sTrait,"""","")
ChaîneVersTableau(sTrait,tabSpl2,",")
nPos=Position(tabSpl2[1],"http:",1,DepuisDébut)
tabSpl2[1]=Milieu(tabSpl2[1],nPos+7)
tabSpl2[1]=Milieu(tabSpl2[1],1,Taille(tabSpl2[1])-1)
ChaîneVersTableau(tabSpl2[1],tabSpl3,":")
SAI_Serveur=tabSpl3[1]
SAI_Port=tabSpl3[2]
ChaîneVersTableau(tabSpl2[2],tabSpl3," ")
SAI_AUTH=tabSpl3[3]
sTempcam est une chaîne
nBC est un entier
POUR nBC=3 A TableauInfo(tabSpl2, tiNombreTotal)
sTrait=tabSpl2[nBC]
SI ChaîneOccurrence(sTrait,"id:")>0 ALORS
nPos=Position(sTrait,"id:",1,DepuisDébut)
SI nPos>0 ALORS
nPos+=3
SI Taille(sTempcam)=0 ALORS
sTempcam=Milieu(sTrait,nPos)
SINON
sTempcam=sTempcam + "-" + Milieu(sTrait,nPos)
FIN
FIN
FIN


FIN
SAI_Cameras=sTempcam
FIN
FIN
FIN
SINON
// code a mettre pour la compilation Windows Phone

FIN


Mais dans les différences j'ai deux autres problèmes aussi à résoudre (tant qu'à faire)
Afin de récupérer des codes d'authentification, dans mon panneau config, j'ai un champ où je spécifie l'adresse du serveur et un bouton pour aller dessus afin de faire un copier coller et revenir sur ma page config le coller dans un champs prévu à cet effet. Sous Android et iOS j'ai utilisé NavigateurLanceAppli("http://" + SAI_IspySERV + "/gadget.aspx") car il faut s'identifier puis sélectionner le serveur d'image pour générer l'adresse à recopier dans les parametres.
sous Windows phone 8 visiblement je ne peux pas, j'ai fait un test avec un champs HTML, mais bon il y a peut être mieux a faire que cette gymnastique.

Le dernier problème c'est que dans une de mes fonctions, je récupère la dernière liste d'information sur un pc sous la forme suivante pour iOS et Android (URL style http://192.168.16.22:8080/connect)
SI EnModeiOS ALORS
SI HTTPRequête(surl) ALORS
sTemp=HTTPDonneRésultat()
tabSpl1 est un tableau dynamique de 0 chaînes
ChaîneVersTableau(sTemp,tabSpl1,",")
SAI_AUTH=tabSpl1[1]
FIN
SINON
//mode autre que IOS



FIN


Si vous pouviez m'aider, car je commence à ne plus comprendre, surtout ayant d'énorme différences entre le simulateur de test WinDev et l'appareil lui même.
Membre enregistré
3 messages
Posté le 01 juin 2015 - 17:57
Le deuxième code je me suis trompé en collant, c'est le code de l'autre fonction utilisant httprequête, en fait entre Android et iOS j'ai juste les conversion numerique vers chaine en moins

Je n'ai pas testé sur un iPhone pour le moment juste avec l'émulateur WinDev, j'attend un MacBook d'ici quelques jours pour faire la compilation Xcode