Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ The official Push Notification adapter for Parse Server. See [Parse Server Push
- [Installation](#installation)
- [Configure Parse Server](#configure-parse-server)
- [Apple Push Options](#apple-push-options)
- [Native APNS (Experimental)](#native-apns-experimental)
- [Android Push Options](#android-push-options)
- [Firebase Cloud Messaging (FCM)](#firebase-cloud-messaging-fcm)
- [Google Cloud Service Account Key](#google-cloud-service-account-key)
Expand Down Expand Up @@ -100,6 +101,25 @@ osx: {
}
```

#### Native APNS (Experimental)

As an alternative to the default APNS implementation which uses the `@parse/node-apn` library, you can enable a native APNS implementation that uses only built-in Node.js modules (`node:http2`, `node:crypto`) with zero additional dependencies. This is an experimental feature that only supports token-based authentication (`.p8` key). Certificate-based authentication (`.p12`/`.pem`) is not supported; use the default APNS implementation for that.

To enable the native APNS implementation, set `useNativeAPNs: true`:

```js
ios: {
useNativeAPNs: true,
token: {
key: __dirname + '/apns.p8',
keyId: '<APNS_KEY_ID>',
teamId: '<APNS_TEAM_ID>'
},
topic: '<BUNDLE_IDENTIFIER>',
production: true
}
```

### Android Push Options

Delivering push notifications to Android devices can be done via Firebase Cloud Messaging (FCM):
Expand Down
2 changes: 1 addition & 1 deletion spec/APNS.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -744,7 +744,7 @@ describe('APNS', () => {
expect(result.transmitted).toBe(false);
expect(result.device.deviceToken).toBe('abcd');
expect(result.device.deviceType).toBe('ios');
expect(result.response.error).toBe('Unkown status');
expect(result.response.error).toBe('Unknown status');
done();
})
});
Expand Down
Loading
Loading