Skip to content

Commit fcde214

Browse files
committed
wip
1 parent 44cda59 commit fcde214

3 files changed

Lines changed: 86 additions & 195 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ coverage/
99

1010
# tsc / build
1111
#
12+
.env
1213
.gradle
1314
build
1415
dist

examples/RNOneSignalTS/OSDemo.tsx

Lines changed: 38 additions & 195 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
1-
import { useFocusEffect } from '@react-navigation/native';
21
import React, { useCallback, useEffect, useState } from 'react';
32
import {
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';
1316
import { SafeAreaView } from 'react-native-safe-area-context';
1417
import OSButtons from './OSButtons';
1518
import 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 (

test.sh

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/bin/bash
2+
3+
# Load environment variables from .env file
4+
set -a
5+
[ -f .env ] && . .env
6+
set +a
7+
8+
curl --request POST \
9+
--url 'https://api.onesignal.com/notifications?c=push' \
10+
--header "Authorization: Key $API_KEY" \
11+
--header 'Content-Type: application/json' \
12+
--data "{
13+
\"app_id\": \"$APP_ID\",
14+
\"contents\": {
15+
\"en\": \"Default message.\"
16+
},
17+
\"include_aliases\": {
18+
\"external_id\": [
19+
\"$EXTERNAL_ID\"
20+
]
21+
},
22+
\"target_channel\": \"push\",
23+
\"headings\": {
24+
\"en\": \"Test Notification\"
25+
},
26+
\"subtitle\": {
27+
\"en\": \"Test Subtitle\"
28+
},
29+
\"name\": \"abc123\",
30+
\"data\": {
31+
\"route\": \"Search\",
32+
\"basket\": [
33+
{
34+
\"sku\": \"12qw3er56y\",
35+
\"itemName\": \"Hand-crafted Peppermint Candy Canes\",
36+
\"qty\": 3,
37+
\"cost\": \"9.99\"
38+
},
39+
{
40+
\"sku\": \"90ujr5383\",
41+
\"itemName\": \"Fat Squirrel\",
42+
\"qty\": 1,
43+
\"cost\": \"29.99\"
44+
}
45+
]
46+
}
47+
}"

0 commit comments

Comments
 (0)