Check if notifications are enabled for a React Native app running on Android.
Version | React Native Support | Android Support | iOS Support |
---|---|---|---|
1.3.0 | 0.60 | 9 | 9.0 |
1.2.0 | 0.60 | 9 | NONE |
1.1.0 | 0.47-0.54 | 8.1 | NONE |
1.0.4 | 0.46 | 8.1 | NONE |
Complies with react-native-version-support-table
First you need to install react-native-check-notification-enable:
npm install react-native-check-notification-enable --save
If your React Native version is 0.60 or higher, that's all you need to do. If not, you'll need to perform the steps described below.
Run the following command:
react-native link react-native-check-notification-enable
- In
android/settings.gradle
... include ':react-native-check-notification-enable', ':app' project(':react-native-check-notification-enable').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-check-notification-enable/android')
- In
android/app/build.gradle
... dependencies { ... compile project(':react-native-check-notification-enable') }
- register module (in MainActivity.java)
On newer versions of React Native (0.18+):
import com.skyward.NotificationManager.NotificationManager; // <--- import public class MainActivity extends ReactActivity { ...... /** * A list of packages used by the app. If the app uses additional views * or modules besides the default ones, add more packages here. */ @Override protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList( new NotificationManager() // <------ add here new MainReactPackage()); } }
Run the following command:
react-native link react-native-check-notification-enable
var NotificationManager = require('react-native-check-notification-enable');
// for es6 import NotificationManager from 'react-native-check-notification-enable'
// use as a promise... NotificationManager.areNotificationsEnabled().then((e)=>{ console.log(e); //true or false }).catch((e)=>{ console.log(e); }) // ...or an async function const enabled = await NotificationManager.areNotificationsEnabled();
NotificationManager.retrieveGlobalNotificationSettings().then((settings)=>{ console.log(settings); // { // isEnabled: boolean; // isBadgeEnabled: boolean; // isSoundEnabled: boolean; // shownInNotificationCenter: boolean; // shownInLockScreen: boolean; // shownAsHeadsupDisplay: boolean; // } }).catch((e)=>{ console.log(e); })
NotificationManager.retrieveNotificationChannels().then((ChannelArray)=>{ console.log(ChannelArray); //[] }).catch((e)=>{ console.log(e); })