Blueprint

How to integrate Pushwoosh SDK into your Unreal Engine project

Supports iOS, Android

Download Plugin Download Sample Plugin API Docs

To integrate Pushwoosh with your Unreal Engine project::

1. Download Pushwoosh Plugin and put it in your Plugins folder.

2. Enable Pushwoosh module in YourProjectName.uproject:

"Plugins": [
{
"Name": "Pushwoosh",
"Enabled": true
}
],

3. Configure your project in Firebase Console.

4. Locate the google-services.json file to the Config folder in your project directory.

google-services.json

You should've gotten the google-services.json file while creating the app in Firebase console. If you haven't, please consult this thread (section Get a config file for your Android app).

5. Add Pushwoosh module to the dependency list of your project:

Source/YourModuleName/YourModuleName.Build.cs
PrivateDependencyModuleNames.AddRange(new string[] { "Pushwoosh" });

6. Recompile your project

7. Specify Pushwoosh Application Id and FCM Project Number in Project Settings...-> Plugins -> Pushwoosh. These settings are saved in DefaultPushwoosh.ini

8. Add Pushwoosh actor component to an actor in your scene:

10. Open Event Graph tab in Blueprint editor. Locate Register for Push Notifications action under Pushwoosh category. Add it to your graph and attach to an appropriate execution chain (this will result in iOS popup asking for push notification permissions).

11. (Optional) Add Pushwoosh Push Registration and Push Accepted event handlers. These events can be found in Details tab of the Pushwoosh component.

12. For iOS add Push Notifications Capability to your project. This can be done by adding following key-value pair in Intermediate/ProjectFilesIOS/build/${YourProject}.build/${Configuration}-iphoneos/${YourProject}.build/${YourProject}.app.xcent:

development
production
development
<key>aps-environment</key>
<string>development</string>
production
<key>aps-environment</key>
<string>production</string>

13. For Android make sure Unreal Engine and Pushwoosh Plugin does not have conflicting libraries.