com.onesignal.unity.ios 3.0.8 → 5.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/Editor/BuildPostProcessor.cs +4 -2
  2. package/Editor/OneSignaliOSDependencies.xml +5 -0
  3. package/Editor/OneSignaliOSDependencies.xml.meta +7 -0
  4. package/Editor/PBXProjectExtensions.cs +1 -1
  5. package/Runtime/OneSignaliOS.cs +178 -0
  6. package/Runtime/OneSignaliOS.cs.meta +11 -0
  7. package/Runtime/{OneSignalIOSInit.cs → OneSignaliOSInit.cs} +3 -3
  8. package/Runtime/OneSignaliOSInit.cs.meta +11 -0
  9. package/Runtime/Plugins/iOS/NotificationService.swift +1 -1
  10. package/Runtime/Plugins/iOS/OneSignalBridgeUtil.h +35 -0
  11. package/Runtime/Plugins/iOS/OneSignalBridgeUtil.h.meta +27 -0
  12. package/Runtime/Plugins/iOS/OneSignalBridgeUtil.mm +49 -0
  13. package/Runtime/Plugins/iOS/OneSignalBridgeUtil.mm.meta +37 -0
  14. package/Runtime/Plugins/iOS/OneSignalUnityBridge.mm +36 -383
  15. package/Runtime/Plugins/iOS/OneSignalUnityBridgeDebug.mm +40 -0
  16. package/Runtime/Plugins/iOS/OneSignalUnityBridgeDebug.mm.meta +37 -0
  17. package/Runtime/Plugins/iOS/OneSignalUnityBridgeInAppMessages.mm +167 -0
  18. package/Runtime/Plugins/iOS/OneSignalUnityBridgeInAppMessages.mm.meta +37 -0
  19. package/Runtime/Plugins/iOS/OneSignalUnityBridgeLocation.mm +44 -0
  20. package/Runtime/Plugins/iOS/OneSignalUnityBridgeLocation.mm.meta +37 -0
  21. package/Runtime/Plugins/iOS/OneSignalUnityBridgeNotifications.mm +124 -0
  22. package/Runtime/Plugins/iOS/OneSignalUnityBridgeNotifications.mm.meta +37 -0
  23. package/Runtime/Plugins/iOS/OneSignalUnityBridgeSession.mm +55 -0
  24. package/Runtime/Plugins/iOS/OneSignalUnityBridgeSession.mm.meta +37 -0
  25. package/Runtime/Plugins/iOS/OneSignalUnityBridgeUser.mm +197 -0
  26. package/Runtime/Plugins/iOS/OneSignalUnityBridgeUser.mm.meta +37 -0
  27. package/Runtime/Plugins/iOS/UIApplication+OneSignalUnity.mm +4 -2
  28. package/Runtime/Utilities/WaitingProxy.cs +52 -0
  29. package/Runtime/Utilities/WaitingProxy.cs.meta +11 -0
  30. package/Runtime/iOSDebugManager.cs +57 -0
  31. package/Runtime/iOSDebugManager.cs.meta +11 -0
  32. package/Runtime/iOSInAppMessagesManager.cs +118 -0
  33. package/Runtime/iOSInAppMessagesManager.cs.meta +11 -0
  34. package/Runtime/iOSLocationManager.cs +48 -0
  35. package/Runtime/iOSLocationManager.cs.meta +11 -0
  36. package/Runtime/iOSNotificationsManager.cs +148 -0
  37. package/Runtime/iOSNotificationsManager.cs.meta +11 -0
  38. package/Runtime/iOSPushSubscription.cs +81 -0
  39. package/Runtime/iOSPushSubscription.cs.meta +11 -0
  40. package/Runtime/iOSSessionManager.cs +47 -0
  41. package/Runtime/iOSSessionManager.cs.meta +11 -0
  42. package/Runtime/iOSUserManager.cs +106 -0
  43. package/Runtime/iOSUserManager.cs.meta +11 -0
  44. package/package.json +2 -2
  45. package/Editor/OneSignalIOSDependencies.xml +0 -5
  46. package/Editor/OneSignalIOSDependencies.xml.meta +0 -3
  47. package/Runtime/OneSignalIOS.Callbacks.cs +0 -181
  48. package/Runtime/OneSignalIOS.Callbacks.cs.meta +0 -3
  49. package/Runtime/OneSignalIOS.Interface.cs +0 -102
  50. package/Runtime/OneSignalIOS.Interface.cs.meta +0 -3
  51. package/Runtime/OneSignalIOS.Mappings.cs +0 -96
  52. package/Runtime/OneSignalIOS.Mappings.cs.meta +0 -3
  53. package/Runtime/OneSignalIOS.cs +0 -257
  54. package/Runtime/OneSignalIOS.cs.meta +0 -3
  55. package/Runtime/OneSignalIOSInit.cs.meta +0 -3
@@ -25,16 +25,11 @@
25
25
  * THE SOFTWARE.
26
26
  */
27
27
 
28
- #import <OneSignal/OneSignal.h>
28
+ #import <OneSignalNotifications/OneSignalNotifications.h>
29
+ #import <OneSignalUser/OneSignalUser-Swift.h>
30
+ #import <OneSignalFramework/OneSignalFramework.h>
29
31
 
30
32
  typedef void (*BooleanResponseDelegate)(int hashCode, bool response);
31
- typedef void (*StringResponseDelegate)(int hashCode, const char* response);
32
-
33
- typedef void (*BooleanListenerDelegate)(bool response);
34
- typedef void (*StringListenerDelegate)(const char* response);
35
- typedef void (*StateListenerDelegate)(const char* current, const char* previous);
36
-
37
- typedef bool (*NotificationWillShowInForegroundDelegate)(const char* notification);
38
33
 
39
34
  /*
40
35
  * Helpers
@@ -43,399 +38,57 @@ typedef bool (*NotificationWillShowInForegroundDelegate)(const char* notificatio
43
38
  #define CALLBACK(value) callback(hashCode, value)
44
39
  #define TO_NSSTRING(cstr) cstr ? [NSString stringWithUTF8String:cstr] : nil
45
40
 
46
- template <typename TObj>
47
- TObj objFromJsonString(const char* jsonString) {
48
- NSData* jsonData = [[NSString stringWithUTF8String:jsonString] dataUsingEncoding:NSUTF8StringEncoding];
49
- NSError* error = nil;
50
- TObj arr = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
51
-
52
- if (error != nil)
53
- return nil;
54
-
55
- return arr;
56
- }
57
-
58
- const char* jsonStringFromDictionary(NSDictionary *dictionary) {
59
- NSError *error;
60
- NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary options:0 error:&error];
61
- NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
62
- return [jsonString UTF8String];
63
- }
64
-
65
41
  /*
66
- * Observer singleton for global callbacks
42
+ * Bridge methods
67
43
  */
68
44
 
69
- @interface OneSignalObserver : NSObject <OSPermissionObserver,
70
- OSSubscriptionObserver,
71
- OSEmailSubscriptionObserver,
72
- OSSMSSubscriptionObserver,
73
- OSInAppMessageLifecycleHandler>
74
-
75
- + (instancetype) sharedObserver;
76
- @property StateListenerDelegate permissionDelegate;
77
- @property StateListenerDelegate subscriptionDelegate;
78
- @property StateListenerDelegate emailDelegate;
79
- @property StateListenerDelegate smsDelegate;
80
- @property StringListenerDelegate iamWillDisplayDelegate;
81
- @property StringListenerDelegate iamDidDisplayDelegate;
82
- @property StringListenerDelegate iamWillDismissDelegate;
83
- @property StringListenerDelegate iamDidDismissDelegate;
84
-
85
- @end
86
-
87
- @implementation OneSignalObserver
88
-
89
- + (instancetype) sharedObserver {
90
- static dispatch_once_t pred = 0;
91
- static id _sharedObject = nil;
92
- dispatch_once(&pred, ^{
93
- _sharedObject = [[self alloc] init];
94
- });
95
- return _sharedObject;
96
- }
97
-
98
- - (instancetype) init {
99
- if (self = [super init]) {
100
- [OneSignal setInAppMessageLifecycleHandler:self];
101
- [OneSignal addPermissionObserver:self];
102
- [OneSignal addSubscriptionObserver:self];
103
- [OneSignal addEmailSubscriptionObserver:self];
104
- [OneSignal addSMSSubscriptionObserver:self];
45
+ extern "C" {
46
+ void _initialize(const char* appId) {
47
+ [OneSignal initialize:TO_NSSTRING(appId) withLaunchOptions:nil];
105
48
  }
106
49
 
107
- return self;
108
- }
109
-
110
- - (void)onOSPermissionChanged:(OSPermissionStateChanges * _Nonnull)stateChanges {
111
- if (_permissionDelegate != nil) {
112
- auto curr = jsonStringFromDictionary([[stateChanges to] toDictionary]);
113
- auto prev = jsonStringFromDictionary([[stateChanges from] toDictionary]);
114
- _permissionDelegate(curr, prev);
50
+ void _login(const char* externalId) {
51
+ [OneSignal login:TO_NSSTRING(externalId)];
115
52
  }
116
- }
117
53
 
118
- - (void)onOSSubscriptionChanged:(OSSubscriptionStateChanges * _Nonnull)stateChanges {
119
- if (_subscriptionDelegate != nil) {
120
- auto curr = jsonStringFromDictionary([[stateChanges to] toDictionary]);
121
- auto prev = jsonStringFromDictionary([[stateChanges from] toDictionary]);
122
- _subscriptionDelegate(curr, prev);
54
+ void _loginWithJwtBearerToken(const char* externalId, const char* token) {
55
+ [OneSignal login:TO_NSSTRING(externalId) withToken:TO_NSSTRING(token)];
123
56
  }
124
- }
125
57
 
126
- - (void)onOSEmailSubscriptionChanged:(OSEmailSubscriptionStateChanges * _Nonnull)stateChanges {
127
- if (_emailDelegate != nil) {
128
- auto curr = jsonStringFromDictionary([[stateChanges to] toDictionary]);
129
- auto prev = jsonStringFromDictionary([[stateChanges from] toDictionary]);
130
- _emailDelegate(curr, prev);
58
+ void _logout() {
59
+ [OneSignal logout];
131
60
  }
132
- }
133
61
 
134
- - (void)onOSSMSSubscriptionChanged:(OSSMSSubscriptionStateChanges * _Nonnull)stateChanges {
135
- if (_smsDelegate != nil) {
136
- auto curr = jsonStringFromDictionary([[stateChanges to] toDictionary]);
137
- auto prev = jsonStringFromDictionary([[stateChanges from] toDictionary]);
138
- _smsDelegate(curr, prev);
62
+ bool _getPrivacyConsent() {
63
+ return OneSignal.getPrivacyConsent;
139
64
  }
140
- }
141
-
142
- - (void)onWillDisplayInAppMessage:(OSInAppMessage *)message {
143
- if (_iamWillDisplayDelegate != nil)
144
- _iamWillDisplayDelegate([message.messageId UTF8String]);
145
- }
146
-
147
- - (void)onDidDisplayInAppMessage:(OSInAppMessage *)message {
148
- if (_iamDidDisplayDelegate != nil)
149
- _iamDidDisplayDelegate([message.messageId UTF8String]);
150
- }
151
-
152
- - (void)onWillDismissInAppMessage:(OSInAppMessage *)message {
153
- if (_iamWillDismissDelegate != nil)
154
- _iamWillDismissDelegate([message.messageId UTF8String]);
155
- }
156
-
157
- - (void)onDidDismissInAppMessage:(OSInAppMessage *)message {
158
- if (_iamDidDismissDelegate != nil)
159
- _iamDidDismissDelegate([message.messageId UTF8String]);
160
- }
161
-
162
- @end
163
-
164
- /*
165
- * Bridge methods
166
- */
167
-
168
- extern "C" {
169
-
170
- void _setNotificationReceivedCallback(NotificationWillShowInForegroundDelegate callback) {
171
- [OneSignal setNotificationWillShowInForegroundHandler:^(OSNotification *notification, OSNotificationDisplayResponse completion) {
172
- NSString *stringResponse = [notification stringify];
173
- bool shouldDisplay = callback([stringResponse UTF8String]);
174
- completion(shouldDisplay ? notification : nil);
175
- }];
176
- }
177
-
178
- void _setNotificationOpenedCallback(StringListenerDelegate callback) {
179
- [OneSignal setNotificationOpenedHandler:^(OSNotificationOpenedResult * _Nonnull result) {
180
- NSString *stringResponse = [result stringify];
181
- callback([stringResponse UTF8String]);
182
- }];
183
- }
184
-
185
- void _setInAppMessageWillDisplayCallback(StringListenerDelegate callback) {
186
- [[OneSignalObserver sharedObserver] setIamWillDisplayDelegate:callback];
187
- }
188
-
189
- void _setInAppMessageDidDisplayCallback(StringListenerDelegate callback) {
190
- [[OneSignalObserver sharedObserver] setIamDidDisplayDelegate:callback];
191
- }
192
-
193
- void _setInAppMessageWillDismissCallback(StringListenerDelegate callback) {
194
- [[OneSignalObserver sharedObserver] setIamWillDismissDelegate:callback];
195
- }
196
-
197
- void _setInAppMessageDidDismissCallback(StringListenerDelegate callback) {
198
- [[OneSignalObserver sharedObserver] setIamDidDismissDelegate:callback];
199
- }
200
-
201
- void _setInAppMessageClickedCallback(StringListenerDelegate callback) {
202
- [OneSignal setInAppMessageClickHandler:^(OSInAppMessageAction * _Nonnull action) {
203
- callback(jsonStringFromDictionary([action jsonRepresentation]));
204
- }];
205
- }
206
-
207
- void _setPermissionStateChangedCallback(StateListenerDelegate callback) {
208
- [[OneSignalObserver sharedObserver] setPermissionDelegate:callback];
209
- }
210
-
211
- void _setSubscriptionStateChangedCallback(StateListenerDelegate callback) {
212
- [[OneSignalObserver sharedObserver] setSubscriptionDelegate:callback];
213
- }
214
-
215
- void _setEmailSubscriptionStateChangedCallback(StateListenerDelegate callback) {
216
- [[OneSignalObserver sharedObserver] setEmailDelegate:callback];
217
- }
218
-
219
- void _setSMSSubscriptionStateChangedCallback(StateListenerDelegate callback) {
220
- [[OneSignalObserver sharedObserver] setSmsDelegate:callback];
221
- }
222
-
223
- const char* _getDeviceState() {
224
- auto deviceState = [OneSignal getDeviceState];
225
- auto stateStr = jsonStringFromDictionary([deviceState jsonRepresentation]);
226
- return strdup(stateStr);
227
- }
228
-
229
- void _setLogLevel(int logLevel, int alertLevel) {
230
- [OneSignal setLogLevel:(ONE_S_LOG_LEVEL) logLevel
231
- visualLevel:(ONE_S_LOG_LEVEL) alertLevel];
232
- }
233
-
234
- void _setPrivacyConsent(bool consent) {
235
- [OneSignal consentGranted: consent];
236
- }
237
65
 
238
- bool _getPrivacyConsent() {
239
- return false; // todo - doesn't exist
240
- }
241
-
242
- void _setRequiresPrivacyConsent(bool required) {
243
- [OneSignal setRequiresUserPrivacyConsent: required];
244
- }
245
-
246
- bool _getRequiresPrivacyConsent() {
247
- return [OneSignal requiresUserPrivacyConsent];
248
- }
249
-
250
- void _setLaunchURLsInApp(bool launchInApp) {
251
- [OneSignal setLaunchURLsInApp: launchInApp];
252
- }
253
-
254
- void _initialize(const char* appId) {
255
- [OneSignal setAppId:TO_NSSTRING(appId)];
256
- [OneSignal initWithLaunchOptions:nil];
257
- }
258
-
259
- void _promptForPushNotificationsWithUserResponse(int hashCode, BooleanResponseDelegate callback) {
260
- [OneSignal promptForPushNotificationsWithUserResponse:^(BOOL accepted) {
261
- CALLBACK(accepted);
262
- }];
263
- }
264
-
265
- void _disablePush(bool disable) {
266
- [OneSignal disablePush:disable];
267
- }
268
-
269
- void _postNotification(const char* optionsJson, int hashCode, StringResponseDelegate callback) {
270
- NSDictionary *options = objFromJsonString<NSDictionary*>(optionsJson);
271
-
272
- [OneSignal postNotification:options onSuccess:^(NSDictionary *result) {
273
- CALLBACK(jsonStringFromDictionary(result));
274
- } onFailure:^(NSError *error) {
275
- CALLBACK(NULL);
276
- }];
277
- }
278
-
279
- void _setTrigger(const char* key, const char* value) {
280
- [OneSignal addTrigger:TO_NSSTRING(key) withValue:TO_NSSTRING(value)];
281
- }
282
-
283
- void _setTriggers(const char* triggersJson) {
284
- NSDictionary *triggers = objFromJsonString<NSDictionary*>(triggersJson);
285
- [OneSignal addTriggers:triggers];
286
- }
287
-
288
- void _removeTrigger(const char* key) {
289
- [OneSignal removeTriggerForKey:TO_NSSTRING(key)];
290
- }
291
-
292
- void _removeTriggers(const char* triggersJson) {
293
- NSArray *triggers = objFromJsonString<NSArray*>(triggersJson);
294
- [OneSignal removeTriggersForKeys:triggers];
295
- }
296
-
297
- const char* _getTrigger(const char* key) {
298
- id value = [OneSignal getTriggerValueForKey:TO_NSSTRING(key)];
299
- NSString *asString = [NSString stringWithFormat:@"%@", value];
300
- return strdup([asString UTF8String]);
301
- }
302
-
303
- const char* _getTriggers() {
304
- NSDictionary *triggers = [OneSignal getTriggers];
305
- return strdup(jsonStringFromDictionary(triggers));
306
- }
307
-
308
- void _setInAppMessagesArePaused(bool paused) {
309
- [OneSignal pauseInAppMessages:paused];
310
- }
311
-
312
- bool _getInAppMessagesArePaused() {
313
- return [OneSignal isInAppMessagingPaused];
314
- }
315
-
316
- void _sendTag(const char* name, const char* value, int hashCode, BooleanResponseDelegate callback) {
317
- [OneSignal sendTag:TO_NSSTRING(name)
318
- value:TO_NSSTRING(value)
319
- onSuccess:^(NSDictionary *result) { CALLBACK(YES); }
320
- onFailure:^(NSError *error) { CALLBACK(NO); }];
321
- }
322
-
323
- void _sendTags(const char* tagsJson, int hashCode, BooleanResponseDelegate callback) {
324
- NSDictionary *tags = objFromJsonString<NSDictionary*>(tagsJson);
325
-
326
- [OneSignal sendTags:tags
327
- onSuccess:^(NSDictionary *result) { CALLBACK(YES); }
328
- onFailure:^(NSError *error) { CALLBACK(NO); }];
329
- }
330
-
331
- void _getTags(int hashCode, StringResponseDelegate callback) {
332
- [OneSignal getTags:^(NSDictionary *result) {
333
- CALLBACK(jsonStringFromDictionary(result));
334
- } onFailure:^(NSError *error) {
335
- NSLog(@"[Onesignal] Could not get tags");
336
- CALLBACK(nil);
337
- }];
338
- }
339
-
340
- void _deleteTag(const char* name, int hashCode, BooleanResponseDelegate callback) {
341
- [OneSignal deleteTag:TO_NSSTRING(name)
342
- onSuccess:^(NSDictionary *result) { CALLBACK(YES); }
343
- onFailure:^(NSError *error) { CALLBACK(NO); }];
344
- }
345
-
346
- void _deleteTags(const char* tagsJson, int hashCode, BooleanResponseDelegate callback) {
347
- NSArray *tags = objFromJsonString<NSArray*>(tagsJson);
348
-
349
- if (tags == nil) {
350
- NSLog(@"[Onesignal] Could not parse tags to delete");
351
- CALLBACK(NO);
66
+ void _setPrivacyConsent(bool consent) {
67
+ [OneSignal setPrivacyConsent:consent];
352
68
  }
353
69
 
354
- [OneSignal deleteTags:tags
355
- onSuccess:^(NSDictionary *result) { CALLBACK(YES); }
356
- onFailure:^(NSError *error) { CALLBACK(NO); }];
357
- }
358
-
359
- void _setExternalUserId(const char* externalId, const char* authHash, int hashCode, BooleanResponseDelegate callback) {
360
- [OneSignal setExternalUserId:TO_NSSTRING(externalId)
361
- withExternalIdAuthHashToken:TO_NSSTRING(authHash)
362
- withSuccess:^(NSDictionary *results) { CALLBACK(YES); }
363
- withFailure:^(NSError *error) { CALLBACK(NO); }];
364
- }
70
+ bool _getRequiresPrivacyConsent() {
71
+ return [OneSignal requiresPrivacyConsent];
72
+ }
365
73
 
366
- void _setEmail(const char* email, const char* authHash, int hashCode, BooleanResponseDelegate callback) {
367
- [OneSignal setEmail:TO_NSSTRING(email)
368
- withEmailAuthHashToken:TO_NSSTRING(authHash)
369
- withSuccess:^{ CALLBACK(YES); }
370
- withFailure:^(NSError *error) { CALLBACK(NO); }];
371
- }
74
+ void _setRequiresPrivacyConsent(bool required) {
75
+ [OneSignal setRequiresPrivacyConsent:required];
76
+ }
372
77
 
373
- void _setSMSNumber(const char* smsNumber, const char* authHash, int hashCode, BooleanResponseDelegate callback) {
374
- [OneSignal setSMSNumber:TO_NSSTRING(smsNumber)
375
- withSMSAuthHashToken:TO_NSSTRING(authHash)
376
- withSuccess:^(NSDictionary *results) { CALLBACK(YES); }
377
- withFailure:^(NSError *error) { CALLBACK(NO); }];
378
- }
78
+ void _setLaunchURLsInApp(bool launchInApp) {
79
+ [OneSignal setLaunchURLsInApp:launchInApp];
80
+ }
379
81
 
380
- void _removeExternalUserId(int hashCode, BooleanResponseDelegate callback) {
381
- [OneSignal removeExternalUserId:^(NSDictionary *results) { CALLBACK(YES); }
82
+ void _enterLiveActivity(const char* activityId, const char* token, int hashCode, BooleanResponseDelegate callback) {
83
+ [OneSignal enterLiveActivity:TO_NSSTRING(activityId)
84
+ withToken:TO_NSSTRING(token)
85
+ withSuccess:^(NSDictionary *result) { CALLBACK(YES); }
382
86
  withFailure:^(NSError *error) { CALLBACK(NO); }];
383
- }
384
-
385
- void _logoutEmail(int hashCode, BooleanResponseDelegate callback) {
386
- [OneSignal logoutEmailWithSuccess:^{ CALLBACK(YES); }
387
- withFailure:^(NSError *error) { CALLBACK(NO); }];
388
- }
389
-
390
- void _logoutSMSNumber(int hashCode, BooleanResponseDelegate callback) {
391
- [OneSignal logoutSMSNumberWithSuccess:^(NSDictionary *results) { CALLBACK(YES); }
392
- withFailure:^(NSError *error) { CALLBACK(NO); }];
393
- }
394
-
395
- void _setLanguage(const char* languageCode, int hashCode, BooleanResponseDelegate callback) {
396
- [OneSignal setLanguage:TO_NSSTRING(languageCode)
397
- withSuccess:^{ CALLBACK(YES); }
398
- withFailure:^(NSError *error) { CALLBACK(NO); }];
399
- }
400
-
401
- void _promptLocation() {
402
- [OneSignal promptLocation];
403
- }
404
-
405
- void _setShareLocation(bool share) {
406
- [OneSignal setLocationShared:share];
407
- }
408
-
409
- bool _getShareLocation() {
410
- return [OneSignal isLocationShared];
411
- }
412
-
413
- void _sendOutcome(const char* name, int hashCode, BooleanResponseDelegate callback) {
414
- [OneSignal sendOutcome:TO_NSSTRING(name)
415
- onSuccess:^(OSOutcomeEvent *outcome) { CALLBACK(outcome != nil); }];
416
- }
417
-
418
- void _sendUniqueOutcome(const char* name, int hashCode, BooleanResponseDelegate callback) {
419
- [OneSignal sendUniqueOutcome:TO_NSSTRING(name)
420
- onSuccess:^(OSOutcomeEvent *outcome) { CALLBACK(outcome != nil); }];
421
- }
422
-
423
- void _sendOutcomeWithValue(const char* name, float value, int hashCode, BooleanResponseDelegate callback) {
424
- [OneSignal sendOutcomeWithValue:TO_NSSTRING(name)
425
- value:@(value)
426
- onSuccess:^(OSOutcomeEvent *outcome) { CALLBACK(outcome != nil); }];
427
- }
428
-
429
- void _enterLiveActivity(const char* activityId, const char* token, int hashCode, BooleanResponseDelegate callback) {
430
- [OneSignal enterLiveActivity:TO_NSSTRING(activityId)
431
- withToken:TO_NSSTRING(token)
432
- withSuccess:^(NSDictionary *result) { CALLBACK(YES); }
433
- withFailure:^(NSError *error) { CALLBACK(NO); }];
434
- }
87
+ }
435
88
 
436
- void _exitLiveActivity(const char* activityId, int hashCode, BooleanResponseDelegate callback) {
437
- [OneSignal exitLiveActivity:TO_NSSTRING(activityId)
438
- withSuccess:^(NSDictionary *result) { CALLBACK(YES); }
439
- withFailure:^(NSError *error) { CALLBACK(NO); }];
440
- }
89
+ void _exitLiveActivity(const char* activityId, int hashCode, BooleanResponseDelegate callback) {
90
+ [OneSignal exitLiveActivity:TO_NSSTRING(activityId)
91
+ withSuccess:^(NSDictionary *result) { CALLBACK(YES); }
92
+ withFailure:^(NSError *error) { CALLBACK(NO); }];
93
+ }
441
94
  }
@@ -0,0 +1,40 @@
1
+ /*
2
+ * Modified MIT License
3
+ *
4
+ * Copyright 2022 OneSignal
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * 1. The above copyright notice and this permission notice shall be included in
14
+ * all copies or substantial portions of the Software.
15
+ *
16
+ * 2. All copies of substantial portions of the Software may only be used in connection
17
+ * with services provided by OneSignal.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ * THE SOFTWARE.
26
+ */
27
+
28
+ #import <OneSignalNotifications/OneSignalNotifications.h>
29
+ #import <OneSignalUser/OneSignalUser-Swift.h>
30
+ #import <OneSignalFramework/OneSignalFramework.h>
31
+
32
+ extern "C" {
33
+ void _debugSetLogLevel(int logLevel) {
34
+ [OneSignal.Debug setLogLevel:(ONE_S_LOG_LEVEL) logLevel];
35
+ }
36
+
37
+ void _debugSetAlertLevel(int alertLevel) {
38
+ [OneSignal.Debug setAlertLevel:(ONE_S_LOG_LEVEL) alertLevel];
39
+ }
40
+ }
@@ -0,0 +1,37 @@
1
+ fileFormatVersion: 2
2
+ guid: 6b1860d6eff7d44bfa0c2c257233003d
3
+ PluginImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ iconMap: {}
7
+ executionOrder: {}
8
+ defineConstraints: []
9
+ isPreloaded: 0
10
+ isOverridable: 1
11
+ isExplicitlyReferenced: 0
12
+ validateReferences: 1
13
+ platformData:
14
+ - first:
15
+ Any:
16
+ second:
17
+ enabled: 0
18
+ settings: {}
19
+ - first:
20
+ Editor: Editor
21
+ second:
22
+ enabled: 0
23
+ settings:
24
+ DefaultValueInitialized: true
25
+ - first:
26
+ iPhone: iOS
27
+ second:
28
+ enabled: 1
29
+ settings: {}
30
+ - first:
31
+ tvOS: tvOS
32
+ second:
33
+ enabled: 1
34
+ settings: {}
35
+ userData:
36
+ assetBundleName:
37
+ assetBundleVariant:
@@ -0,0 +1,167 @@
1
+ /*
2
+ * Modified MIT License
3
+ *
4
+ * Copyright 2022 OneSignal
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * 1. The above copyright notice and this permission notice shall be included in
14
+ * all copies or substantial portions of the Software.
15
+ *
16
+ * 2. All copies of substantial portions of the Software may only be used in connection
17
+ * with services provided by OneSignal.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ * THE SOFTWARE.
26
+ */
27
+
28
+ #import <OneSignalNotifications/OneSignalNotifications.h>
29
+ #import <OneSignalUser/OneSignalUser-Swift.h>
30
+ #import <OneSignalFramework/OneSignalFramework.h>
31
+ #import "OneSignalBridgeUtil.h"
32
+
33
+ typedef void (*StringListenerDelegate)(const char* response);
34
+
35
+ /*
36
+ * Helpers
37
+ */
38
+
39
+ #define CALLBACK(value) callback(hashCode, value)
40
+ #define TO_NSSTRING(cstr) cstr ? [NSString stringWithUTF8String:cstr] : nil
41
+
42
+ template <typename TObj>
43
+ TObj objFromJsonString(const char* jsonString) {
44
+ NSData* jsonData = [[NSString stringWithUTF8String:jsonString] dataUsingEncoding:NSUTF8StringEncoding];
45
+ NSError* error = nil;
46
+ TObj arr = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
47
+
48
+ if (error != nil)
49
+ return nil;
50
+
51
+ return arr;
52
+ }
53
+
54
+ /*
55
+ * Observer singleton for global callbacks
56
+ */
57
+
58
+ @interface OneSignalInAppMessagesObserver : NSObject <OSInAppMessageLifecycleHandler>
59
+
60
+ + (instancetype) sharedInAppMessagesObserver;
61
+ @property StringListenerDelegate willDisplayDelegate;
62
+ @property StringListenerDelegate didDisplayDelegate;
63
+ @property StringListenerDelegate willDismissDelegate;
64
+ @property StringListenerDelegate didDismissDelegate;
65
+
66
+ @end
67
+
68
+ @implementation OneSignalInAppMessagesObserver
69
+
70
+ + (instancetype) sharedInAppMessagesObserver {
71
+ static dispatch_once_t pred = 0;
72
+ static id _sharedObject = nil;
73
+ dispatch_once(&pred, ^{
74
+ _sharedObject = [[self alloc] init];
75
+ });
76
+ return _sharedObject;
77
+ }
78
+
79
+ - (instancetype) init {
80
+ if (self = [super init]) {
81
+ [OneSignal.InAppMessages setLifecycleHandler:self];
82
+ }
83
+
84
+ return self;
85
+ }
86
+
87
+ - (void)onWillDisplayInAppMessage:(OSInAppMessage *)message {
88
+ if (_willDisplayDelegate != nil)
89
+ _willDisplayDelegate([message.messageId UTF8String]);
90
+ }
91
+
92
+ - (void)onDidDisplayInAppMessage:(OSInAppMessage *)message {
93
+ if (_didDisplayDelegate != nil)
94
+ _didDisplayDelegate([message.messageId UTF8String]);
95
+ }
96
+
97
+ - (void)onWillDismissInAppMessage:(OSInAppMessage *)message {
98
+ if (_willDismissDelegate != nil)
99
+ _willDismissDelegate([message.messageId UTF8String]);
100
+ }
101
+
102
+ - (void)onDidDismissInAppMessage:(OSInAppMessage *)message {
103
+ if (_didDismissDelegate != nil)
104
+ _didDismissDelegate([message.messageId UTF8String]);
105
+ }
106
+
107
+ @end
108
+
109
+ /*
110
+ * Bridge methods
111
+ */
112
+
113
+ extern "C" {
114
+ void _inAppMessagesSetWillDisplayCallback(StringListenerDelegate callback) {
115
+ [[OneSignalInAppMessagesObserver sharedInAppMessagesObserver] setWillDisplayDelegate:callback];
116
+ }
117
+
118
+ void _inAppMessagesSetDidDisplayCallback(StringListenerDelegate callback) {
119
+ [[OneSignalInAppMessagesObserver sharedInAppMessagesObserver] setDidDisplayDelegate:callback];
120
+ }
121
+
122
+ void _inAppMessagesSetWillDismissCallback(StringListenerDelegate callback) {
123
+ [[OneSignalInAppMessagesObserver sharedInAppMessagesObserver] setWillDismissDelegate:callback];
124
+ }
125
+
126
+ void _inAppMessagesSetDidDismissCallback(StringListenerDelegate callback) {
127
+ [[OneSignalInAppMessagesObserver sharedInAppMessagesObserver] setDidDismissDelegate:callback];
128
+ }
129
+
130
+ void _inAppMessagesSetClickedCallback(StringListenerDelegate callback) {
131
+ [OneSignal.InAppMessages setClickHandler:^(OSInAppMessageAction * _Nonnull action) {
132
+ callback(jsonStringFromDictionary([action jsonRepresentation]));
133
+ }];
134
+ }
135
+
136
+ void _inAppMessagesSetPaused(bool paused) {
137
+ [OneSignal.InAppMessages paused:paused];
138
+ }
139
+
140
+ bool _inAppMessagesGetPaused() {
141
+ return [OneSignal.InAppMessages paused];
142
+ }
143
+
144
+ void _inAppMessagesAddTrigger(const char* key, const char* value) {
145
+ [OneSignal.InAppMessages addTrigger:TO_NSSTRING(key) withValue:TO_NSSTRING(value)];
146
+ }
147
+
148
+ void _inAppMessagesAddTriggers(const char* triggersJson) {
149
+ NSDictionary *triggers = objFromJsonString<NSDictionary*>(triggersJson);
150
+
151
+ [OneSignal.InAppMessages addTriggers:triggers];
152
+ }
153
+
154
+ void _inAppMessagesRemoveTrigger(const char* key) {
155
+ [OneSignal.InAppMessages removeTrigger:TO_NSSTRING(key)];
156
+ }
157
+
158
+ void _inAppMessagesRemoveTriggers(const char* triggersJson) {
159
+ NSArray *triggers = objFromJsonString<NSArray*>(triggersJson);
160
+
161
+ [OneSignal.InAppMessages removeTriggers:triggers];
162
+ }
163
+
164
+ void _inAppMessagesClearTriggers() {
165
+ [OneSignal.InAppMessages clearTriggers];
166
+ }
167
+ }