1- import { useFocusEffect } from '@react-navigation/native' ;
21import React , { useCallback , useEffect , useState } from 'react' ;
32import {
4- Alert ,
3+ Platform ,
54 ScrollView ,
65 StyleSheet ,
76 Text ,
87 TextInput ,
98 TouchableOpacity ,
109 View ,
1110} from 'react-native' ;
12- import { LogLevel , OneSignal } from 'react-native-onesignal' ;
11+ import {
12+ LogLevel ,
13+ NotificationClickEvent ,
14+ OneSignal ,
15+ } from 'react-native-onesignal' ;
1316import { SafeAreaView } from 'react-native-safe-area-context' ;
1417import OSButtons from './OSButtons' ;
1518import OSConsole from './OSConsole' ;
@@ -20,6 +23,10 @@ const OSDemo: React.FC = () => {
2023 const [ consoleValue , setConsoleValue ] = useState ( '' ) ;
2124 const [ inputValue , setInputValue ] = useState ( '' ) ;
2225
26+ const inputChange = useCallback ( ( text : string ) => {
27+ setInputValue ( text ) ;
28+ } , [ ] ) ;
29+
2330 const OSLog = useCallback ( ( message : string , optionalArg : unknown = null ) => {
2431 let logMessage = message ;
2532 if ( optionalArg !== null ) {
@@ -36,200 +43,36 @@ const OSDemo: React.FC = () => {
3643 } ) ;
3744 } , [ ] ) ;
3845
39- const onForegroundWillDisplay = useCallback (
40- ( event : unknown ) => {
41- OSLog ( 'OneSignal: notification will show in foreground:' , event ) ;
42- const notif = (
43- event as { getNotification : ( ) => { title : string } }
44- ) . getNotification ( ) ;
45-
46- const cancelButton = {
47- text : 'Cancel' ,
48- onPress : ( ) => {
49- ( event as { preventDefault : ( ) => void } ) . preventDefault ( ) ;
50- } ,
51- style : 'cancel' as const ,
52- } ;
53-
54- const completeButton = {
55- text : 'Display' ,
56- onPress : ( ) => {
57- ( event as { getNotification : ( ) => { display : ( ) => void } } )
58- . getNotification ( )
59- . display ( ) ;
60- } ,
61- } ;
62-
63- Alert . alert (
64- 'Display notification?' ,
65- notif . title ,
66- [ cancelButton , completeButton ] ,
67- {
68- cancelable : true ,
69- } ,
70- ) ;
71- } ,
72- [ OSLog ] ,
73- ) ;
74-
75- const onNotificationClick = useCallback (
76- ( event : unknown ) => {
77- OSLog ( 'OneSignal: notification clicked:' , event ) ;
78- } ,
79- [ OSLog ] ,
80- ) ;
81-
82- const onIAMClick = useCallback (
83- ( event : unknown ) => {
84- OSLog ( 'OneSignal IAM clicked:' , event ) ;
85- } ,
86- [ OSLog ] ,
87- ) ;
88-
89- const onIAMWillDisplay = useCallback (
90- ( event : unknown ) => {
91- OSLog ( 'OneSignal: will display IAM: ' , event ) ;
92- } ,
93- [ OSLog ] ,
94- ) ;
95-
96- const onIAMDidDisplay = useCallback (
97- ( event : unknown ) => {
98- OSLog ( 'OneSignal: did display IAM: ' , event ) ;
99- } ,
100- [ OSLog ] ,
101- ) ;
102-
103- const onIAMWillDismiss = useCallback (
104- ( event : unknown ) => {
105- OSLog ( 'OneSignal: will dismiss IAM: ' , event ) ;
106- } ,
107- [ OSLog ] ,
108- ) ;
109-
110- const onIAMDidDismiss = useCallback (
111- ( event : unknown ) => {
112- OSLog ( 'OneSignal: did dismiss IAM: ' , event ) ;
113- } ,
114- [ OSLog ] ,
115- ) ;
116-
117- const onSubscriptionChange = useCallback (
118- ( subscription : unknown ) => {
119- OSLog ( 'OneSignal: subscription changed:' , subscription ) ;
120- } ,
121- [ OSLog ] ,
122- ) ;
123-
124- const onPermissionChange = useCallback (
125- ( granted : unknown ) => {
126- OSLog ( 'OneSignal: permission changed:' , granted ) ;
127- } ,
128- [ OSLog ] ,
129- ) ;
130-
131- const onUserChange = useCallback (
132- ( event : unknown ) => {
133- OSLog ( 'OneSignal: user changed: ' , event ) ;
134- } ,
135- [ OSLog ] ,
136- ) ;
137-
13846 useEffect ( ( ) => {
139- OneSignal . initialize ( APP_ID ) ;
14047 OneSignal . Debug . setLogLevel ( LogLevel . None ) ;
141- } , [ ] ) ;
142-
143- useFocusEffect (
144- useCallback ( ( ) => {
145- console . log ( 'Setting up event listeners' ) ;
146-
147- const setup = async ( ) => {
148- OneSignal . LiveActivities . setupDefault ( ) ;
149- OneSignal . Notifications . addEventListener (
150- 'foregroundWillDisplay' ,
151- onForegroundWillDisplay ,
152- ) ;
153- OneSignal . Notifications . addEventListener ( 'click' , onNotificationClick ) ;
154- OneSignal . InAppMessages . addEventListener ( 'click' , onIAMClick ) ;
155- OneSignal . InAppMessages . addEventListener (
156- 'willDisplay' ,
157- onIAMWillDisplay ,
158- ) ;
159- OneSignal . InAppMessages . addEventListener ( 'didDisplay' , onIAMDidDisplay ) ;
160- OneSignal . InAppMessages . addEventListener (
161- 'willDismiss' ,
162- onIAMWillDismiss ,
163- ) ;
164- OneSignal . InAppMessages . addEventListener ( 'didDismiss' , onIAMDidDismiss ) ;
165- OneSignal . User . pushSubscription . addEventListener (
166- 'change' ,
167- onSubscriptionChange ,
168- ) ;
169- OneSignal . Notifications . addEventListener (
170- 'permissionChange' ,
171- onPermissionChange ,
172- ) ;
173- OneSignal . User . addEventListener ( 'change' , onUserChange ) ;
174- } ;
175-
176- setup ( ) ;
177-
178- return ( ) => {
179- console . log ( 'Cleaning up event listeners' ) ;
180-
181- // Clean up all event listeners
182- OneSignal . Notifications . removeEventListener (
183- 'foregroundWillDisplay' ,
184- onForegroundWillDisplay ,
185- ) ;
186- OneSignal . Notifications . removeEventListener (
187- 'click' ,
188- onNotificationClick ,
189- ) ;
190- OneSignal . InAppMessages . removeEventListener ( 'click' , onIAMClick ) ;
191- OneSignal . InAppMessages . removeEventListener (
192- 'willDisplay' ,
193- onIAMWillDisplay ,
194- ) ;
195- OneSignal . InAppMessages . removeEventListener (
196- 'didDisplay' ,
197- onIAMDidDisplay ,
198- ) ;
199- OneSignal . InAppMessages . removeEventListener (
200- 'willDismiss' ,
201- onIAMWillDismiss ,
202- ) ;
203- OneSignal . InAppMessages . removeEventListener (
204- 'didDismiss' ,
205- onIAMDidDismiss ,
206- ) ;
207- OneSignal . User . pushSubscription . removeEventListener (
208- 'change' ,
209- onSubscriptionChange ,
210- ) ;
211- OneSignal . Notifications . removeEventListener (
212- 'permissionChange' ,
213- onPermissionChange ,
214- ) ;
215- OneSignal . User . removeEventListener ( 'change' , onUserChange ) ;
216- } ;
217- } , [
218- onForegroundWillDisplay ,
219- onNotificationClick ,
220- onIAMClick ,
221- onIAMWillDisplay ,
222- onIAMDidDisplay ,
223- onIAMWillDismiss ,
224- onIAMDidDismiss ,
225- onSubscriptionChange ,
226- onPermissionChange ,
227- onUserChange ,
228- ] ) ,
229- ) ;
230-
231- const inputChange = useCallback ( ( text : string ) => {
232- setInputValue ( text ) ;
48+ OneSignal . initialize ( APP_ID ) ;
49+ const externalId = Platform . OS === 'ios' ? 'fadi-rn-ios' : 'fadi-rna-a11' ;
50+ OneSignal . login ( externalId ) ;
51+
52+ const setup = async ( ) => {
53+ const onesignalID = await OneSignal . User . getOnesignalId ( ) ;
54+ const externalID = await OneSignal . User . getExternalId ( ) ;
55+ const pushID = await OneSignal . User . pushSubscription . getIdAsync ( ) ;
56+ const pushToken = await OneSignal . User . pushSubscription . getTokenAsync ( ) ;
57+ console . log ( 'OneSignal ID:' , onesignalID ) ;
58+ console . log ( 'External ID:' , externalID ) ;
59+ console . log ( 'Push ID:' , pushID ) ;
60+ console . log ( 'Push Token:' , pushToken ) ;
61+ } ;
62+
63+ setup ( ) ;
64+
65+ const onNotificationClick = ( event : NotificationClickEvent ) => {
66+ console . log ( 'OneSignal: notification clicked:' , event ) ;
67+ // event.preventDefault();
68+ // event.notification.display();
69+ } ;
70+
71+ OneSignal . Notifications . addEventListener ( 'click' , onNotificationClick ) ;
72+
73+ return ( ) => {
74+ OneSignal . Notifications . removeEventListener ( 'click' , onNotificationClick ) ;
75+ } ;
23376 } , [ ] ) ;
23477
23578 return (
0 commit comments