Setup
Intallation
Add the required Capacitor plugin
npm install cleverpush-capacitor-sdk npx cap sync
Setup Android
Add Firebase to your Android project. official docs
Get your FCM Sender ID & FCM Server API Key.
Login/Register on CleverPush
Your CleverPush Channel ID, available in
Channels
>App Push
>Implementation
>Channel ID
in the CleverPush Developer console.Go to your capacitor project and enter the following commands into the terminal.
npx cap add android npx run build npx cap sync
Go to your capacitor project's Android folder and Add the dependency to your app-level
app/build.gradle
file. You can find the newest sdk version number here Android SDK.dependencies { // ... implementation 'com.cleverpush:cleverpush:1.27.6' }
Setup iOS
Go to your capacitor project and enter the following commands into the terminal.
npx cap add iOS npx run build npx cap sync
Go to your capacitor project's iOS folder and add CleverPush to your
Podfile
:
pod 'CleverPush'
Open iOS Project, Select Pods, Select Capacitor Pod, Go to Genenral tab, Add CleverPush.xcframework into the Framework and libraries
Enable the required capabilities
Go to your root project and switch to the tab "Capabilities"
Enable "Push Notifications"
Enable "Background Modes" and check "Remote notifications"
Add Notification Service Extension
This is required for correctly tracking notification deliveries and for displaying big images or videos in notifications.
- Select
File
>New
>Target
in Xcode - Choose
Notification Service Extension
and pressNext
- Enter
CleverPushNotificationServiceExtension
as Product Name, chooseObjective-C
as language and pressFinish
- Press
Activate
on the next prompt - Add the following at the bottom of your Podfile
target 'CleverPushNotificationServiceExtension' do pod 'CleverPush' end
- Run
pod install
- Open
NotificationService.m
and replace the whole content with the following:
#import <CleverPush/CleverPush.h> #import "NotificationService.h" @interface NotificationService () @property (nonatomic, strong) void (^contentHandler)(UNNotificationContent *contentToDeliver); @property (nonatomic, strong) UNNotificationRequest *receivedRequest; @property (nonatomic, strong) UNMutableNotificationContent *bestAttemptContent; @end @implementation NotificationService - (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler { self.receivedRequest = request; self.contentHandler = contentHandler; self.bestAttemptContent = [request.content mutableCopy]; [CleverPush didReceiveNotificationExtensionRequest:self.receivedRequest withMutableNotificationContent:self.bestAttemptContent]; self.contentHandler(self.bestAttemptContent); } - (void)serviceExtensionTimeWillExpire { [CleverPush serviceExtensionTimeWillExpireRequest:self.receivedRequest withMutableNotificationContent:self.bestAttemptContent]; self.contentHandler(self.bestAttemptContent); } @end
- Select
Create your iOS push certificate
- Open Keychain Access on your Mac. (Application > Utilities > Keychain Access).
- Select Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority...
- Select the "Save to disk" option and enter any information in the required fields
- Go to the Apple developer portal, select your app and press "Edit"
- Enable "Push notifications" and press "Done"
- Go to the Create new certificate page, select "Apple Push Notification service SSL" and press "Continue"
- Select your Application Bundle ID and press "Continue"
- Press "Choose File...", select the previously generated "certSigningRequest" file and then press "Generate"
- Press "Download" and save your certificate
- Click on the downloaded .cer file, Keychain Access should open
- Select Login > My Certificates then right click on your key and click "Export (Apple Production iOS Push Services: com.your.bundle)..."
- Give the file a unique name and press save, be sure to leave the password field blank!
- Upload your certificate in the CleverPush channel settings