com.onesignal.unity.ios 3.0.0-beta.2 → 3.0.0-beta.3

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.
@@ -99,6 +99,10 @@ namespace OneSignalSDK {
99
99
  return true;
100
100
 
101
101
  var notification = JsonUtility.FromJson<Notification>(response);
102
+
103
+ if (Json.Deserialize(response) is Dictionary<string, object> notifDict && notifDict.ContainsKey("additionalData"))
104
+ notification.additionalData = notifDict["additionalData"] as Dictionary<string, object>;
105
+
102
106
  var resultNotif = _instance.NotificationWillShow(notification);
103
107
 
104
108
  return resultNotif != null;
@@ -130,9 +134,20 @@ namespace OneSignalSDK {
130
134
 
131
135
  [AOT.MonoPInvokeCallback(typeof(StateListenerDelegate))]
132
136
  private static void _onPermissionStateChanged(string current, string previous) {
133
- var curr = JsonUtility.FromJson<PermissionState>(current);
134
- var prev = JsonUtility.FromJson<PermissionState>(previous);
135
- _instance.PermissionStateChanged?.Invoke(curr, prev);
137
+ if (!(Json.Deserialize(current) is Dictionary<string, object> currState)) {
138
+ SDKDebug.Error("Could not deserialize current permission state");
139
+ return;
140
+ }
141
+
142
+ if (!(Json.Deserialize(previous) is Dictionary<string, object> prevState)) {
143
+ SDKDebug.Error("Could not deserialize previous permission state");
144
+ return;
145
+ }
146
+
147
+ var curr = (NotificationPermission) currState["status"];
148
+ var prev = (NotificationPermission) prevState["status"];
149
+
150
+ _instance.NotificationPermissionChanged?.Invoke(curr, prev);
136
151
  }
137
152
 
138
153
  [AOT.MonoPInvokeCallback(typeof(StateListenerDelegate))]
@@ -54,6 +54,9 @@ namespace OneSignalSDK {
54
54
  * Direct methods
55
55
  */
56
56
 
57
+ [DllImport("__Internal")] private static extern string _getDeviceState();
58
+
59
+ [DllImport("__Internal")] private static extern void _setLogLevel(int logLevel, int alertLevel);
57
60
  [DllImport("__Internal")] private static extern void _setPrivacyConsent(bool consent);
58
61
  [DllImport("__Internal")] private static extern bool _getPrivacyConsent();
59
62
  [DllImport("__Internal")] private static extern void _setRequiresPrivacyConsent(bool required);
@@ -82,6 +85,8 @@ namespace OneSignalSDK {
82
85
 
83
86
  [DllImport("__Internal")] private static extern void _logoutEmail(int hashCode, BooleanResponseDelegate callback);
84
87
  [DllImport("__Internal")] private static extern void _logoutSMSNumber(int hashCode, BooleanResponseDelegate callback);
88
+
89
+ [DllImport("__Internal")] private static extern void _setLanguage(string languageCode, int hashCode, BooleanResponseDelegate callback);
85
90
 
86
91
  [DllImport("__Internal")] private static extern void _promptLocation();
87
92
  [DllImport("__Internal")] private static extern void _setShareLocation(bool share);
@@ -1,4 +1,4 @@
1
- /*
1
+ /*
2
2
  * Modified MIT License
3
3
  *
4
4
  * Copyright 2021 OneSignal
@@ -38,11 +38,83 @@ namespace OneSignalSDK {
38
38
  public override event InAppMessageLifecycleDelegate InAppMessageWillDismiss;
39
39
  public override event InAppMessageLifecycleDelegate InAppMessageDidDismiss;
40
40
  public override event InAppMessageActionDelegate InAppMessageTriggeredAction;
41
- public override event StateChangeDelegate<PermissionState> PermissionStateChanged;
41
+ public override event StateChangeDelegate<NotificationPermission> NotificationPermissionChanged;
42
42
  public override event StateChangeDelegate<PushSubscriptionState> PushSubscriptionStateChanged;
43
43
  public override event StateChangeDelegate<EmailSubscriptionState> EmailSubscriptionStateChanged;
44
44
  public override event StateChangeDelegate<SMSSubscriptionState> SMSSubscriptionStateChanged;
45
+
46
+ public override NotificationPermission NotificationPermission {
47
+ get {
48
+ if (Json.Deserialize(_getDeviceState()) is Dictionary<string, object> deviceState)
49
+ return (NotificationPermission) deviceState["notificationPermissionStatus"];
50
+
51
+ SDKDebug.Error("Could not deserialize device state for permissions");
52
+ return NotificationPermission.NotDetermined;
53
+ }
54
+ }
55
+
56
+ public override PushSubscriptionState PushSubscriptionState {
57
+ get {
58
+ if (Json.Deserialize(_getDeviceState()) is Dictionary<string, object> deviceState) {
59
+ return new PushSubscriptionState {
60
+ userId = deviceState["userId"] as string,
61
+ pushToken = deviceState["pushToken"] as string,
62
+ isSubscribed = (bool) deviceState["isSubscribed"],
63
+ isPushDisabled = (bool) deviceState["isPushDisabled"],
64
+ };
65
+ }
66
+
67
+ SDKDebug.Error("Could not deserialize device state for push");
68
+ return null;
69
+ }
70
+ }
71
+
72
+ public override EmailSubscriptionState EmailSubscriptionState {
73
+ get {
74
+ if (Json.Deserialize(_getDeviceState()) is Dictionary<string, object> deviceState) {
75
+ return new EmailSubscriptionState {
76
+ emailUserId = deviceState["emailUserId"] as string,
77
+ emailAddress = deviceState["emailAddress"] as string,
78
+ isSubscribed = (bool) deviceState["isEmailSubscribed"],
79
+ };
80
+ }
45
81
 
82
+ SDKDebug.Error("Could not deserialize device state for email");
83
+ return null;
84
+ }
85
+ }
86
+
87
+ public override SMSSubscriptionState SMSSubscriptionState {
88
+ get {
89
+ if (Json.Deserialize(_getDeviceState()) is Dictionary<string, object> deviceState) {
90
+ return new SMSSubscriptionState {
91
+ smsUserId = deviceState["smsUserId"] as string,
92
+ smsNumber = deviceState["smsNumber"] as string,
93
+ isSubscribed = (bool) deviceState["isSMSSubscribed"],
94
+ };
95
+ }
96
+
97
+ SDKDebug.Error("Could not deserialize device state for sms");
98
+ return null;
99
+ }
100
+ }
101
+
102
+ public override LogLevel LogLevel {
103
+ get => _logLevel;
104
+ set {
105
+ _logLevel = value;
106
+ _setLogLevel((int) _logLevel, (int) _alertLevel);
107
+ }
108
+ }
109
+
110
+ public override LogLevel AlertLevel {
111
+ get => _alertLevel;
112
+ set {
113
+ _alertLevel = value;
114
+ _setLogLevel((int) _logLevel, (int) _alertLevel);
115
+ }
116
+ }
117
+
46
118
  public override bool PrivacyConsent {
47
119
  get => _getPrivacyConsent();
48
120
  set => _setPrivacyConsent(value);
@@ -65,7 +137,7 @@ namespace OneSignalSDK {
65
137
  }
66
138
 
67
139
  public override void ClearOneSignalNotifications()
68
- => SDKDebug.Log("ClearOneSignalNotifications invoked on iOS, does nothing");
140
+ => SDKDebug.Info("ClearOneSignalNotifications invoked on iOS, does nothing");
69
141
 
70
142
  public override async Task<Dictionary<string, object>> PostNotification(Dictionary<string, object> options) {
71
143
  var (proxy, hashCode) = _setupProxy<string>();
@@ -159,6 +231,12 @@ namespace OneSignalSDK {
159
231
  _logoutSMSNumber(hashCode, BooleanCallbackProxy);
160
232
  return await proxy;
161
233
  }
234
+
235
+ public override async Task<bool> SetLanguage(string languageCode) {
236
+ var (proxy, hashCode) = _setupProxy<bool>();
237
+ _setLanguage(languageCode, hashCode, BooleanCallbackProxy);
238
+ return await proxy;
239
+ }
162
240
 
163
241
  public override void PromptLocation()
164
242
  => _promptLocation();
@@ -67,10 +67,10 @@ const char* jsonStringFromDictionary(NSDictionary *dictionary) {
67
67
  */
68
68
 
69
69
  @interface OneSignalObserver : NSObject <OSPermissionObserver,
70
- OSSubscriptionObserver,
71
- OSEmailSubscriptionObserver,
72
- OSSMSSubscriptionObserver,
73
- OSInAppMessageLifecycleHandler>
70
+ OSSubscriptionObserver,
71
+ OSEmailSubscriptionObserver,
72
+ OSSMSSubscriptionObserver,
73
+ OSInAppMessageLifecycleHandler>
74
74
 
75
75
  + (instancetype) sharedObserver;
76
76
  @property StateListenerDelegate permissionDelegate;
@@ -167,234 +167,251 @@ const char* jsonStringFromDictionary(NSDictionary *dictionary) {
167
167
 
168
168
  extern "C" {
169
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
- }
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
177
 
178
- void _setNotificationOpenedCallback(StringListenerDelegate callback) {
179
- [OneSignal setNotificationOpenedHandler:^(OSNotificationOpenedResult * _Nonnull result) {
180
- NSString *stringResponse = [result stringify];
181
- callback([stringResponse UTF8String]);
182
- }];
183
- }
178
+ void _setNotificationOpenedCallback(StringListenerDelegate callback) {
179
+ [OneSignal setNotificationOpenedHandler:^(OSNotificationOpenedResult * _Nonnull result) {
180
+ NSString *stringResponse = [result stringify];
181
+ callback([stringResponse UTF8String]);
182
+ }];
183
+ }
184
184
 
185
- void _setInAppMessageWillDisplayCallback(StringListenerDelegate callback) {
186
- [[OneSignalObserver sharedObserver] setIamWillDisplayDelegate:callback];
187
- }
185
+ void _setInAppMessageWillDisplayCallback(StringListenerDelegate callback) {
186
+ [[OneSignalObserver sharedObserver] setIamWillDisplayDelegate:callback];
187
+ }
188
188
 
189
- void _setInAppMessageDidDisplayCallback(StringListenerDelegate callback) {
190
- [[OneSignalObserver sharedObserver] setIamDidDisplayDelegate:callback];
191
- }
189
+ void _setInAppMessageDidDisplayCallback(StringListenerDelegate callback) {
190
+ [[OneSignalObserver sharedObserver] setIamDidDisplayDelegate:callback];
191
+ }
192
192
 
193
- void _setInAppMessageWillDismissCallback(StringListenerDelegate callback) {
194
- [[OneSignalObserver sharedObserver] setIamWillDismissDelegate:callback];
195
- }
193
+ void _setInAppMessageWillDismissCallback(StringListenerDelegate callback) {
194
+ [[OneSignalObserver sharedObserver] setIamWillDismissDelegate:callback];
195
+ }
196
196
 
197
- void _setInAppMessageDidDismissCallback(StringListenerDelegate callback) {
198
- [[OneSignalObserver sharedObserver] setIamDidDismissDelegate:callback];
199
- }
197
+ void _setInAppMessageDidDismissCallback(StringListenerDelegate callback) {
198
+ [[OneSignalObserver sharedObserver] setIamDidDismissDelegate:callback];
199
+ }
200
200
 
201
- void _setInAppMessageClickedCallback(StringListenerDelegate callback) {
202
- [OneSignal setInAppMessageClickHandler:^(OSInAppMessageAction * _Nonnull action) {
203
- callback(jsonStringFromDictionary([action jsonRepresentation]));
204
- }];
205
- }
201
+ void _setInAppMessageClickedCallback(StringListenerDelegate callback) {
202
+ [OneSignal setInAppMessageClickHandler:^(OSInAppMessageAction * _Nonnull action) {
203
+ callback(jsonStringFromDictionary([action jsonRepresentation]));
204
+ }];
205
+ }
206
206
 
207
- void _setPermissionStateChangedCallback(StateListenerDelegate callback) {
208
- [[OneSignalObserver sharedObserver] setPermissionDelegate:callback];
209
- }
207
+ void _setPermissionStateChangedCallback(StateListenerDelegate callback) {
208
+ [[OneSignalObserver sharedObserver] setPermissionDelegate:callback];
209
+ }
210
210
 
211
- void _setSubscriptionStateChangedCallback(StateListenerDelegate callback) {
212
- [[OneSignalObserver sharedObserver] setSubscriptionDelegate:callback];
213
- }
211
+ void _setSubscriptionStateChangedCallback(StateListenerDelegate callback) {
212
+ [[OneSignalObserver sharedObserver] setSubscriptionDelegate:callback];
213
+ }
214
214
 
215
- void _setEmailSubscriptionStateChangedCallback(StateListenerDelegate callback) {
216
- [[OneSignalObserver sharedObserver] setEmailDelegate:callback];
217
- }
215
+ void _setEmailSubscriptionStateChangedCallback(StateListenerDelegate callback) {
216
+ [[OneSignalObserver sharedObserver] setEmailDelegate:callback];
217
+ }
218
218
 
219
219
  void _setSMSSubscriptionStateChangedCallback(StateListenerDelegate callback) {
220
220
  [[OneSignalObserver sharedObserver] setSmsDelegate:callback];
221
221
  }
222
-
223
- void _setPrivacyConsent(bool consent) {
224
- [OneSignal consentGranted: consent];
222
+
223
+ const char* _getDeviceState() {
224
+ auto deviceState = [OneSignal getDeviceState];
225
+ auto stateStr = jsonStringFromDictionary([deviceState jsonRepresentation]);
226
+ return strdup(stateStr);
225
227
  }
226
228
 
227
- bool _getPrivacyConsent() {
228
- return false; // todo - doesn't exist
229
- }
229
+ void _setLogLevel(int logLevel, int alertLevel) {
230
+ [OneSignal setLogLevel:(ONE_S_LOG_LEVEL) logLevel
231
+ visualLevel:(ONE_S_LOG_LEVEL) alertLevel];
232
+ }
230
233
 
231
- void _setRequiresPrivacyConsent(bool required) {
232
- [OneSignal setRequiresUserPrivacyConsent: required];
233
- }
234
+ void _setPrivacyConsent(bool consent) {
235
+ [OneSignal consentGranted: consent];
236
+ }
234
237
 
235
- bool _getRequiresPrivacyConsent() {
236
- return [OneSignal requiresUserPrivacyConsent];
237
- }
238
+ bool _getPrivacyConsent() {
239
+ return false; // todo - doesn't exist
240
+ }
238
241
 
239
- void _initialize(const char* appId) {
240
- [OneSignal setAppId:TO_NSSTRING(appId)];
241
- [OneSignal initWithLaunchOptions:nil];
242
- }
242
+ void _setRequiresPrivacyConsent(bool required) {
243
+ [OneSignal setRequiresUserPrivacyConsent: required];
244
+ }
243
245
 
244
- void _promptForPushNotificationsWithUserResponse(int hashCode, BooleanResponseDelegate callback) {
245
- [OneSignal promptForPushNotificationsWithUserResponse:^(BOOL accepted) {
246
- CALLBACK(accepted);
247
- }];
248
- }
246
+ bool _getRequiresPrivacyConsent() {
247
+ return [OneSignal requiresUserPrivacyConsent];
248
+ }
249
249
 
250
- void _postNotification(const char* optionsJson, int hashCode, StringResponseDelegate callback) {
251
- NSDictionary *options = objFromJsonString<NSDictionary*>(optionsJson);
250
+ void _initialize(const char* appId) {
251
+ [OneSignal setAppId:TO_NSSTRING(appId)];
252
+ [OneSignal initWithLaunchOptions:nil];
253
+ }
252
254
 
253
- [OneSignal postNotification:options onSuccess:^(NSDictionary *result) {
254
- CALLBACK(jsonStringFromDictionary(result));
255
- } onFailure:^(NSError *error) {
256
- CALLBACK(NULL);
257
- }];
258
- }
255
+ void _promptForPushNotificationsWithUserResponse(int hashCode, BooleanResponseDelegate callback) {
256
+ [OneSignal promptForPushNotificationsWithUserResponse:^(BOOL accepted) {
257
+ CALLBACK(accepted);
258
+ }];
259
+ }
259
260
 
260
- void _setTrigger(const char* key, const char* value) {
261
- [OneSignal addTrigger:TO_NSSTRING(key) withValue:TO_NSSTRING(value)];
262
- }
261
+ void _postNotification(const char* optionsJson, int hashCode, StringResponseDelegate callback) {
262
+ NSDictionary *options = objFromJsonString<NSDictionary*>(optionsJson);
263
263
 
264
- void _setTriggers(const char* triggersJson) {
265
- NSDictionary *triggers = objFromJsonString<NSDictionary*>(triggersJson);
266
- [OneSignal addTriggers:triggers];
267
- }
264
+ [OneSignal postNotification:options onSuccess:^(NSDictionary *result) {
265
+ CALLBACK(jsonStringFromDictionary(result));
266
+ } onFailure:^(NSError *error) {
267
+ CALLBACK(NULL);
268
+ }];
269
+ }
268
270
 
269
- void _removeTrigger(const char* key) {
270
- [OneSignal removeTriggerForKey:TO_NSSTRING(key)];
271
- }
271
+ void _setTrigger(const char* key, const char* value) {
272
+ [OneSignal addTrigger:TO_NSSTRING(key) withValue:TO_NSSTRING(value)];
273
+ }
272
274
 
273
- void _removeTriggers(const char* triggersJson) {
274
- NSArray *triggers = objFromJsonString<NSArray*>(triggersJson);
275
- [OneSignal removeTriggersForKeys:triggers];
276
- }
275
+ void _setTriggers(const char* triggersJson) {
276
+ NSDictionary *triggers = objFromJsonString<NSDictionary*>(triggersJson);
277
+ [OneSignal addTriggers:triggers];
278
+ }
277
279
 
278
- const char* _getTrigger(const char* key) {
279
- id value = [OneSignal getTriggerValueForKey:TO_NSSTRING(key)];
280
- NSString *asString = [NSString stringWithFormat:@"%@", value];
281
- return strdup([asString UTF8String]);
282
- }
280
+ void _removeTrigger(const char* key) {
281
+ [OneSignal removeTriggerForKey:TO_NSSTRING(key)];
282
+ }
283
283
 
284
- const char* _getTriggers() {
285
- NSDictionary *triggers = [OneSignal getTriggers];
286
- return strdup(jsonStringFromDictionary(triggers));
287
- }
284
+ void _removeTriggers(const char* triggersJson) {
285
+ NSArray *triggers = objFromJsonString<NSArray*>(triggersJson);
286
+ [OneSignal removeTriggersForKeys:triggers];
287
+ }
288
288
 
289
- void _setInAppMessagesArePaused(bool paused) {
290
- [OneSignal pauseInAppMessages:paused];
291
- }
289
+ const char* _getTrigger(const char* key) {
290
+ id value = [OneSignal getTriggerValueForKey:TO_NSSTRING(key)];
291
+ NSString *asString = [NSString stringWithFormat:@"%@", value];
292
+ return strdup([asString UTF8String]);
293
+ }
292
294
 
293
- bool _getInAppMessagesArePaused() {
294
- return [OneSignal isInAppMessagingPaused];
295
- }
295
+ const char* _getTriggers() {
296
+ NSDictionary *triggers = [OneSignal getTriggers];
297
+ return strdup(jsonStringFromDictionary(triggers));
298
+ }
296
299
 
297
- void _sendTag(const char* name, const char* value, int hashCode, BooleanResponseDelegate callback) {
298
- [OneSignal sendTag:TO_NSSTRING(name)
299
- value:TO_NSSTRING(value)
300
- onSuccess:^(NSDictionary *result) { CALLBACK(YES); }
301
- onFailure:^(NSError *error) { CALLBACK(NO); }];
302
- }
300
+ void _setInAppMessagesArePaused(bool paused) {
301
+ [OneSignal pauseInAppMessages:paused];
302
+ }
303
303
 
304
- void _sendTags(const char* tagsJson, int hashCode, BooleanResponseDelegate callback) {
305
- NSDictionary *tags = objFromJsonString<NSDictionary*>(tagsJson);
304
+ bool _getInAppMessagesArePaused() {
305
+ return [OneSignal isInAppMessagingPaused];
306
+ }
306
307
 
307
- [OneSignal sendTags:tags
308
- onSuccess:^(NSDictionary *result) { CALLBACK(YES); }
309
- onFailure:^(NSError *error) { CALLBACK(NO); }];
310
- }
308
+ void _sendTag(const char* name, const char* value, int hashCode, BooleanResponseDelegate callback) {
309
+ [OneSignal sendTag:TO_NSSTRING(name)
310
+ value:TO_NSSTRING(value)
311
+ onSuccess:^(NSDictionary *result) { CALLBACK(YES); }
312
+ onFailure:^(NSError *error) { CALLBACK(NO); }];
313
+ }
311
314
 
312
- void _getTags(int hashCode, StringResponseDelegate callback) {
313
- [OneSignal getTags:^(NSDictionary *result) {
314
- CALLBACK(jsonStringFromDictionary(result));
315
- } onFailure:^(NSError *error) {
316
- NSLog(@"[Onesignal] Could not get tags");
317
- CALLBACK(nil);
318
- }];
319
- }
315
+ void _sendTags(const char* tagsJson, int hashCode, BooleanResponseDelegate callback) {
316
+ NSDictionary *tags = objFromJsonString<NSDictionary*>(tagsJson);
320
317
 
321
- void _deleteTag(const char* name, int hashCode, BooleanResponseDelegate callback) {
322
- [OneSignal deleteTag:TO_NSSTRING(name)
323
- onSuccess:^(NSDictionary *result) { CALLBACK(YES); }
324
- onFailure:^(NSError *error) { CALLBACK(NO); }];
325
- }
318
+ [OneSignal sendTags:tags
319
+ onSuccess:^(NSDictionary *result) { CALLBACK(YES); }
320
+ onFailure:^(NSError *error) { CALLBACK(NO); }];
321
+ }
326
322
 
327
- void _deleteTags(const char* tagsJson, int hashCode, BooleanResponseDelegate callback) {
328
- NSArray *tags = objFromJsonString<NSArray*>(tagsJson);
323
+ void _getTags(int hashCode, StringResponseDelegate callback) {
324
+ [OneSignal getTags:^(NSDictionary *result) {
325
+ CALLBACK(jsonStringFromDictionary(result));
326
+ } onFailure:^(NSError *error) {
327
+ NSLog(@"[Onesignal] Could not get tags");
328
+ CALLBACK(nil);
329
+ }];
330
+ }
329
331
 
330
- if (tags == nil) {
331
- NSLog(@"[Onesignal] Could not parse tags to delete");
332
- CALLBACK(NO);
333
- }
332
+ void _deleteTag(const char* name, int hashCode, BooleanResponseDelegate callback) {
333
+ [OneSignal deleteTag:TO_NSSTRING(name)
334
+ onSuccess:^(NSDictionary *result) { CALLBACK(YES); }
335
+ onFailure:^(NSError *error) { CALLBACK(NO); }];
336
+ }
334
337
 
335
- [OneSignal deleteTags:tags
336
- onSuccess:^(NSDictionary *result) { CALLBACK(YES); }
337
- onFailure:^(NSError *error) { CALLBACK(NO); }];
338
- }
338
+ void _deleteTags(const char* tagsJson, int hashCode, BooleanResponseDelegate callback) {
339
+ NSArray *tags = objFromJsonString<NSArray*>(tagsJson);
339
340
 
340
- void _setExternalUserId(const char* externalId, const char* authHash, int hashCode, BooleanResponseDelegate callback) {
341
- [OneSignal setExternalUserId:TO_NSSTRING(externalId)
342
- withExternalIdAuthHashToken:TO_NSSTRING(authHash)
343
- withSuccess:^(NSDictionary *results) { CALLBACK(YES); }
344
- withFailure:^(NSError *error) { CALLBACK(NO); }];
341
+ if (tags == nil) {
342
+ NSLog(@"[Onesignal] Could not parse tags to delete");
343
+ CALLBACK(NO);
345
344
  }
346
345
 
347
- void _setEmail(const char* email, const char* authHash, int hashCode, BooleanResponseDelegate callback) {
348
- [OneSignal setEmail:TO_NSSTRING(email)
349
- withEmailAuthHashToken:TO_NSSTRING(authHash)
350
- withSuccess:^{ CALLBACK(YES); }
346
+ [OneSignal deleteTags:tags
347
+ onSuccess:^(NSDictionary *result) { CALLBACK(YES); }
348
+ onFailure:^(NSError *error) { CALLBACK(NO); }];
349
+ }
350
+
351
+ void _setExternalUserId(const char* externalId, const char* authHash, int hashCode, BooleanResponseDelegate callback) {
352
+ [OneSignal setExternalUserId:TO_NSSTRING(externalId)
353
+ withExternalIdAuthHashToken:TO_NSSTRING(authHash)
354
+ withSuccess:^(NSDictionary *results) { CALLBACK(YES); }
355
+ withFailure:^(NSError *error) { CALLBACK(NO); }];
356
+ }
357
+
358
+ void _setEmail(const char* email, const char* authHash, int hashCode, BooleanResponseDelegate callback) {
359
+ [OneSignal setEmail:TO_NSSTRING(email)
360
+ withEmailAuthHashToken:TO_NSSTRING(authHash)
361
+ withSuccess:^{ CALLBACK(YES); }
362
+ withFailure:^(NSError *error) { CALLBACK(NO); }];
363
+ }
364
+
365
+ void _setSMSNumber(const char* smsNumber, const char* authHash, int hashCode, BooleanResponseDelegate callback) {
366
+ [OneSignal setSMSNumber:TO_NSSTRING(smsNumber)
367
+ withSMSAuthHashToken:TO_NSSTRING(authHash)
368
+ withSuccess:^(NSDictionary *results) { CALLBACK(YES); }
351
369
  withFailure:^(NSError *error) { CALLBACK(NO); }];
352
- }
370
+ }
353
371
 
354
- void _setSMSNumber(const char* smsNumber, const char* authHash, int hashCode, BooleanResponseDelegate callback) {
355
- [OneSignal setSMSNumber:TO_NSSTRING(smsNumber)
356
- withSMSAuthHashToken:TO_NSSTRING(authHash)
357
- withSuccess:^(NSDictionary *results) { CALLBACK(YES); }
358
- withFailure:^(NSError *error) { CALLBACK(NO); }];
359
- }
360
-
361
- void _logoutEmail(int hashCode, BooleanResponseDelegate callback) {
362
- [OneSignal logoutEmailWithSuccess:^{ CALLBACK(YES); }
363
- withFailure:^(NSError *error) { CALLBACK(NO); }];
372
+ void _logoutEmail(int hashCode, BooleanResponseDelegate callback) {
373
+ [OneSignal logoutEmailWithSuccess:^{ CALLBACK(YES); }
374
+ withFailure:^(NSError *error) { CALLBACK(NO); }];
375
+ }
376
+
377
+ void _logoutSMSNumber(int hashCode, BooleanResponseDelegate callback) {
378
+ [OneSignal logoutSMSNumberWithSuccess:^(NSDictionary *results) { CALLBACK(YES); }
379
+ withFailure:^(NSError *error) { CALLBACK(NO); }];
364
380
  }
365
381
 
366
- void _logoutSMSNumber(int hashCode, BooleanResponseDelegate callback) {
367
- [OneSignal logoutSMSNumberWithSuccess:^(NSDictionary *results) { CALLBACK(YES); }
368
- withFailure:^(NSError *error) { CALLBACK(NO); }];
382
+ void _setLanguage(const char* languageCode, int hashCode, BooleanResponseDelegate callback) {
383
+ [OneSignal setLanguage:TO_NSSTRING(languageCode)
384
+ withSuccess:^{ CALLBACK(YES); }
385
+ withFailure:^(NSError *error) { CALLBACK(NO); }];
369
386
  }
370
387
 
371
388
  void _promptLocation() {
372
389
  [OneSignal promptLocation];
373
390
  }
374
391
 
375
- void _setShareLocation(bool share) {
376
- [OneSignal setLocationShared:share];
377
- }
392
+ void _setShareLocation(bool share) {
393
+ [OneSignal setLocationShared:share];
394
+ }
378
395
 
379
- bool _getShareLocation() {
380
- return [OneSignal isLocationShared];
381
- }
396
+ bool _getShareLocation() {
397
+ return [OneSignal isLocationShared];
398
+ }
382
399
 
383
- void _sendOutcome(const char* name, int hashCode, BooleanResponseDelegate callback) {
384
- [OneSignal sendOutcome:TO_NSSTRING(name)
385
- onSuccess:^(OSOutcomeEvent *outcome) { CALLBACK(outcome != nil); }];
386
- }
400
+ void _sendOutcome(const char* name, int hashCode, BooleanResponseDelegate callback) {
401
+ [OneSignal sendOutcome:TO_NSSTRING(name)
402
+ onSuccess:^(OSOutcomeEvent *outcome) { CALLBACK(outcome != nil); }];
403
+ }
387
404
 
388
- void _sendUniqueOutcome(const char* name, int hashCode, BooleanResponseDelegate callback) {
389
- [OneSignal sendUniqueOutcome:TO_NSSTRING(name)
390
- onSuccess:^(OSOutcomeEvent *outcome) { CALLBACK(outcome != nil); }];
391
- }
405
+ void _sendUniqueOutcome(const char* name, int hashCode, BooleanResponseDelegate callback) {
406
+ [OneSignal sendUniqueOutcome:TO_NSSTRING(name)
407
+ onSuccess:^(OSOutcomeEvent *outcome) { CALLBACK(outcome != nil); }];
408
+ }
392
409
 
393
- void _sendOutcomeWithValue(const char* name, float value, int hashCode, BooleanResponseDelegate callback) {
394
- [OneSignal sendOutcomeWithValue:TO_NSSTRING(name)
395
- value:@(value)
396
- onSuccess:^(OSOutcomeEvent *outcome) { CALLBACK(outcome != nil); }];
397
- }
410
+ void _sendOutcomeWithValue(const char* name, float value, int hashCode, BooleanResponseDelegate callback) {
411
+ [OneSignal sendOutcomeWithValue:TO_NSSTRING(name)
412
+ value:@(value)
413
+ onSuccess:^(OSOutcomeEvent *outcome) { CALLBACK(outcome != nil); }];
398
414
  }
415
+ }
416
+
399
417
 
400
-
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "com.onesignal.unity.ios",
3
3
  "displayName": "OneSignal Unity SDK - iOS",
4
- "version": "3.0.0-beta.2",
4
+ "version": "3.0.0-beta.3",
5
5
  "unity": "2018.4",
6
6
  "description": "OneSignal is the market leader in customer engagement, powering mobile push, web push, email, and in-app messages.",
7
7
  "dependencies": {
8
- "com.onesignal.unity.core": "3.0.0-beta.2"
8
+ "com.onesignal.unity.core": "3.0.0-beta.3"
9
9
  },
10
10
  "keywords": [
11
11
  "push-notifications",