TsgcWSAPIServer_WebPush › Methoden › SendNotification
Verschlüsselt eine Web-Push-Benachrichtigung und sendet sie per POST an einen einzelnen Subscription-Endpunkt unter Verwendung der konfigurierten VAPID-Anmeldeinformationen.
procedure SendNotification(const aSubscription : TsgcHTTP_API_WebPush_PushSubscription; const aMessage: TsgcWebPushMessage);
| Name | Typ | Beschreibung |
|---|---|---|
aSubscription | const TsgcHTTP_API_WebPush_PushSubscription | Ziel-Abonnement, das den Push-Service-Endpoint sowie den p256dh-PublicKey und das AuthSecret des Browsers transportiert, die zur Verschlüsselung der Nutzlast verwendet werden. |
aMessage | const TsgcWebPushMessage | Strukturierte Nachricht mit Title, Body, Icon und Url; vor der Verschlüsselung über AsJSON in JSON serialisiert. |
Bevorzugter Overload, wenn die Bibliothek eine wohlgeformte Benachrichtigungs-Payload für den Service Worker des Browsers erstellen soll. Die AsJSON-Darstellung der Nachricht wird mit aes128gcm unter Verwendung der Abonnementschlüssel verschlüsselt und gemäß RFC 8030 per POST an den Push-Dienst gesendet.
var
oMessage: TsgcWebPushMessage;
begin
oMessage := TsgcWebPushMessage.Create;
try
oMessage.Title := 'eSeGeCe Notification';
oMessage.Body := 'Subscription Successfully Registered!!!';
oMessage.Icon := 'https://www.esegece.com/images/esegece_logo_small.png';
oMessage.Url := 'https://www.esegece.com';
sgcWSAPIServer_WebPush1.SendNotification(aSubscription, oMessage);
finally
oMessage.Free;
end;
end;
procedure SendNotification(const aSubscription : TsgcHTTP_API_WebPush_PushSubscription; const aMessage: string);
| Name | Typ | Beschreibung |
|---|---|---|
aSubscription | const TsgcHTTP_API_WebPush_PushSubscription | Ziel-Abonnement, dessen Endpoint, PublicKey (p256dh) und AuthSecret den verschlüsselten POST steuern. |
aMessage | const string | Rohe Nutzlast, die nach der Verschlüsselung unverändert gesendet wird; typischerweise ein JSON-String, den Ihr Service Worker zu parsen weiß. |
Verwenden Sie diese Überladung, wenn Sie bereits ein vorgefertigtes JSON- oder Klartext-Payload halten (zum Beispiel von TsgcJSON erzeugt oder aus dem Speicher geladen). Push-Dienste akzeptieren normalerweise bis zu ~4 KB verschlüsselten Inhalts; ein Überschreiten löst eine 413-Antwort aus, die über OnWebPushSendNotificationException erneut ausgelöst wird.
sgcWSAPIServer_WebPush1.SendNotification(aSubscription,
'{"title":"Hello","body":"Raw JSON payload","data":{"url":"https://www.esegece.com"}}');