1
- # React Native Custom Timer Notification
1
+ # React Native Custom Timer Notification 🔔
2
2
3
- Custom timer notification for React Native Android 🔔<br >
4
- ** Now version 0.8 Supports full size custom notifications** <br >
5
- <p align =" center " >
6
- <img src =" https://user-images.githubusercontent.com/58332892/208312749-58586dba-da62-4531-85bb-62346a57aa03.gif " >
7
- </p >
8
- <p align =" center " >
9
- <img width =" 80% " src =" https://user-images.githubusercontent.com/58332892/166133982-effe321c-a0fd-4315-bb29-cc7ee29d0bd4.gif " >
10
- </p >
3
+ A powerful, flexible notification library for React Native Android that enables custom timer-based notifications with advanced customization options.
11
4
5
+ ## 🚀 Key Features
12
6
13
- ## Installation
7
+ - ** Customizable Timer Notifications** : Create dynamic, time-based notifications
8
+ - ** Animated GIF Support** : Enhance notifications with animated graphics
9
+ - ** Fully Customizable Notification Layouts** : Design unique notification experiences
14
10
15
- ``` sh
11
+
12
+ ## 📦 Installation
13
+
14
+ ``` bash
16
15
npm install react-native-custom-timer-notification
17
16
```
18
17
19
- AndroidManifest
18
+ ## 🛠 Android Setup
19
+
20
+ ### 1. Add Permissions to AndroidManifest.xml
21
+
22
+ Open ` android/app/src/main/AndroidManifest.xml ` and add:
23
+
20
24
``` xml
25
+ <uses-permission android : name =" android.permission.POST_NOTIFICATIONS" />
26
+ <uses-permission android : name =" android.permission.FOREGROUND_SERVICE" />
27
+ ```
21
28
22
- <receiver android : name =" com.reactnativecustomtimernotification.NotificationEventReceiver" />
23
- <receiver android : name =" com.reactnativecustomtimernotification.OnClickBroadcastReceiver" />
24
- <!--
25
- if foreground service used add this line
26
- -->
27
- <uses-permission android : name =" android.permission.FOREGROUND_SERVICE" />
28
- <service android : name =" com.reactnativecustomtimernotification.ForegroundService" />
29
+ ### 2. Register Receivers and Services
30
+
31
+ Inside the ` <application> ` tag, add:
32
+
33
+ ``` xml
34
+ <receiver android : name =" com.reactnativecustomtimernotification.NotificationEventReceiver" />
35
+ <receiver android : name =" com.reactnativecustomtimernotification.OnClickBroadcastReceiver" />
36
+ <service android : name =" com.reactnativecustomtimernotification.ForegroundService" />
29
37
```
30
- ## Usage
31
- ### Timer notification
32
38
33
- Only Timer notifiction with default Title and body
34
- ``` js
39
+ ## 🎯 Usage Scenarios
40
+
41
+ ### Basic Timer Notification
42
+
43
+ <p align =" center " >
44
+ <img width =" 80% " src =" https://user-images.githubusercontent.com/58332892/166133982-effe321c-a0fd-4315-bb29-cc7ee29d0bd4.gif " >
45
+ </p >
35
46
47
+ ``` javascript
36
48
import { TimerNotification } from " react-native-custom-timer-notification" ;
37
- ```
38
49
39
- | Property | Description |
40
- | --- | --- |
41
- | ` payload ` | sent data will be received when click or canceled |
42
- | ` title ` | Title of the notification|
43
- | ` body ` | Body of the notification |
44
- | ` id ` | unique number|
45
- | ` date ` | Time at which zero comes|
46
-
47
-
48
- #### Example
49
-
50
- ``` js
51
-
52
- TimerNotification ({
53
- payload: JSON .stringify (' notification.data' ),
54
- title: ' My notification' ,
55
- body: ' Much longer text that cannot fit one line... ' ,
56
- id: 1 ,
57
- remove: false , // optional
58
- foreground: false ,
59
- date: new Date (Date .now () + 20000 ),
60
- isCountDown: true , // false for positive timer
61
- setCustomContentView: true // optional
62
- });
63
-
50
+ TimerNotification ({
51
+ id: 1 ,
52
+ title: " Meeting Reminder" ,
53
+ body: " Team meeting starts in:" ,
54
+ date: " 30-12-2024 15:00:00" ,
55
+ payload: " meeting-123"
56
+ });
64
57
```
65
- <h3 >Full custom notification </h3 >
66
58
67
- Full custom notifiction with custom image, text and cronometer.
68
- ``` js
59
+ ### Animated Notification with GIF
69
60
70
- import { CustomNotification , TYPES , FB_TYPE } from " react-native-custom-timer-notification" ;
61
+ <p align =" center " >
62
+ <img width =" 50% " src =" https://github.com/user-attachments/assets/cea88228-602a-42df-8326-569fd0a03cf1 " >
63
+ </p >
64
+
65
+ ``` javascript
66
+ CustomTimerNotification .TimerNotification ({
67
+ id: 2 ,
68
+ title: " Special Offer!" ,
69
+ body: " Limited time offer ends in:" ,
70
+ date: " 25-12-2024 23:59:59" ,
71
+ gifUrl: " https://example.com/animation.gif" ,
72
+ payload: " offer-456"
73
+ });
71
74
```
75
+ #### Options
72
76
73
- | Property | Description |
74
- | --- | --- |
75
- | ` eventData ` | sent data will be received when click or canceled |
76
- | ` title ` | Title of the notification|
77
- | ` body ` | Body of the notification |
78
- | ` id ` | unique number|
79
- | ` View ` | View that needs to be added (Array)|
77
+ | Parameter | Type | Required | Description |
78
+ | -----------| ----------| ----------| ---------------------------------|
79
+ | id | number | Yes | Unique notification identifier |
80
+ | title | string | Yes | Notification title |
81
+ | body | string | Yes | Notification message |
82
+ | date | string | Yes | End date (dd-MM-yyyy HH:mm: ss ) |
83
+ | gifUrl | string | No | URL to GIF animation |
84
+ | payload | string | No | Custom data payload |
85
+
86
+ ## 🎨 Full Custom Notification
87
+
88
+ Create fully customized notifications with detailed configurations:
89
+ <p align =" center " >
90
+ <img src =" https://user-images.githubusercontent.com/58332892/208312749-58586dba-da62-4531-85bb-62346a57aa03.gif " >
91
+ </p >
80
92
81
- <h3 > View Properties </h3 >
93
+ ``` javascript
94
+ import { CustomNotification , TYPES , FB_TYPE } from " react-native-custom-timer-notification" ;
95
+
96
+ CustomNotification ({
97
+ eventData: JSON .stringify (' notification_data' ),
98
+ title: ' Custom Notification' ,
99
+ body: ' Detailed Notification' ,
100
+ id: 1 ,
101
+ View: [
102
+ {
103
+ name: ' Limited Sales' ,
104
+ size: 20 ,
105
+ type: TYPES .Text ,
106
+ bold: FB_TYPE .BOLD_ITALIC ,
107
+ color: ' #ed1a45' ,
108
+ },
109
+ // Additional view configurations
110
+ ]
111
+ });
112
+ ```
113
+ #### ViewOptions
82
114
83
115
| Property | Description |
84
116
| --- | --- |
@@ -94,88 +126,14 @@ import { CustomNotification, TYPES, FB_TYPE } from "react-native-custom-timer-no
94
126
| ` color ` | Text color|
95
127
| ` ZeroTime ` | Time at which zero comes|
96
128
97
- #### Example
98
-
99
- ``` js
100
-
101
- CustomNotification (
102
- {
103
- eventData: JSON .stringify (' notificationOpen?.data' ),
104
- title: ' notificationOpen.data.title' ,
105
- body: ' notificationOpen.data.body' ,
106
- id: 1 ,
107
-
108
- View: [
109
- {
110
- name: ' Limited Sales' ,
111
- size: 20 ,
112
- type: TYPES .Text ,
113
- bold: FB_TYPE .BOLD_ITALIC ,
114
- PaddingLeft: 10 ,
115
- PaddingTop: 50 ,
116
- PaddingRight: 0 ,
117
- PaddingBottom: 0 ,
118
- setViewVisibility: false ,
119
- color: ' #ed1a45' ,
120
- },
121
- {
122
- uri: image,
123
- type: TYPES .Image ,
124
- PaddingLeft: 0 ,
125
- PaddingTop: 0 ,
126
- PaddingRight: 0 ,
127
- PaddingBottom: 0 ,
128
- },
129
- {
130
- name: ' Buy now' ,
131
- size: 30 ,
132
- type: TYPES .Text ,
133
- bold: FB_TYPE .BOLD_ITALIC ,
134
- PaddingLeft: 10 ,
135
- PaddingTop: 100 ,
136
- PaddingRight: 0 ,
137
- PaddingBottom: 0 ,
138
- setViewVisibility: false ,
139
- color: ' #fbd335' ,
140
- },
141
- {
142
- type: TYPES .Cronometer ,
143
- size: 30 ,
144
- ZeroTime: new Date (Date .now () + 20000 ),
145
- PaddingLeft: 800 ,
146
- color: ' #0000FF' ,
147
- PaddingTop: 0 ,
148
- PaddingRight: 0 ,
149
- PaddingBottom: 0 ,
150
- },
151
- ],
152
- },
153
- (e : any ) => {
154
- console .log (e);
155
- }
156
- );
157
-
158
- ```
159
- ### Remove Notifications
160
- ``` js
161
- import { RemoveTimer } from " react-native-custom-timer-notification" ;
162
-
163
- RemoveTimer (1 );
164
129
165
- ```
166
- ### onclick and cancel listner
167
- ``` js
168
- import { onEvent } from " react-native-custom-timer-notification" ;
169
-
170
- onEvent (event => {
171
- console .log (event )
172
- });
130
+ ## 🤝 Contributing
173
131
174
- ```
175
- ## Contributing
132
+ See the contributing guide to learn how to contribute to the repository and the development workflow.
176
133
177
- See the [ contributing guide] ( CONTRIBUTING.md ) to learn how to contribute to the repository and the development workflow.
178
134
179
135
## License
180
136
181
137
MIT
138
+
139
+
0 commit comments