AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke iOS PushNotifications über TIdTCPClient

iOS PushNotifications über TIdTCPClient

Ein Thema von NickD · begonnen am 20. Okt 2016 · letzter Beitrag vom 20. Okt 2016
 
NickD

Registriert seit: 10. Okt 2012
Ort: Burgsinn
53 Beiträge
 
Delphi 10.3 Rio
 
#1

iOS PushNotifications über TIdTCPClient

  Alt 20. Okt 2016, 08:52
Hallo zusammen,
ich versuche gerade über eine Delphi-Windows-Anwendung eine PushNotification an eine App zu senden. Dies funktioniert auch, solange keine Sonderzeichen, Umlaute, etc.. verwendet werden.
Ich habe dann bei Apple nachgelesen, das ein UTF8 String erwartet wird. Aber egal was ich versuche, die Nachricht kommt nicht an bzw. wird von Apple verworfen.

Hier mein Code um die Notification zu senden, die auskommentierten Stellen sind Versuche die ich unternommen habe, um die Nachricht im UTF-8 Format zu senden:

Delphi-Quellcode:
 
    TCPClient := TIdTCPClient.Create;
    IdSSLIOHandlerSocketOpenSSL1 := TIdSSLIOHandlerSocketOpenSSL.Create();
    try
      TCPClient.Host := 'gateway.sandbox.push.apple.com';
      TCPClient.Port := 2195;
      TCPClient.IPVersion := TIdIPVersion.Id_IPv4;

      IdSSLIOHandlerSocketOpenSSL1.Host := 'gateway.sandbox.push.apple.com';
      IdSSLIOHandlerSocketOpenSSL1.Port := 2195;
      IdSSLIOHandlerSocketOpenSSL1.Destination := 'gateway.sandbox.push.apple.com:2195';
      IdSSLIOHandlerSocketOpenSSL1.MaxLineAction := maException;
      IdSSLIOHandlerSocketOpenSSL1.SSLOptions.CertFile := '****.pem';
      IdSSLIOHandlerSocketOpenSSL1.SSLOptions.KeyFile := '****.pem';
      IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvSSLv23;
      IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmClient;
      IdSSLIOHandlerSocketOpenSSL1.DefStringEncoding := TIdTextEncoding.UTF8;

      IdSSLIOHandlerSocketOpenSSL1.SSLOptions.SSLVersions := [sslvSSLv2, sslvSSLv3, sslvTLSv1];

      TCPClient.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
      try
        if not TCPClient.Connected then
          TCPClient.Connect;

        strMsg := GetMessageIos(ADeviceToken, GetPayLoadIos(AMessage, 'default', 0, AFrom, ATo));
       // strMsg := UTF8Encode(strMsg);

        //StreamMsg := TStringStream.Create(UTF8Encode(strMsg), TEncoding.UTF8);
        //StreamMsg := TStringStream.Create(strMsg);
        //StreamMsg.SaveToFile('C:\TestOhneEncoding.txt');
        //StreamMsg.Seek(0, soBeginning);

        StreamMsg2 := TStringStream.Create('');
        StreamMsg2.WriteString(strMsg);
        StreamMsg2.Seek(0, soBeginning);

       // TCPClient.IOHandler.WriteLn(strMsg, TEncoding.UTF8);
        TCPClient.IOHandler.Write(StreamMsg2);
        TCPClient.Disconnect;
      except
        Result := False;
      end;
    finally
      TCPClient.Free;
      IdSSLIOHandlerSocketOpenSSL1.Free;
    end;
  Mit Zitat antworten Zitat
 

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz