Programlama ve Yazılım

Delphi Firebase Cloud Messaging

Delphi programlama dili ile Firebase servisini kullanarak Push mesaj nasıl ayarlanır şimdi birlikte bakalım .

İlk olarak Firebase den hesap açalım sonra uygulamamızı oluşturalım.
Firebase consol dan uygulamamızı oluşturalım. Projemizi oluştururken uygulama ismini tam olarak yazalım etkileşim için önemli yoksa çalışmayacaktır. Örnek :com.embarcadero.FirebaseCloudMessaging gibi

Delphi Firebase Cloud Messaging 1

Delphi Firebase Cloud Messaging 2

Projemizi oluşturduktan sonra Radstudio id mizden project options -> Entitlement List menüsüne girelim ve Receive push notifications ayarını true yapalım.

Delphi Firebase Cloud Messaging 3

Şimdi gerekli kodlarımıza geçelim :

// Copyright (c) 2017, Jordi Corbilla
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// - Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
// - Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
// - Neither the name of this library nor the names of its contributors may be
// used to endorse or promote products derived from this software without
// specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes
  {$IFDEF ANDROID}
    , FMX.PushNotification.android
  {$ENDIF};

procedure TfrmMain.ShowTokenExecute(Sender: TObject);
begin
  {$IFDEF ANDROID}
    PushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM);
    PushService.AppProps[TPushService.TAppPropNames.GCMAppID] := 'SENDER ID';
  {$ENDIF}
  ServiceConnection := TPushServiceConnection.Create(PushService);
  ServiceConnection.Active := True;
  ServiceConnection.OnChange := OnServiceConnectionChange;
  ServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent;

  DeviceId := PushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceId];
  DeviceToken := PushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken];
  Memo1.Lines.Add('DeviceID: ' + DeviceId);
  Memo1.Lines.Add('FCM Token: ' + DeviceToken);
  Memo1.Lines.Add('Ready to receive!');
end;

procedure TfrmMain.OnServiceConnectionChange(Sender: TObject; PushChanges: TPushService.TChanges);
begin
  //Do something if the service connection changes
end;

procedure TfrmMain.OnReceiveNotificationEvent(Sender: TObject; const ServiceNotification: TPushServiceNotification);
begin
  //Do something with the notification received from FCM
end;

Sender id kısmızı Firebase -> Project Settings -> Cloud Messaging menüsünden ulaşıyoruz. Sender id kodlarımıza ekliyoruz.

Son olarak AndroidManifest.template.xml dosyamıza aşağıdaki satırı service tag larına ekliyoruz.

<service android:name="com.embarcadero.gcm.notifications.GCMIntentService" />

Bu işlemlerden sonra uygulamanızı derleyebilirsiniz. Firbase servisinden mesaj atıp uygulamanızda bildirim olarak göstere bilirsiniz

Yazıya yorum atmayı ve yıldız vermeyi unutmayınız.

 

Etiketler
Daha Fazla Göster

MeK

Pamukkale Üniversitesi Elektrik Elektronik Mühendisliği ni 2018 yılında bitirdim. 2018 yılında Yüksek Lisansa Karatekin Üniversitesi Elektrik Elektronik Mühendisliğine başladım. Programlamayı seviyorum Delphi, C# , C , PHP dillerine hakimim ARM ile uğraşıyorum bunların yanında web tasarım ve sunucu yönetimi ile hobi olarak uğraşıyorum. Sizlere Kodmek sayfamda hakim olduğum diller ve öğrenmek istediğim konularda yardımcı olmaya çalışacağım

Bir cevap yazın

Başa dön tuşu
Kapalı