|
Débuté par Masterfab, 17 déc. 2014 16:10 - 4 réponses |
| |
| | | |
|
| |
Posté le 17 décembre 2014 - 16:10 |
Bonjour à tous,
Je cherche à récupérer un device token iOS avec NotifPushActive, pour l'envoyer en paramètre à un script PHP via un formulaire (HTTPEnvoieFormulaire). Le script PHP est chargé de le stocker dans une base MySQL.
Malheureusement, je ne sais pas quel traitement je dois faire subir à ma variable Token qui est un buffer, pour l'envoyer sous forme de chaîne de caractère via mon formulaire.
Un petit coup de main serait le bienvenu car je commence à m'arracher les cheveux. |
| |
| |
| | | |
|
| | |
| |
Posté le 18 décembre 2014 - 17:42 |
Bonjour,
Personne ne sait convertir un Token Device en chaîne de caractères ?
Je l'ai fait avec d'autres langages, comme LiveCode notamment, et je stocke des Token sous la forme : <b6345ace 434ea0cc fa7ef89b adb4e55d 7e63b4ef 0dc5ee4f ad04f674 c29980d7>
C'est sous cette forme que je les envoie directement au serveur de Push Apple et tout fonctionne très bien.
J'ai besoin de compléter la même base MySQL avec une appli WinDev Mobile, mais je n'arrive pas à convertir les Token !
Merci d'avance pour votre précieuse aide. |
| |
| |
| | | |
|
| | |
| |
Posté le 18 décembre 2014 - 20:03 |
Bonjour Fabrice
buffervershexa si cette instruction est disponible sous IOS...
sinon, boucle sur les octets et numeriqueverschaine au format hexa
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
NOUVEAU: WXReplication, votre système de réplication open source est disponible sur mon site web !!! WXShowroom.com : Montrez vos projets ! Plus d'information sur http://fabriceharari.com
On 12/18/2014 11:42 AM, masterfab wrote:
Bonjour,
Personne ne sait convertir un Token Device en chaîne de caractères ?
Je l'ai fait avec d'autres langages, comme LiveCode notamment, et je stocke des Token sous la forme : <b6345ace 434ea0cc fa7ef89b adb4e55d 7e63b4ef 0dc5ee4f ad04f674 c29980d7>
C'est sous cette forme que je les envoie directement au serveur de Push Apple et tout fonctionne très bien.
J'ai besoin de compléter la même base MySQL avec une appli WinDev Mobile, mais je n'arrive pas à convertir les Token !
Merci d'avance pour votre précieuse aide. |
| |
| |
| | | |
|
| | |
| |
Posté le 19 décembre 2014 - 12:32 |
Bonjour Fabrice,
Ca a marché avec BufferVersHexa(Token,4) !
Merci beaucoup de m'avoir mis sur la voie ! |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 29 messages |
|
Posté le 12 juin 2017 - 17:48 |
Bonjour a tu trouvé ne solution je seche un peut la j'ai fais ça : sauvegarde dur BD : Serveur_Notification.Token = UnicodeVersAnsi(BufferVersHexa(Token,4))
Je l'envoi au programme php après au besoin des utilisateurs : private function littleToBigEndian($little) { return implode('',array_reverse(str_split($little,2))); }
// Sends Push notification for iOS users public function iOS($data, $vtokentxt) { $vtokentxt = preg_replace('/[\r\n]+/', ' ', $vtokentxt); //Working on vtokentxt, explode by space and littleToBigEndian for each part $tokenArray = explode(" ",$vtokentxt); $deviceToken=""; for ($i=0;$i<count($tokenArray);$i++) { $deviceToken .= $this->littleToBigEndian($tokenArray[$i])." "; } // Create the payload body $body['aps'] = array( 'alert' => array( 'title' => $data['mtitle'], 'body' => $data['mdesc'] ), 'sound' => "son_notif.aac" ); $body['wd'] = $data['contenu'] ; // Encode the payload as JSON $payload = json_encode($body);
// Build the binary notification $inner = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(mb_strlen($payload)) . $payload; $notification = chr(2) . pack('N', strlen($inner)) . $inner; $gateway = 'gateway.push.apple.com:2195'; // Create a Stream $ctx = stream_context_create(); // Define the certificate to use $passphrase_key_Pem = "XXXXXXXXXXXXXXXXXXXXXXXX";
stream_context_set_option($ctx, 'ssl', 'local_cert', CERT_REPERTOIRE_PEM."/push_ios.pem"); // Passphrase to the certificate stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase_key_Pem); // Open a connection to the APNS server $fp = stream_socket_client( $gateway, $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx); // Check that we've connected if (!$fp) return false; // Ensure that blocking is disabled stream_set_blocking($fp, 0); // Send it to the server $result = fwrite($fp, $notification, strlen($notification));
// Close the connection to the server fclose($fp); //return "send result=$resultn"; if (!$result) return false; else return true; }
Normalement ça devrai fonctionné mais je n'ai aucune notif sur les telephones ........ grrrrrrrrrrrr
je sèche
Au cas ou merci |
| |
| |
| | | |
|
| | | | |
| | |
|