public interface PushNotificationsService
Example
String senderId = "abcd1234";
Services.get(PushNotificationsService.class).ifPresent(service -> {
service.register(senderId);
service.tokenProperty.addListener((observable, oldValue, newValue) -> {
if (newValue != null) {
String deviceToken = newValue;
// This deviceToken can be used to send push notifications to this device by calling
// the appropriate server API for the platform. Usually, this token is sent to a server
// where the push notifications are created and sent out.
}
});
});
Android Configuration
The following permissions
, services
and receiver
need to be added to the
android manifest configuration file to make push notifications work on android. The main activity also requires the
attribute android:launchMode
with value singleTop
.
Also, make sure that you replace $packageName
with the value of the package
attribute
in the manifest
element that is defined at the top of your AndroidManifest.xml. You should have replaced
the $packageName
string three times.
<manifest ...>
...
<permission android:name="$packageName.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="$packageName.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
...
<application ...>
<activity android:name="javafxports.android.FXActivity"
android:label="SampleGluonApp"
android:launchMode="singleTop"
android:configChanges="orientation|screenSize">
<meta-data android:name="main.class" android:value="com.gluonhq.sample.SampleGluonApp"/>
...
</activity>
...
<receiver android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="$packageName" />
</intent-filter>
</receiver>
<service android:name="com.gluonhq.impl.charm.down.plugins.android.PushNotificationJobService"
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="true" />
<service android:name="com.gluonhq.impl.charm.down.plugins.android.PushGcmListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service android:name="com.gluonhq.impl.charm.down.plugins.android.PushInstanceIDListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID" />
</intent-filter>
</service>
<service android:name="com.gluonhq.impl.charm.down.plugins.android.RegistrationIntentService"
android:exported="false">
</service>
<activity android:name="com.gluonhq.impl.charm.down.plugins.android.PushNotificationActivity"
android:parentActivityName="javafxports.android.FXActivity">
<meta-data android:name="android.support.PARENT_ACTIVITY"
android:value="javafxports.android.FXActivity"/>
</activity>
<meta-data android:name="com.google.android.gms.version"
android:value="9452000"/>
</application>
</manifest>
iOS Configuration
You need to make sure that you set the jfxmobile.ios.apsEnvironment
property in the
build.gradle
of your project to either development
or production
, matching the
configured provisioning profile.
Type | Property and Description |
---|---|
javafx.beans.property.ReadOnlyStringProperty |
token
The unique registration token that can be passed to the server, so the app
can receive push notifications
|
Modifier and Type | Method and Description |
---|---|
void |
register(java.lang.String authorizedEntity)
Register the app for receiving push notifications.
|
javafx.beans.property.ReadOnlyStringProperty |
tokenProperty()
The unique registration token that can be passed to the server, so the app
can receive push notifications
|
javafx.beans.property.ReadOnlyStringProperty tokenProperty
javafx.beans.property.ReadOnlyStringProperty tokenProperty()
void register(java.lang.String authorizedEntity)
authorizedEntity
- a string that matches the Sender ID of a GCM or FCM application