com.onesignal.unity.ios 5.0.6 → 5.1.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.
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
#import "OneSignalBridgeUtil.h"
|
|
32
32
|
|
|
33
33
|
typedef void (*StateListenerDelegate)(const char* current, const char* previous);
|
|
34
|
+
typedef void (*UserStateListenerDelegate)(const char* current);
|
|
34
35
|
|
|
35
36
|
/*
|
|
36
37
|
* Helpers
|
|
@@ -78,6 +79,45 @@ typedef void (*StateListenerDelegate)(const char* current, const char* previous)
|
|
|
78
79
|
|
|
79
80
|
@end
|
|
80
81
|
|
|
82
|
+
/*
|
|
83
|
+
* User state observer singleton for global callbacks
|
|
84
|
+
*/
|
|
85
|
+
|
|
86
|
+
@interface OneSignalUserStateObserver : NSObject <OSUserStateObserver>
|
|
87
|
+
|
|
88
|
+
+ (instancetype) sharedUserObserver;
|
|
89
|
+
@property UserStateListenerDelegate userStateDelegate;
|
|
90
|
+
|
|
91
|
+
@end
|
|
92
|
+
|
|
93
|
+
@implementation OneSignalUserStateObserver
|
|
94
|
+
|
|
95
|
+
+ (instancetype) sharedUserObserver {
|
|
96
|
+
static dispatch_once_t pred = 0;
|
|
97
|
+
static id _sharedObject = nil;
|
|
98
|
+
dispatch_once(&pred, ^{
|
|
99
|
+
_sharedObject = [[self alloc] init];
|
|
100
|
+
});
|
|
101
|
+
return _sharedObject;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
- (instancetype) init {
|
|
105
|
+
if (self = [super init]) {
|
|
106
|
+
[OneSignal.User addObserver:self];
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return self;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
- (void)onUserStateDidChangeWithState:(OSUserChangedState*)state {
|
|
113
|
+
if (_userStateDelegate != nil) {
|
|
114
|
+
auto curr = oneSignalJsonStringFromDictionary([[state current] jsonRepresentation]);
|
|
115
|
+
_userStateDelegate(curr);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
@end
|
|
120
|
+
|
|
81
121
|
/*
|
|
82
122
|
* Bridge methods
|
|
83
123
|
* We use strdup because Unity attempts to free the memory after we return the value
|
|
@@ -160,11 +200,31 @@ extern "C" {
|
|
|
160
200
|
[OneSignal.User removeTags:tags];
|
|
161
201
|
}
|
|
162
202
|
|
|
203
|
+
const char* _oneSignalUserGetOneSignalId(){
|
|
204
|
+
if (OneSignal.User.onesignalId == NULL) {
|
|
205
|
+
return NULL;
|
|
206
|
+
}
|
|
207
|
+
return strdup([OneSignal.User.onesignalId UTF8String]);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
const char* _oneSignalUserGetExternalId(){
|
|
211
|
+
if (OneSignal.User.externalId == NULL) {
|
|
212
|
+
return NULL;
|
|
213
|
+
}
|
|
214
|
+
return strdup([OneSignal.User.externalId UTF8String]);
|
|
215
|
+
}
|
|
216
|
+
|
|
163
217
|
const char* _oneSignalPushSubscriptionGetId() {
|
|
218
|
+
if (OneSignal.User.pushSubscription.id == NULL) {
|
|
219
|
+
return NULL;
|
|
220
|
+
}
|
|
164
221
|
return strdup([OneSignal.User.pushSubscription.id UTF8String]);
|
|
165
222
|
}
|
|
166
223
|
|
|
167
224
|
const char* _oneSignalPushSubscriptionGetToken() {
|
|
225
|
+
if (OneSignal.User.pushSubscription.token == NULL) {
|
|
226
|
+
return NULL;
|
|
227
|
+
}
|
|
168
228
|
return strdup([OneSignal.User.pushSubscription.token UTF8String]);
|
|
169
229
|
}
|
|
170
230
|
|
|
@@ -183,4 +243,8 @@ extern "C" {
|
|
|
183
243
|
void _oneSignalPushSubscriptionAddStateChangedCallback(StateListenerDelegate callback) {
|
|
184
244
|
[[OneSignalUserObserver sharedUserObserver] setPushSubscriptionDelegate:callback];
|
|
185
245
|
}
|
|
246
|
+
|
|
247
|
+
void _oneSignalUserAddStateChangedCallback(UserStateListenerDelegate callback) {
|
|
248
|
+
[[OneSignalUserStateObserver sharedUserObserver] setUserStateDelegate:callback];
|
|
249
|
+
}
|
|
186
250
|
}
|
|
@@ -95,7 +95,7 @@ static bool swizzled = false;
|
|
|
95
95
|
|
|
96
96
|
- (BOOL)oneSignalApplication:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
|
97
97
|
[OneSignalWrapper setSdkType:@"unity"];
|
|
98
|
-
[OneSignalWrapper setSdkVersion:@"
|
|
98
|
+
[OneSignalWrapper setSdkVersion:@"050101"];
|
|
99
99
|
[OneSignal initialize:nil withLaunchOptions:launchOptions];
|
|
100
100
|
|
|
101
101
|
if ([self respondsToSelector:@selector(oneSignalApplication:didFinishLaunchingWithOptions:)])
|
|
@@ -27,14 +27,18 @@
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
using UnityEngine;
|
|
30
|
+
using System;
|
|
30
31
|
using System.Collections.Generic;
|
|
31
32
|
using System.Runtime.InteropServices;
|
|
32
33
|
using OneSignalSDK.User;
|
|
34
|
+
using OneSignalSDK.User.Internal;
|
|
33
35
|
using OneSignalSDK.User.Models;
|
|
34
36
|
using OneSignalSDK.iOS.User.Models;
|
|
35
37
|
|
|
36
38
|
namespace OneSignalSDK.iOS.User {
|
|
37
39
|
internal sealed class iOSUserManager : IUserManager {
|
|
40
|
+
[DllImport("__Internal")] private static extern string _oneSignalUserGetOneSignalId();
|
|
41
|
+
[DllImport("__Internal")] private static extern string _oneSignalUserGetExternalId();
|
|
38
42
|
[DllImport("__Internal")] private static extern void _oneSignalUserSetLanguage(string languageCode);
|
|
39
43
|
[DllImport("__Internal")] private static extern void _oneSignalUserAddAlias(string aliasLabel, string aliasId);
|
|
40
44
|
[DllImport("__Internal")] private static extern void _oneSignalUserAddAliases(string aliasesJson);
|
|
@@ -49,13 +53,29 @@ namespace OneSignalSDK.iOS.User {
|
|
|
49
53
|
[DllImport("__Internal")] private static extern void _oneSignalUserAddTags(string tagsJson);
|
|
50
54
|
[DllImport("__Internal")] private static extern void _oneSignalUserRemoveTag(string key);
|
|
51
55
|
[DllImport("__Internal")] private static extern void _oneSignalUserRemoveTags(string tagsJson);
|
|
56
|
+
[DllImport("__Internal")] private static extern void _oneSignalUserAddStateChangedCallback(UserStateListenerDelegate callback);
|
|
57
|
+
|
|
58
|
+
public delegate void UserStateListenerDelegate(string current);
|
|
59
|
+
|
|
60
|
+
public event EventHandler<UserStateChangedEventArgs> Changed;
|
|
52
61
|
|
|
53
62
|
private iOSPushSubscription _pushSubscription;
|
|
63
|
+
|
|
64
|
+
private static iOSUserManager _instance;
|
|
54
65
|
|
|
55
66
|
public iOSUserManager() {
|
|
67
|
+
_instance = this;
|
|
56
68
|
_pushSubscription = new iOSPushSubscription();
|
|
57
69
|
}
|
|
58
70
|
|
|
71
|
+
public string OneSignalId {
|
|
72
|
+
get => _oneSignalUserGetOneSignalId();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
public string ExternalId {
|
|
76
|
+
get => _oneSignalUserGetExternalId();
|
|
77
|
+
}
|
|
78
|
+
|
|
59
79
|
public IPushSubscription PushSubscription {
|
|
60
80
|
get => _pushSubscription;
|
|
61
81
|
}
|
|
@@ -109,6 +129,21 @@ namespace OneSignalSDK.iOS.User {
|
|
|
109
129
|
|
|
110
130
|
public void Initialize() {
|
|
111
131
|
_pushSubscription.Initialize();
|
|
132
|
+
_oneSignalUserAddStateChangedCallback(_onUserStateChanged);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
[AOT.MonoPInvokeCallback(typeof(UserStateListenerDelegate))]
|
|
136
|
+
private static void _onUserStateChanged(string current) {
|
|
137
|
+
var curr = JsonUtility.FromJson<UserState>(current);
|
|
138
|
+
|
|
139
|
+
UserChangedState userChangedState = new UserChangedState(curr);
|
|
140
|
+
UserStateChangedEventArgs args = new UserStateChangedEventArgs(userChangedState);
|
|
141
|
+
|
|
142
|
+
EventHandler<UserStateChangedEventArgs> handler = _instance.Changed;
|
|
143
|
+
if (handler != null)
|
|
144
|
+
{
|
|
145
|
+
UnityMainThreadDispatch.Post(state => handler(_instance, args));
|
|
146
|
+
}
|
|
112
147
|
}
|
|
113
148
|
}
|
|
114
149
|
}
|
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": "5.
|
|
4
|
+
"version": "5.1.1",
|
|
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": "5.
|
|
8
|
+
"com.onesignal.unity.core": "5.1.1"
|
|
9
9
|
},
|
|
10
10
|
"keywords": [
|
|
11
11
|
"push-notifications",
|