mirror of
https://github.com/zhigang1992/react-native-notifications.git
synced 2026-06-11 16:29:42 +08:00
* Add typescript support * Add unit tests * Splits requestPermissionsWithCategories to two functions * Done converting the js part to typescript * typescript WIP * Fix unit * Fix e2e * Identical API for Android and iOS * Fix bundle * build typescript before test-e2e-ios * build typescript before test-e2e-ios * Add docousaurus documentation * Fix rebase from master * Move android and ios folders into lib folder * Split Notification.ts, Fix android example module * Add test coverage for Notification.ts, clean old js files * Updated docs * Move ios and android commands to designated classes * Remove package.json unused packages * Fix e2e * Fix docs, remove circleci config file * 3.0.0-alpha.0 * Update README.md * Fix js tests * Add missing flavors * Update release script * Add pretest scripts * Update release script * Revert manual version change * Fix release build * Gradle resolve react-native version flavor * Fix documentation website * Add identical registerRemoteNotifications api for iOS and Android * Finish API documentation * Merge from master branch * Fix build * Remove NOTIFICATION_RECEIVED_FOREGROUND_EVENT_NAME * Fix iOS example project * Split specific iOS events, Update docs * Add subscription documentation guide * Add Local Notifications documentation guide * Fix handling actions, Add event handling documentation guide * Fix platforms logo * Fix iOS unit tests * Update package.json version to 3.0.0-beta.0 and generate CHANGELOG.gren.md [ci skip] * Fix documentation * Add prerelease script * Update package.json version to 3.0.0-beta.1 and generate CHANGELOG.gren.md [ci skip] * Add npm run docusaurus * Add removeAllDeliveredNotifications support for both iOS and Android * Add CI tag support * Fix podspec * Update iOS installation * Fix android installation * fix build.gradle rn package.json path * Fix iOS * Add NotificationFactory * Fix tests * Fix resolving gradle react native version * find rn package.json by checking if the file exists instead of an exception in JsonSlurper * Fix e2e * Update package.json version to 3.0.0-beta.2 and generate CHANGELOG.gren.md [ci skip] * Rename setBadgesCount to setBadgeCount * add ios and android Notifications object getters * Update package.json version to 3.0.0-beta.3 and generate CHANGELOG.gren.md [ci skip] * Fix android token registration * Update package.json version to 3.0.0-beta.4 and generate CHANGELOG.gren.md [ci skip] Co-authored-by: wixmobile <41264282+wixmobile@users.noreply.github.com> Co-authored-by: Artal Druk <artald@wix.com>
1.5 KiB
1.5 KiB
id, title, sidebar_label
| id | title | sidebar_label |
|---|---|---|
| subscription | Push Notifications Subscription | Subscription |
The typical flow for subscribing a device for receiving push notification in real time is to first register the device at the vendor's servers (e.g. FCM), then publishing the received token to your own push management servers.
This section is about the first part of the flow.
In order to handle notifications, you must register the remoteNotificationsRegistered event beforehand.
In your React Native app:
import {Notifications} from 'react-native-notifications';
class App extends Component {
constructor() {
Notifications.events().registerRemoteNotificationsRegistered((event: Registered) => {
// TODO: Send the token to my server so it could send back push notifications...
console.log("Device Token Received", event.deviceToken);
});
Notifications.events().registerRemoteNotificationsRegistrationFailed((event: RegistrationError) => {
console.error(event);
});
Notifications.requestPermissions();
}
}
When you have the device token, POST it to your server and register the device in your notifications provider (Amazon SNS, Azure, etc.).
You can check if the user granted permissions on iOS by calling checkPermissions():
Notifications.ios.checkPermissions().then((currentPermissions) => {
console.log('Badges enabled: ' + !!currentPermissions.badge);
console.log('Sounds enabled: ' + !!currentPermissions.sound);
console.log('Alerts enabled: ' + !!currentPermissions.alert);
});