-
Notifications
You must be signed in to change notification settings - Fork 378
Expand file tree
/
Copy pathNativeOneSignal.ts
More file actions
106 lines (93 loc) · 3.99 KB
/
NativeOneSignal.ts
File metadata and controls
106 lines (93 loc) · 3.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/* eslint-disable @typescript-eslint/no-wrapper-object-types */
import type { TurboModule } from 'react-native';
import { TurboModuleRegistry } from 'react-native';
import type { EventEmitter } from 'react-native/Libraries/Types/CodegenTypes';
export interface Spec extends TurboModule {
// OneSignal root
initialize(appId: string): void;
login(externalId: string): void;
logout(): void;
setPrivacyConsentRequired(required: boolean): void;
setPrivacyConsentGiven(granted: boolean): void;
// Debug
setLogLevel(logLevel: number): void;
setAlertLevel(logLevel: number): void;
// Live Activities (iOS only, stubs on Android)
enterLiveActivity(activityId: string, token: string, callback: (result: Object) => void): void;
/** @deprecated Currently unsupported, avoid using this method. */
exitLiveActivity(activityId: string, callback: (result: Object) => void): void;
setPushToStartToken(activityType: string, token: string): void;
removePushToStartToken(activityType: string): void;
setupDefaultLiveActivity(options: Object | null): void;
startDefaultLiveActivity(activityId: string, attributes: Object, content: Object): void;
// Push Subscription
addPushSubscriptionObserver(): void;
getPushSubscriptionId(): Promise<string | null>;
getPushSubscriptionToken(): Promise<string | null>;
getOptedIn(): Promise<boolean>;
optIn(): void;
optOut(): void;
// User
addUserStateObserver(): void;
getOnesignalId(): Promise<string | null>;
getExternalId(): Promise<string | null>;
setLanguage(language: string): void;
addAlias(label: string, id: string): void;
addAliases(aliases: Object): void;
removeAlias(label: string): void;
removeAliases(labels: string[]): void;
addEmail(email: string): void;
removeEmail(email: string): void;
addSms(smsNumber: string): void;
removeSms(smsNumber: string): void;
addTag(key: string, value: string): void;
removeTag(key: string): void;
addTags(tags: Object): void;
removeTags(keys: string[]): void;
getTags(): Promise<Object>;
trackEvent(name: string, properties: Object | null): void;
// Notifications
hasNotificationPermission(): Promise<boolean>;
requestNotificationPermission(fallbackToSettings: boolean): Promise<boolean>;
canRequestNotificationPermission(): Promise<boolean>;
registerForProvisionalAuthorization(callback: (accepted: boolean) => void): void;
permissionNative(): Promise<number>;
addNotificationClickListener(): void;
addNotificationForegroundLifecycleListener(): void;
addPermissionObserver(): void;
clearAllNotifications(): void;
removeNotification(id: number): void;
removeGroupedNotifications(id: string): void;
displayNotification(notificationId: string): void;
preventDefault(notificationId: string): void;
// In-App Messages
addInAppMessageClickListener(): void;
addInAppMessagesLifecycleListener(): void;
addTrigger(key: string, value: string): void;
addTriggers(triggers: Object): void;
removeTrigger(key: string): void;
removeTriggers(keys: string[]): void;
clearTriggers(): void;
paused(pause: boolean): void;
getPaused(): Promise<boolean>;
// Location
requestLocationPermission(): void;
setLocationShared(shared: boolean): void;
isLocationShared(): Promise<boolean>;
// Session
addOutcome(name: string): void;
addUniqueOutcome(name: string): void;
addOutcomeWithValue(name: string, value: number): void;
// Events
readonly onPermissionChanged: EventEmitter<Object>;
readonly onSubscriptionChanged: EventEmitter<Object>;
readonly onUserStateChanged: EventEmitter<Object>;
readonly onNotificationWillDisplay: EventEmitter<Object>;
readonly onNotificationClicked: EventEmitter<Object>;
readonly onInAppMessageClicked: EventEmitter<Object>;
readonly onInAppMessageWillDisplay: EventEmitter<Object>;
readonly onInAppMessageDidDisplay: EventEmitter<Object>;
readonly onInAppMessageWillDismiss: EventEmitter<Object>;
readonly onInAppMessageDidDismiss: EventEmitter<Object>;
}
export default TurboModuleRegistry.getEnforcing<Spec>('OneSignal');