PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile (précédentes versions) → Récupération push token iOS
Récupération push token iOS
Débuté par jauzanne, 14 avr. 2017 17:26 - 9 réponses
Membre enregistré
5 messages
Posté le 14 avril 2017 - 17:26
Bonjour,

Je rencontre un problème sur la récupération et le formatage du push token iOS
J'utilise NotifPushActive avec la récupération d"un buffer
Afin de l'envoyer en texte à un webservice, je fais un BufferVersHexa(AnsiVersUnicode(bufToken),4) mais j'ai une différence entre le token vu sur XCode (et qui recoit bien les notifications) et celui obtenu dans ma base
sous Xcode, j'ai <63f7040b 1b5c17dc 7f002e0e fbfb67e0 07b139c5 c99df5e5 99e8074c a9bc1e6b>
Et dans ma base avec le traitement ci-dessus j'obtiens :
00000063 000000F7 00000004 0000000B
0000001B 0000005C 00000017 000000DC
0000007F 00000000 0000002E 0000000E
000000FB 000000FB 00000067 000000E0
00000007 000000B1 00000039 000000C5
000000C9 0000009D 000000F5 000000E5
00002122 000000E8 00000007 0000004C
000000A9 000000BC 0000001E 0000006B

qui correspond en tout point au pusk token sauf sur l'avant dernière ligne, premier segment où j'ai une différence (99 <> 00002122)
Est ce un problème de codage ?

Merci pour toute aide

Jerome
Membre enregistré
16 messages
Posté le 07 juin 2017 - 17:42
Bonjour,
As-tu trouvé une solution ? j’ai le même problème merci
Posté le 07 juin 2017 - 18:48
Effectivement, j'ai pu, avec le support, trouver une solution. Je mets cela en ligne demain
Membre enregistré
16 messages
Posté le 09 juin 2017 - 10:02
Merci beaucoup c'est super gentil :-)
Posté le 10 juin 2017 - 18:48
Bonjour,

Je viens de reprendre mon code

1) procédure WLangage saveToken
procedure saveToken(bufToken est un buffer)
Dans une chaine, je récupère BufferVersHexa(bufToken,4)
J'envoie cela en chaine brut à mon webservice php ($vtokentxt)

2) webservice php avec la variable envoyée $vtokentxt
$vtokentxt = preg_replace('/[\r\n]+/', ' ', $vtokentxt);

//Working on vtokentxt, explode by space and littleToBigEndian for each part
$tokenArray = explode(" ",$vtokentxt);

$res="";

for ($i=0;$i<count($tokenArray);$i++) {
$res .= littleToBigEndian($tokenArray[$i])." ";
}

res est mon token bien formaté :-)
Du style
63F7040B 1B5C17DC 7F002E0E FBFB67E0 07B139C5 C99DF5E5 99999999 A9BC1E6B

Enfin l'envoi du pushmessage passe par le création d'un message
Ca ressemble à

$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(mb_strlen($payload)) . $payload;

Amicalement,

Jerome
Membre enregistré
16 messages
Posté le 11 juin 2017 - 16:16
Super !!!!
Je te remercie grandement d'avoir pris le temps de repondre

Merci beaucoup !!!
Membre enregistré
16 messages
Posté le 22 juin 2017 - 14:31
salut dsl de t’embêter encore .. :p

mais a tu la fontion littleToBigEndian( string )

car pour ce que j'ai trouvé ça remet presque tout dans l'ordre mais ça garde le 00 excessif mais aussi il y a toujours le problème du style (99 <> 00002122) comme dans ton annonce :-/

merci par avance : merci:
Message modifié, 22 juin 2017 - 14:31
Membre enregistré
16 messages
Posté le 22 juin 2017 - 14:42
Les 00 c'est mo qui me suis tromper :p
Posté le 22 juin 2017 - 15:07
C'est bon, ca fonctionne ?
Membre enregistré
16 messages
Posté le 22 juin 2017 - 15:53
c'est bon au final tus simplement :

chaine_token est une chaîne = BufferVersHexa(Token)
chaine_token = ChaîneSupprime(chaine_token,RC)
chaine_token = ChaîneSupprime(chaine_token," ")
Token = UnicodeVersAnsi(chaine_token)

merci :) :merci: :p :D