All Projects → Duolabs → PushNotifications

Duolabs / PushNotifications

Licence: other
Push Notification using Embarcadero Rad Studio Tokyo 10.2.3 on Android and Apple Devices written in C++ and Delphi

Programming Languages

pascal
1382 projects
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to PushNotifications

Pushnotifications
🐉 A macOS, Linux, Windows app to test push notifications on iOS and Android
Stars: ✭ 1,813 (+15008.33%)
Mutual labels:  notification, apn, push
Pushraven
A simple Java library to interface with Firebase Cloud Messaging (FCM) API. Pushraven allows you to push notifications to clients in very few lines of code.
Stars: ✭ 67 (+458.33%)
Mutual labels:  notification, fcm, push
epns
📱 Erlang Push Notifications. APNS(Apple Push Notifications) and FCM(Firebase Cloud Messaging) Push Notifications
Stars: ✭ 13 (+8.33%)
Mutual labels:  fcm, push
fcmpush
Firebase Cloud Messaging API wrapper for Ruby, suppot HTTP v1 API including access_token auto refresh feature.
Stars: ✭ 44 (+266.67%)
Mutual labels:  fcm, push
MongoosePush
MongoosePush is a simple Elixir RESTful service allowing to send push notification via FCM and/or APNS.
Stars: ✭ 101 (+741.67%)
Mutual labels:  fcm, push
PushMeBaby
iOS Push Notification Debug App. You can use this app during iOS Push Notification (development or production) to push notifications on your device from your Mac.
Stars: ✭ 47 (+291.67%)
Mutual labels:  notification, push
andpush
Android Push Notification in Ruby: The fastest client for FCM (Firebase Cloud Messaging)
Stars: ✭ 83 (+591.67%)
Mutual labels:  fcm, push
Push Fcm Plugin
Official Firebase Cloud Messaging plugin for Push.js v1.0 🔥
Stars: ✭ 37 (+208.33%)
Mutual labels:  fcm, push
spontit-api-python-wrapper
Send functional, flexible push notifications to iOS, Android, and desktop devices (without your own app or website).
Stars: ✭ 35 (+191.67%)
Mutual labels:  notification, push
Easynotifylibproject
Send firebase notifications to your users very easily: A new Android Lib
Stars: ✭ 31 (+158.33%)
Mutual labels:  fcm, push
birthday-keeper
一个生日管理APP, UI风格模仿的系统闹钟, 可以添加, 编辑, 删除生日以及本地推送提醒, 项目截图见README.
Stars: ✭ 27 (+125%)
Mutual labels:  notification, push
x-notification
Declarative Browser Notification as Web Components.
Stars: ✭ 37 (+208.33%)
Mutual labels:  notification
Apitome
Apitome: /iˈpitəmē/ An API documentation presentation layer for RSpec API Documentation output.
Stars: ✭ 244 (+1933.33%)
Mutual labels:  rad
Ciip
CIIP用于快速开发ERP类信息系统的框架.由CIIP.Designer(业务模型设计器)和CIIP.Client客户端运行程序组成.包含报表设计器,Dashboard数据分析工具,支持验证规则,支持外观变化规则,内置权限模块,界面布局设计器,多国语言支持,支持14种常用数据库,如SqlServer,Oracle,MySql等。
Stars: ✭ 243 (+1925%)
Mutual labels:  rad
Graphqlize
A Clojure & JVM library for developing GraphQL API instantly from Postgres and MySQL databases
Stars: ✭ 240 (+1900%)
Mutual labels:  rad
notification-sounds
Makes a sound when a notification is shown
Stars: ✭ 16 (+33.33%)
Mutual labels:  notification
EnderFramework
EnderFramework is a framework that can be used to create apps using HTML, JS, and CSS.
Stars: ✭ 19 (+58.33%)
Mutual labels:  studio
Windwalker Framework
PHP Rapid Application Development Framework
Stars: ✭ 230 (+1816.67%)
Mutual labels:  rad
Portofino
Portofino 5 is the next generation of the open source radid web development framework Portofino. Its purpose is to help developers create modern, responsive enterprise applications with REST APIs and an Angular UI.
Stars: ✭ 150 (+1150%)
Mutual labels:  rad
Fof
Rapid Application Development framework for Joomla!™ 3 and 4
Stars: ✭ 106 (+783.33%)
Mutual labels:  rad

PushNotifications

Push Notification using Embarcadero Rad Studio Tokyo 10.2.3 on Android and Apple Devices written in C++ and Delphi.

Premise:

This project is based on C++ code and Delphi code. The main core application is meant to be developed in C++ using Delphi code as separate units to accomplish to the result. This document is dedicated to all those who tried hard to make their own Push Notification using Embarcadero Rad Studio and it is tested on version Tokyo 10.2.3 with an Android SM-520 (Galaxy A5) and iPhone X (iOS 11.4.1)

  • A detailed Guide can be found in the DOC Directory

_File needed:

• Delphi

DW.iOSapi.UserNotifications.pas DW.iOSapi.UserNotifications.hpp

DW.RemoteNotificationsPatch.iOS.pas DW.RemoteNotificationsPatch.iOS.hpp

DW.PushClient.pas DW.PushClient.hpp

DW.RegisterFCM.pas DW.RegisterFCM.hpp

SharedVariables.pas SharedVariables.hpp

• C++

Unit1.cpp Unit1.h

Android. To send Push Notifications on Android you need to create a Firebase Cloud Messaging account and using the console (login) you need to create your own APP and assign to it an application identifier which must be the same on the final application (ex. com.duolabs.mypushapp) iOS. On iOS you need to create a Push Certificate on Apple Developers Site which allows you to send push notifications to a specific Application within the same range of application domain (ex. com.duolabs.mypushapp) Notifications for Android needs to have a FCM account and notification for Apple must have an AppID and a Push Cerificate. We are going to send Push Messages using two .php scripts, one for Android and one for iOS.

Little code Explanation.

C++ Code:

Functions:

bool __fastcall CheckInet();

_Checks if internet connection is available. Not so interesting.

void __fastcall TForm1::ResendRequestButClick(TObject *Sender) _Requests for Mobile Device Application to be registered through FCM to FCM and APN Servers and triggers function once OnServiceConnectionChange the Token is received:

Variables:

String ServerAppID 		= L"8189xxxxxxxxx";
FPushClient->GCMAppID 		= ServerAppID;
FPushClient->ServerKey 		= L"AAAAxxxxxxx";
FPushClient->BundleID 		= L"com.duolabs.mypushapp";
FPushClient->UseSandbox 	= true;	
FPushClient->OnChange 		= &OnServiceConnectionChange;
FPushClient->OnReceiveNotification 	= &OnReceiveNotificationEvent;
FPushClient->Active 		  = true;

void __fastcall TForm1::OnServiceConnectionChange(TObject *Sender, TPushService::TChanges AChange)

_When a Token is received. Android Token is received in FCM format (long String) and Apple Token is returned in HEX format (32Bytes). Apple Token value is passed from Delphi to C++ using “String APNSToken“ declared in SharedVariables.pas

void __fastcall TForm1::ResendRequestButClick(TObject *Sender)

_Requests for Mobile Device Application to be registered through FCM to FCM and APN Servers and triggers function:

void __fastcall TForm1::OnReceiveNotificationEvent(TObject Sender, TPushServiceNotification const ANotification)

_This function triggers when a notification message is received

Notes and TroubleShooting

• Device ID remains the same on every device and is sent to APN or FCM to obtain a Token for Remote Push Notification. Token changes every time the Application is installed (fresh installation). If you register on a DB the Token remember to update and check it every time the Mobile Application starts as it may have changed due to a re-installation of the Application (Remove->Install).

• This C++ Application is based on Delphi source code (credits to Dave Nottage@ Delphi World). A warm thank you and my appreciations to Dave Nottage for his time and patience it paid off to me! Don’t forget to have a look at his awesome WebSite for Delphi Lovers!!

• A good guide for APN registration can be found here: https://www.raywenderlich.com/584-push-notifications-tutorial-getting-started

• We decided not avoid FCM SDK to avoid the fact of being to tied to Google’s services which are and remains great but having more control on the Push Notification sets the developer free to act the way he wants. 

Have fun and enjoy. Any feedback will be very appreciated. Riccardo Alessi

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].