在上一篇文章中,我们教了如何在 Android 上获取 Firebase 令牌,现在是时候了解如何通过Delphi 中的Firebase Cloud Messaging (FCM) 和TNetHTTPClient组件发送推送通知。
首先,我们将创建一个 VCL 项目,并在 Form 中放置一个TEdit、一个TButton和一个TMemo,它应该类似于下图:
现在我们将TNetHTTPCliente组件放置在组件面板的Net部分中。
接下来的步骤中,将TButton的的的OnClick事件,我们把下面的代码:
procedure TForm1.Button1Click(Sender: TObject);
var
Msg: string;
s1, s2: TMemoryStream;
hd: TArray
st: String;
b: TBytes;
devicetoken: string;
begin
deviceToken := Trim(Edit1.Text);
Msg := 'Mi primer notificación Push.';
s1 := TMemoryStream.Create;
s2 := TMemoryStream.Create;
try
NetHTTPClient1.ContentType := 'application/json';
st := '{' +
'"to": "'+deviceToken+'",' +
'"notification":{"priority":"hight",' +
'"title":"Título de la Notificación",'+
'"body":"'+Msg+'",'+
'"dry_run":"false"}'+
'}';
setlength(hd, 1);
b := TEncoding.UTF8.GetBytes(st);
s1.Write(b, length(b));
s1.Position := 0;
hd[0].Name:='Authorization';
hd[0].Value:='key=Ingrese aquí el Server Key de FCM';
NetHTTPClient1.Post('https://fcm.googleapis.com/fcm/send', s1, s2, hd);
s2.Position := 0;
{ Mostramos el resultado devuelto por FCM }
memo1.Lines.LoadFromStream(s2, TEncoding.UTF8);
finally
s1.Free;
s2.Free;
end;
end;
要使用的单位如下:
uses
Winapi.Windows,
Winapi.Messages,
System.SysUtils,
System.Variants,
System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
System.Net.URLClient,
System.Net.HttpClient,
System.Net.HttpClientComponent,
Vcl.StdCtrls;
运作
在Edit1中我们必须放置设备的Token,并且在代码中不要忘记添加Firebase项目的Server Key。
当按下发送按钮时,推送通知将发送到 Android 设备,获得的结果将显示在备忘录中,类似于以下内容:
{"multicast_id": 47068889804 ********, "success": 1, "failure": 0, "canonical_ids": 0,
"results": [{"message_id": "0: 15763105 ********% 22dfc2a4 ********"}]}
Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号
执行时间: 0.051923990249634 seconds