Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Firebase Cloud Messaging
#1
Selamlar,

Delphi Rio 10.3 te bir cok örnek denedim fakat firebase cloud messaging icin token alamıyorum. Konuyla ilgili bilgisi olan arkadaslar örnek paylaşabilirlerse minnettar olurum.

iyi çalışmalar.
Cevapla
#2
Merhaba,
Daha önceki bir sürümde oluşturulan bir proje ise, derlenmiş IDE bağımlılık paketlerini temizlemeniz gerekecektir.
Bunun için Delphi 10.3 Android Servis Çalışma Sorunu konu başlığındaki 1, 5, 6 işlem adımlarını uygulayın.
Olmaz ise Delphi 10.3 hata düzeltmelerinin tümünü kapsayan Delphi 10.3.1 sürümünü yükleyin.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#3
Bunlar yardımcı olabilir zannedersem.
FCM
https://www.delphiworlds.com/2017/05/add...ps-part-1/
https://www.delphiworlds.com/2017/05/add...ps-part-2/
https://www.delphiworlds.com/2018/08/fir...revisited/
Bizde bilirdik firavunun yanında olmayı, musa'nın haklı olduğunu bilmeseydik
Cevapla
#4
(06-03-2019, Saat: 16:27)enes6635 Adlı Kullanıcıdan Alıntı: Bunlar yardımcı olabilir zannedersem.
FCM
https://www.delphiworlds.com/2017/05/add...ps-part-1/
https://www.delphiworlds.com/2017/05/add...ps-part-2/
https://www.delphiworlds.com/2018/08/fir...revisited/


Bu makalelere göre push notification göndermek için iyi bir yabancı dil olması, okuduğunu anlayabilmesi ve test için bolca zamanı olması gerekir.
İlk makale için sözüm yok, iyi bir anlatım yapılmış (yalnızca Android anlatılmış). Delphiworlds linkleri tamamen hotfix veya update öncesi SDK desteklerini vermek için oluşturulmuş ara çözümlerdir. Yani önermiş olduğu yöntemleri uygulamadan da şu an push notification gönderebiliyoruz. 
Bunun yerine; Android ve komplike iOS sertifikasyonları ile birlikte FCM ile nasıl push notifivcation'lar oluşturabileceğini daha iyi bir kaynaktan öğrenebilir bence(hem de Türkçe). Smile

arsKitap-16.jpg
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#5
kitapta daha oraya gelemediğim için aklıma gelmedi hocam kusuruma bakmayın   Shy
Bizde bilirdik firavunun yanında olmayı, musa'nın haklı olduğunu bilmeseydik
Cevapla
#6
Projeyi 10.3 ile olusturdum daha önce olusturulmus bir proje değil. Bazı makalelere göre kodu yazdım ama hiçbir hata almıyorum lakin Token da alamıyorum. Yukarıdaki linkleri inceleyeceğim. Tesekkurler.
Cevapla
#7
token almamanın en önemli sebebi imzalama 10.3'te imzalama sorunu var Porject-options'ta versionİnfo kısmında package'de uygulama ismini belirtmen gerekiyor. Belirttiğinde ise imzalamıyor dolayısı ile firebase ile bağlantı kuramıyorsun ben tekrar 10.1 berlin update 2 ye dönmek zorunda kaldım rioyu çok sevmiştim ama hayat böyle işte Smile
Cevapla
#8
@barox Merhaba.

- Daha önce paket kod örneği vermiştim. Oradaki şekliyle halen çalışıyor.

- Kod örneği vermediğinizden kurguyu doğru yaptığınızı varsayarak aşağıdaki benzeri bir kod uyguladığınızı varsayıyorum.

- OnServiceConnectionChange eventine aşağıda belirttiğim kodu yazarak bir deneyin.

@hakanharbeli (*) Android projenin Version Info kısmında Package Name'in Firebase Console'da proje ayarlarında belirtilen isim ile aynı olması şartı olmasa da çalışıyor. Denedim...

  FNotificationCenter := System.Notification.TNotificationCenter.Create(nil); 
 FPushService        := TPushServiceManager.Instance.GetServiceByName( TPushService.TServiceNames.GCM );
 FPushService.AppProps[ TPushService.TAppPropNames.GCMAppID ] := FGCM_ID;  

 FServiceConnection  := TPushServiceConnection.Create( FPushService );
 FServiceConnection.Active                := True;
 FServiceConnection.OnChange              := FOnServiceConnectionChange;

procedure TGCM_Helper.FOnServiceConnectionChange (Sender: TObject; PushChanges: TPushService.TChanges);
Var
   LDeviceID, LDeviceToken : String;
begin

 if TPushService.TChange.DeviceToken in PushChanges then
 begin // DeviceToken değişti / belirlendi...
   LDeviceID    := FPushService.DeviceIDValue[ TPushService.TDeviceIDNames.DeviceID ];
   LDeviceToken := FPushService.DeviceTokenValue[ TPushService.TDeviceTokenNames.DeviceToken ];
   // Buradan sonra LDeviceID ve LDeviceToken ikisini bir Memo'ya loglayın...
 end;

end;
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#9
(06-03-2019, Saat: 22:40)mrmarman Adlı Kullanıcıdan Alıntı: @barox Merhaba.

- Daha önce paket kod örneği vermiştim. Oradaki şekliyle halen çalışıyor.

- Kod örneği vermediğinizden kurguyu doğru yaptığınızı varsayarak aşağıdaki benzeri bir kod uyguladığınızı varsayıyorum.

- OnServiceConnectionChange eventine aşağıda belirttiğim kodu yazarak bir deneyin.

@hakanharbeli (*) Android projenin Version Info kısmında Package Name'in Firebase Console'da proje ayarlarında belirtilen isim ile aynı olması şartı olmasa da çalışıyor. Denedim...

  FNotificationCenter := System.Notification.TNotificationCenter.Create(nil); 
 FPushService        := TPushServiceManager.Instance.GetServiceByName( TPushService.TServiceNames.GCM );
 FPushService.AppProps[ TPushService.TAppPropNames.GCMAppID ] := FGCM_ID;  

 FServiceConnection  := TPushServiceConnection.Create( FPushService );
 FServiceConnection.Active                := True;
 FServiceConnection.OnChange              := FOnServiceConnectionChange;

procedure TGCM_Helper.FOnServiceConnectionChange (Sender: TObject; PushChanges: TPushService.TChanges);
Var
   LDeviceID, LDeviceToken : String;
begin

 if TPushService.TChange.DeviceToken in PushChanges then
 begin // DeviceToken değişti / belirlendi...
   LDeviceID    := FPushService.DeviceIDValue[ TPushService.TDeviceIDNames.DeviceID ];
   LDeviceToken := FPushService.DeviceTokenValue[ TPushService.TDeviceTokenNames.DeviceToken ];
   // Buradan sonra LDeviceID ve LDeviceToken ikisini bir Memo'ya loglayın...
 end;

end;

Üstad bunu kaçırmışım harika bu çok teşekkür ederim
Cevapla
#10
procedure TForm1.FormShow(Sender: TObject);
begin
 //ShowAndroidNotification('NABER', 0);
PushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM);
PushService.AppProps[TPushService.TAppPropNames.GCMAppID] := 'XXXXXXXXXXX';
ServiceConnection := TPushServiceConnection.Create(PushService);
ServiceConnection.Active := True;
ServiceConnection.OnChange := OnServiceConnectionChange;
ServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent;


end;

procedure TForm1.OnServiceConnectionChange(Sender: TObject; PushChanges: TPushService.TChanges);
begin
 DeviceId := PushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceId];
 DeviceToken := PushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken];

end;

procedure TForm1.OnReceiveNotificationEvent(Sender: TObject; const ServiceNotification: TPushServiceNotification);
var
 MessageText: string;
begin
 MessageText := ServiceNotification.DataObject.GetValue('gcm.notification.body').Value;
   ShowAndroidNotification(MessageText, 0);

end;



Kodum yukarıdaki gibi tam olarak sizin yaptıgınzız gibi bütün metodlarım tanımlı.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [Çözüldü] FireBase (FCM) Push Notification mesajı gelmiyor Fesih ARSLAN 17 2.032 24-04-2018, Saat: 12:56
Son Yorum: mrmarman
  FireBase (FCM) Push Notification Mobil Data Kullanımındaki Sorun Fesih ARSLAN 0 417 24-04-2018, Saat: 12:19
Son Yorum: Fesih ARSLAN
  Delphi Firebase Post işlemi yhackup 4 1.360 11-12-2017, Saat: 09:50
Son Yorum: yhackup
  Delphi FireBase Test Uygulamasında SSL Fesih ARSLAN 3 1.121 13-12-2016, Saat: 10:26
Son Yorum: Fesih ARSLAN



Konuyu Okuyanlar: 1 Ziyaretçi