com.onesignal.unity.ios 5.1.14 → 5.1.16
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.
- package/Editor/BuildPostProcessor.cs +129 -57
- package/Editor/OneSignaliOSDependencies.xml +4 -4
- package/Editor/PBXProjectExtensions.cs +16 -15
- package/Runtime/AssemblyInfo.cs +1 -1
- package/Runtime/OneSignaliOS.cs +82 -43
- package/Runtime/Plugins/iOS/UIApplication+OneSignalUnity.mm +1 -1
- package/Runtime/Utilities/Later.cs +19 -11
- package/Runtime/Utilities/WaitingProxy.cs +15 -10
- package/Runtime/iOSDebugManager.cs +21 -12
- package/Runtime/iOSDisplayableNotification.cs +9 -7
- package/Runtime/iOSInAppMessagesManager.cs +84 -39
- package/Runtime/iOSLiveActivitiesManager.cs +60 -23
- package/Runtime/iOSLocationManager.cs +19 -10
- package/Runtime/iOSNotificationsManager.cs +111 -46
- package/Runtime/iOSPushSubscription.cs +40 -22
- package/Runtime/iOSSessionManager.cs +19 -14
- package/Runtime/iOSUserManager.cs +96 -58
- package/package.json +2 -2
|
@@ -26,31 +26,66 @@
|
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
28
|
using System;
|
|
29
|
-
using UnityEngine;
|
|
30
|
-
using System.Threading.Tasks;
|
|
31
29
|
using System.Collections.Generic;
|
|
32
30
|
using System.Runtime.InteropServices;
|
|
31
|
+
using System.Threading.Tasks;
|
|
32
|
+
using OneSignalSDK.iOS.Notifications.Models;
|
|
33
|
+
using OneSignalSDK.iOS.Utilities;
|
|
33
34
|
using OneSignalSDK.Notifications;
|
|
34
|
-
using OneSignalSDK.Notifications.Models;
|
|
35
35
|
using OneSignalSDK.Notifications.Internal;
|
|
36
|
-
using OneSignalSDK.
|
|
37
|
-
using
|
|
36
|
+
using OneSignalSDK.Notifications.Models;
|
|
37
|
+
using UnityEngine;
|
|
38
38
|
|
|
39
|
-
namespace OneSignalSDK.iOS.Notifications
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
[DllImport("__Internal")]
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
[DllImport("__Internal")]
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
[DllImport("__Internal")]
|
|
39
|
+
namespace OneSignalSDK.iOS.Notifications
|
|
40
|
+
{
|
|
41
|
+
internal sealed class iOSNotificationsManager : INotificationsManager
|
|
42
|
+
{
|
|
43
|
+
[DllImport("__Internal")]
|
|
44
|
+
private static extern bool _oneSignalNotificationsGetPermission();
|
|
45
|
+
|
|
46
|
+
[DllImport("__Internal")]
|
|
47
|
+
private static extern bool _oneSignalNotificationsGetCanRequestPermission();
|
|
48
|
+
|
|
49
|
+
[DllImport("__Internal")]
|
|
50
|
+
private static extern int _oneSignalNotificationsGetPermissionNative();
|
|
51
|
+
|
|
52
|
+
[DllImport("__Internal")]
|
|
53
|
+
private static extern void _oneSignalNotificationsRequestPermission(
|
|
54
|
+
bool fallbackToSettings,
|
|
55
|
+
int hashCode,
|
|
56
|
+
BooleanResponseDelegate callback
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
[DllImport("__Internal")]
|
|
60
|
+
private static extern void _oneSignalNotificationsClearAll();
|
|
61
|
+
|
|
62
|
+
[DllImport("__Internal")]
|
|
63
|
+
private static extern void _oneSignalNotificationsAddPermissionObserver(
|
|
64
|
+
PermissionListenerDelegate callback
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
[DllImport("__Internal")]
|
|
68
|
+
private static extern void _oneSignalNotificationsSetForegroundWillDisplayCallback(
|
|
69
|
+
WillDisplayListenerDelegate callback
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
[DllImport("__Internal")]
|
|
73
|
+
private static extern void _oneSignalNotificationsWillDisplayEventPreventDefault(
|
|
74
|
+
string notificationId
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
[DllImport("__Internal")]
|
|
78
|
+
private static extern void _oneSignalNotificationsSetClickCallback(
|
|
79
|
+
ClickListenerDelegate callback
|
|
80
|
+
);
|
|
50
81
|
|
|
51
82
|
private delegate void PermissionListenerDelegate(bool permission);
|
|
52
83
|
private delegate void WillDisplayListenerDelegate(string notification);
|
|
53
|
-
private delegate void ClickListenerDelegate(
|
|
84
|
+
private delegate void ClickListenerDelegate(
|
|
85
|
+
string notification,
|
|
86
|
+
string resultActionId,
|
|
87
|
+
string resultUrl
|
|
88
|
+
);
|
|
54
89
|
private delegate void BooleanResponseDelegate(int hashCode, bool response);
|
|
55
90
|
|
|
56
91
|
public event EventHandler<NotificationWillDisplayEventArgs> ForegroundWillDisplay;
|
|
@@ -60,11 +95,14 @@ namespace OneSignalSDK.iOS.Notifications {
|
|
|
60
95
|
private bool _clickNativeListenerSet;
|
|
61
96
|
|
|
62
97
|
private EventHandler<NotificationClickEventArgs> _clicked;
|
|
63
|
-
public event EventHandler<NotificationClickEventArgs> Clicked
|
|
64
|
-
|
|
98
|
+
public event EventHandler<NotificationClickEventArgs> Clicked
|
|
99
|
+
{
|
|
100
|
+
add
|
|
101
|
+
{
|
|
65
102
|
_clicked += value;
|
|
66
103
|
|
|
67
|
-
if (!_clickNativeListenerSet)
|
|
104
|
+
if (!_clickNativeListenerSet)
|
|
105
|
+
{
|
|
68
106
|
_clickNativeListenerSet = true;
|
|
69
107
|
_oneSignalNotificationsSetClickCallback(_onClicked);
|
|
70
108
|
}
|
|
@@ -74,42 +112,56 @@ namespace OneSignalSDK.iOS.Notifications {
|
|
|
74
112
|
|
|
75
113
|
private static iOSNotificationsManager _instance;
|
|
76
114
|
|
|
77
|
-
public iOSNotificationsManager()
|
|
115
|
+
public iOSNotificationsManager()
|
|
116
|
+
{
|
|
78
117
|
_instance = this;
|
|
79
118
|
}
|
|
80
119
|
|
|
81
|
-
public bool Permission
|
|
120
|
+
public bool Permission
|
|
121
|
+
{
|
|
82
122
|
get => _oneSignalNotificationsGetPermission();
|
|
83
123
|
}
|
|
84
124
|
|
|
85
|
-
public bool CanRequestPermission
|
|
125
|
+
public bool CanRequestPermission
|
|
126
|
+
{
|
|
86
127
|
get => _oneSignalNotificationsGetCanRequestPermission();
|
|
87
128
|
}
|
|
88
129
|
|
|
89
|
-
public NotificationPermission PermissionNative
|
|
130
|
+
public NotificationPermission PermissionNative
|
|
131
|
+
{
|
|
90
132
|
get => (NotificationPermission)_oneSignalNotificationsGetPermissionNative();
|
|
91
133
|
}
|
|
92
134
|
|
|
93
|
-
public async Task<bool> RequestPermissionAsync(bool fallbackToSettings)
|
|
135
|
+
public async Task<bool> RequestPermissionAsync(bool fallbackToSettings)
|
|
136
|
+
{
|
|
94
137
|
var (proxy, hashCode) = WaitingProxy._setupProxy<bool>();
|
|
95
|
-
_oneSignalNotificationsRequestPermission(
|
|
138
|
+
_oneSignalNotificationsRequestPermission(
|
|
139
|
+
fallbackToSettings,
|
|
140
|
+
hashCode,
|
|
141
|
+
BooleanCallbackProxy
|
|
142
|
+
);
|
|
96
143
|
return await proxy;
|
|
97
144
|
}
|
|
98
145
|
|
|
99
|
-
public void ClearAllNotifications()
|
|
146
|
+
public void ClearAllNotifications()
|
|
147
|
+
{
|
|
100
148
|
_oneSignalNotificationsClearAll();
|
|
101
149
|
}
|
|
102
150
|
|
|
103
|
-
public void Initialize()
|
|
151
|
+
public void Initialize()
|
|
152
|
+
{
|
|
104
153
|
_oneSignalNotificationsAddPermissionObserver(_onPermissionStateChanged);
|
|
105
154
|
_oneSignalNotificationsSetForegroundWillDisplayCallback(_onForegroundWillDisplay);
|
|
106
155
|
}
|
|
107
156
|
|
|
108
157
|
[AOT.MonoPInvokeCallback(typeof(PermissionListenerDelegate))]
|
|
109
|
-
private static void _onPermissionStateChanged(bool permission)
|
|
110
|
-
|
|
158
|
+
private static void _onPermissionStateChanged(bool permission)
|
|
159
|
+
{
|
|
160
|
+
NotificationPermissionChangedEventArgs args =
|
|
161
|
+
new NotificationPermissionChangedEventArgs(permission);
|
|
111
162
|
|
|
112
|
-
EventHandler<NotificationPermissionChangedEventArgs> handler =
|
|
163
|
+
EventHandler<NotificationPermissionChangedEventArgs> handler =
|
|
164
|
+
_instance.PermissionChanged;
|
|
113
165
|
if (handler != null)
|
|
114
166
|
{
|
|
115
167
|
UnityMainThreadDispatch.Post(state => handler(_instance, args));
|
|
@@ -117,13 +169,16 @@ namespace OneSignalSDK.iOS.Notifications {
|
|
|
117
169
|
}
|
|
118
170
|
|
|
119
171
|
[AOT.MonoPInvokeCallback(typeof(WillDisplayListenerDelegate))]
|
|
120
|
-
private static void _onForegroundWillDisplay(string notification)
|
|
172
|
+
private static void _onForegroundWillDisplay(string notification)
|
|
173
|
+
{
|
|
121
174
|
var notif = JsonUtility.FromJson<iOSDisplayableNotification>(notification);
|
|
122
175
|
_fillNotifFromObj(ref notif, Json.Deserialize(notification));
|
|
123
176
|
|
|
124
|
-
InternalNotificationWillDisplayEventArgs args =
|
|
177
|
+
InternalNotificationWillDisplayEventArgs args =
|
|
178
|
+
new InternalNotificationWillDisplayEventArgs(notif);
|
|
125
179
|
|
|
126
|
-
EventHandler<NotificationWillDisplayEventArgs> handler =
|
|
180
|
+
EventHandler<NotificationWillDisplayEventArgs> handler =
|
|
181
|
+
_instance.ForegroundWillDisplay;
|
|
127
182
|
if (handler != null)
|
|
128
183
|
{
|
|
129
184
|
// We use Send instead of Post because we need to *not* return to our caller until the
|
|
@@ -133,16 +188,22 @@ namespace OneSignalSDK.iOS.Notifications {
|
|
|
133
188
|
}
|
|
134
189
|
}
|
|
135
190
|
|
|
136
|
-
public class InternalNotificationWillDisplayEventArgs : NotificationWillDisplayEventArgs
|
|
137
|
-
|
|
191
|
+
public class InternalNotificationWillDisplayEventArgs : NotificationWillDisplayEventArgs
|
|
192
|
+
{
|
|
193
|
+
public InternalNotificationWillDisplayEventArgs(IDisplayableNotification notification)
|
|
194
|
+
: base(notification) { }
|
|
138
195
|
|
|
139
|
-
public override void PreventDefault()
|
|
140
|
-
|
|
196
|
+
public override void PreventDefault()
|
|
197
|
+
{
|
|
198
|
+
_oneSignalNotificationsWillDisplayEventPreventDefault(
|
|
199
|
+
this.Notification.NotificationId
|
|
200
|
+
);
|
|
141
201
|
}
|
|
142
202
|
}
|
|
143
203
|
|
|
144
204
|
[AOT.MonoPInvokeCallback(typeof(ClickListenerDelegate))]
|
|
145
|
-
private static void _onClicked(string notification, string resultActionId, string resultUrl)
|
|
205
|
+
private static void _onClicked(string notification, string resultActionId, string resultUrl)
|
|
206
|
+
{
|
|
146
207
|
var notif = JsonUtility.FromJson<iOSDisplayableNotification>(notification);
|
|
147
208
|
_fillNotifFromObj(ref notif, Json.Deserialize(notification));
|
|
148
209
|
|
|
@@ -153,22 +214,26 @@ namespace OneSignalSDK.iOS.Notifications {
|
|
|
153
214
|
UnityMainThreadDispatch.Post(state => handler(_instance, args));
|
|
154
215
|
}
|
|
155
216
|
|
|
156
|
-
private static void _fillNotifFromObj(ref iOSDisplayableNotification notif, object notifObj)
|
|
157
|
-
|
|
217
|
+
private static void _fillNotifFromObj(ref iOSDisplayableNotification notif, object notifObj)
|
|
218
|
+
{
|
|
219
|
+
if (!(notifObj is Dictionary<string, object> notifDict))
|
|
158
220
|
return;
|
|
159
221
|
|
|
160
222
|
if (notifDict.ContainsKey("additionalData"))
|
|
161
223
|
notif.additionalData = notifDict["additionalData"] as Dictionary<string, object>;
|
|
162
|
-
|
|
224
|
+
|
|
163
225
|
if (notifDict.ContainsKey("attachments"))
|
|
164
226
|
notif.attachments = notifDict["attachments"] as Dictionary<string, object>;
|
|
165
227
|
|
|
166
|
-
if (
|
|
228
|
+
if (
|
|
229
|
+
notifDict.ContainsKey("rawPayload")
|
|
230
|
+
&& notifDict["rawPayload"] is Dictionary<string, object> payloadDict
|
|
231
|
+
)
|
|
167
232
|
notif.rawPayload = Json.Serialize(payloadDict);
|
|
168
233
|
}
|
|
169
234
|
|
|
170
235
|
[AOT.MonoPInvokeCallback(typeof(BooleanResponseDelegate))]
|
|
171
|
-
private static void BooleanCallbackProxy(int hashCode, bool response)
|
|
172
|
-
|
|
236
|
+
private static void BooleanCallbackProxy(int hashCode, bool response) =>
|
|
237
|
+
WaitingProxy.ResolveCallbackProxy(hashCode, response);
|
|
173
238
|
}
|
|
174
|
-
}
|
|
239
|
+
}
|
|
@@ -26,21 +26,35 @@
|
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
28
|
using System;
|
|
29
|
-
using UnityEngine;
|
|
30
29
|
using System.Runtime.InteropServices;
|
|
31
|
-
using OneSignalSDK.
|
|
30
|
+
using OneSignalSDK.Debug.Utilities;
|
|
32
31
|
using OneSignalSDK.User.Internal;
|
|
32
|
+
using OneSignalSDK.User.Models;
|
|
33
|
+
using UnityEngine;
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
namespace OneSignalSDK.iOS.User.Models
|
|
36
|
+
{
|
|
37
|
+
internal sealed class iOSPushSubscription : IPushSubscription
|
|
38
|
+
{
|
|
39
|
+
[DllImport("__Internal")]
|
|
40
|
+
private static extern string _oneSignalPushSubscriptionGetId();
|
|
41
|
+
|
|
42
|
+
[DllImport("__Internal")]
|
|
43
|
+
private static extern string _oneSignalPushSubscriptionGetToken();
|
|
44
|
+
|
|
45
|
+
[DllImport("__Internal")]
|
|
46
|
+
private static extern bool _oneSignalPushSubscriptionGetOptedIn();
|
|
47
|
+
|
|
48
|
+
[DllImport("__Internal")]
|
|
49
|
+
private static extern void _oneSignalPushSubscriptionOptIn();
|
|
50
|
+
|
|
51
|
+
[DllImport("__Internal")]
|
|
52
|
+
private static extern void _oneSignalPushSubscriptionOptOut();
|
|
35
53
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
[DllImport("__Internal")] private static extern bool _oneSignalPushSubscriptionGetOptedIn();
|
|
41
|
-
[DllImport("__Internal")] private static extern void _oneSignalPushSubscriptionOptIn();
|
|
42
|
-
[DllImport("__Internal")] private static extern void _oneSignalPushSubscriptionOptOut();
|
|
43
|
-
[DllImport("__Internal")] private static extern void _oneSignalPushSubscriptionAddStateChangedCallback(StateListenerDelegate callback);
|
|
54
|
+
[DllImport("__Internal")]
|
|
55
|
+
private static extern void _oneSignalPushSubscriptionAddStateChangedCallback(
|
|
56
|
+
StateListenerDelegate callback
|
|
57
|
+
);
|
|
44
58
|
|
|
45
59
|
public delegate void StateListenerDelegate(string current, string previous);
|
|
46
60
|
|
|
@@ -48,34 +62,38 @@ namespace OneSignalSDK.iOS.User.Models {
|
|
|
48
62
|
|
|
49
63
|
private static iOSPushSubscription _instance;
|
|
50
64
|
|
|
51
|
-
public iOSPushSubscription()
|
|
65
|
+
public iOSPushSubscription()
|
|
66
|
+
{
|
|
52
67
|
_instance = this;
|
|
53
68
|
}
|
|
54
69
|
|
|
55
|
-
public string Id
|
|
70
|
+
public string Id
|
|
71
|
+
{
|
|
56
72
|
get => _oneSignalPushSubscriptionGetId();
|
|
57
73
|
}
|
|
58
74
|
|
|
59
|
-
public string Token
|
|
75
|
+
public string Token
|
|
76
|
+
{
|
|
60
77
|
get => _oneSignalPushSubscriptionGetToken();
|
|
61
78
|
}
|
|
62
79
|
|
|
63
|
-
public bool OptedIn
|
|
80
|
+
public bool OptedIn
|
|
81
|
+
{
|
|
64
82
|
get => _oneSignalPushSubscriptionGetOptedIn();
|
|
65
83
|
}
|
|
66
84
|
|
|
67
|
-
public void OptIn()
|
|
68
|
-
=> _oneSignalPushSubscriptionOptIn();
|
|
85
|
+
public void OptIn() => _oneSignalPushSubscriptionOptIn();
|
|
69
86
|
|
|
70
|
-
public void OptOut()
|
|
71
|
-
=> _oneSignalPushSubscriptionOptOut();
|
|
87
|
+
public void OptOut() => _oneSignalPushSubscriptionOptOut();
|
|
72
88
|
|
|
73
|
-
public void Initialize()
|
|
89
|
+
public void Initialize()
|
|
90
|
+
{
|
|
74
91
|
_oneSignalPushSubscriptionAddStateChangedCallback(_onPushSubscriptionStateChanged);
|
|
75
92
|
}
|
|
76
93
|
|
|
77
94
|
[AOT.MonoPInvokeCallback(typeof(StateListenerDelegate))]
|
|
78
|
-
private static void _onPushSubscriptionStateChanged(string current, string previous)
|
|
95
|
+
private static void _onPushSubscriptionStateChanged(string current, string previous)
|
|
96
|
+
{
|
|
79
97
|
var curr = JsonUtility.FromJson<PushSubscriptionState>(current);
|
|
80
98
|
var prev = JsonUtility.FromJson<PushSubscriptionState>(previous);
|
|
81
99
|
|
|
@@ -89,4 +107,4 @@ namespace OneSignalSDK.iOS.User.Models {
|
|
|
89
107
|
}
|
|
90
108
|
}
|
|
91
109
|
}
|
|
92
|
-
}
|
|
110
|
+
}
|
|
@@ -25,23 +25,28 @@
|
|
|
25
25
|
* THE SOFTWARE.
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
|
-
using UnityEngine;
|
|
29
|
-
using OneSignalSDK.Session;
|
|
30
28
|
using System.Runtime.InteropServices;
|
|
29
|
+
using OneSignalSDK.Session;
|
|
30
|
+
using UnityEngine;
|
|
31
|
+
|
|
32
|
+
namespace OneSignalSDK.iOS.Session
|
|
33
|
+
{
|
|
34
|
+
internal sealed class iOSSessionManager : ISessionManager
|
|
35
|
+
{
|
|
36
|
+
[DllImport("__Internal")]
|
|
37
|
+
private static extern void _oneSignalSessionAddOutcome(string name);
|
|
38
|
+
|
|
39
|
+
[DllImport("__Internal")]
|
|
40
|
+
private static extern void _oneSignalSessionAddUniqueOutcome(string name);
|
|
31
41
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
[DllImport("__Internal")] private static extern void _oneSignalSessionAddOutcome(string name);
|
|
35
|
-
[DllImport("__Internal")] private static extern void _oneSignalSessionAddUniqueOutcome(string name);
|
|
36
|
-
[DllImport("__Internal")] private static extern void _oneSignalSessionAddOutcomeWithValue(string name, float value);
|
|
42
|
+
[DllImport("__Internal")]
|
|
43
|
+
private static extern void _oneSignalSessionAddOutcomeWithValue(string name, float value);
|
|
37
44
|
|
|
38
|
-
public void AddOutcome(string name)
|
|
39
|
-
=> _oneSignalSessionAddOutcome(name);
|
|
45
|
+
public void AddOutcome(string name) => _oneSignalSessionAddOutcome(name);
|
|
40
46
|
|
|
41
|
-
public void AddUniqueOutcome(string name)
|
|
42
|
-
=> _oneSignalSessionAddUniqueOutcome(name);
|
|
47
|
+
public void AddUniqueOutcome(string name) => _oneSignalSessionAddUniqueOutcome(name);
|
|
43
48
|
|
|
44
|
-
public void AddOutcomeWithValue(string name, float value)
|
|
45
|
-
|
|
49
|
+
public void AddOutcomeWithValue(string name, float value) =>
|
|
50
|
+
_oneSignalSessionAddOutcomeWithValue(name, value);
|
|
46
51
|
}
|
|
47
|
-
}
|
|
52
|
+
}
|
|
@@ -25,35 +25,71 @@
|
|
|
25
25
|
* THE SOFTWARE.
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
using UnityEngine;
|
|
30
28
|
using System;
|
|
31
29
|
using System.Collections.Generic;
|
|
32
30
|
using System.Runtime.InteropServices;
|
|
31
|
+
using OneSignalSDK.iOS.User.Models;
|
|
33
32
|
using OneSignalSDK.User;
|
|
34
33
|
using OneSignalSDK.User.Internal;
|
|
35
34
|
using OneSignalSDK.User.Models;
|
|
36
|
-
using
|
|
35
|
+
using UnityEngine;
|
|
36
|
+
|
|
37
|
+
namespace OneSignalSDK.iOS.User
|
|
38
|
+
{
|
|
39
|
+
internal sealed class iOSUserManager : IUserManager
|
|
40
|
+
{
|
|
41
|
+
[DllImport("__Internal")]
|
|
42
|
+
private static extern string _oneSignalUserGetOneSignalId();
|
|
43
|
+
|
|
44
|
+
[DllImport("__Internal")]
|
|
45
|
+
private static extern string _oneSignalUserGetExternalId();
|
|
46
|
+
|
|
47
|
+
[DllImport("__Internal")]
|
|
48
|
+
private static extern void _oneSignalUserSetLanguage(string languageCode);
|
|
49
|
+
|
|
50
|
+
[DllImport("__Internal")]
|
|
51
|
+
private static extern void _oneSignalUserAddAlias(string aliasLabel, string aliasId);
|
|
52
|
+
|
|
53
|
+
[DllImport("__Internal")]
|
|
54
|
+
private static extern void _oneSignalUserAddAliases(string aliasesJson);
|
|
55
|
+
|
|
56
|
+
[DllImport("__Internal")]
|
|
57
|
+
private static extern void _oneSignalUserRemoveAlias(string aliasLabel);
|
|
37
58
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
[DllImport("__Internal")]
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
[DllImport("__Internal")]
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
[DllImport("__Internal")]
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
[DllImport("__Internal")]
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
[DllImport("__Internal")]
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
[DllImport("__Internal")]
|
|
59
|
+
[DllImport("__Internal")]
|
|
60
|
+
private static extern void _oneSignalUserRemoveAliases(string aliasesJson);
|
|
61
|
+
|
|
62
|
+
[DllImport("__Internal")]
|
|
63
|
+
private static extern void _oneSignalUserAddEmail(string email);
|
|
64
|
+
|
|
65
|
+
[DllImport("__Internal")]
|
|
66
|
+
private static extern void _oneSignalUserRemoveEmail(string email);
|
|
67
|
+
|
|
68
|
+
[DllImport("__Internal")]
|
|
69
|
+
private static extern void _oneSignalUserAddSms(string smsNumber);
|
|
70
|
+
|
|
71
|
+
[DllImport("__Internal")]
|
|
72
|
+
private static extern void _oneSignalUserRemoveSms(string smsNumber);
|
|
73
|
+
|
|
74
|
+
[DllImport("__Internal")]
|
|
75
|
+
private static extern string _oneSignalUserGetTags();
|
|
76
|
+
|
|
77
|
+
[DllImport("__Internal")]
|
|
78
|
+
private static extern void _oneSignalUserAddTag(string key, string value);
|
|
79
|
+
|
|
80
|
+
[DllImport("__Internal")]
|
|
81
|
+
private static extern void _oneSignalUserAddTags(string tagsJson);
|
|
82
|
+
|
|
83
|
+
[DllImport("__Internal")]
|
|
84
|
+
private static extern void _oneSignalUserRemoveTag(string key);
|
|
85
|
+
|
|
86
|
+
[DllImport("__Internal")]
|
|
87
|
+
private static extern void _oneSignalUserRemoveTags(string tagsJson);
|
|
88
|
+
|
|
89
|
+
[DllImport("__Internal")]
|
|
90
|
+
private static extern void _oneSignalUserAddStateChangedCallback(
|
|
91
|
+
UserStateListenerDelegate callback
|
|
92
|
+
);
|
|
57
93
|
|
|
58
94
|
public delegate void UserStateListenerDelegate(string current);
|
|
59
95
|
|
|
@@ -62,78 +98,80 @@ namespace OneSignalSDK.iOS.User {
|
|
|
62
98
|
private iOSPushSubscription _pushSubscription;
|
|
63
99
|
|
|
64
100
|
private static iOSUserManager _instance;
|
|
65
|
-
|
|
66
|
-
public iOSUserManager()
|
|
101
|
+
|
|
102
|
+
public iOSUserManager()
|
|
103
|
+
{
|
|
67
104
|
_instance = this;
|
|
68
105
|
_pushSubscription = new iOSPushSubscription();
|
|
69
106
|
}
|
|
70
107
|
|
|
71
|
-
public string OneSignalId
|
|
108
|
+
public string OneSignalId
|
|
109
|
+
{
|
|
72
110
|
get => _oneSignalUserGetOneSignalId();
|
|
73
111
|
}
|
|
74
112
|
|
|
75
|
-
public string ExternalId
|
|
113
|
+
public string ExternalId
|
|
114
|
+
{
|
|
76
115
|
get => _oneSignalUserGetExternalId();
|
|
77
116
|
}
|
|
78
117
|
|
|
79
|
-
public IPushSubscription PushSubscription
|
|
118
|
+
public IPushSubscription PushSubscription
|
|
119
|
+
{
|
|
80
120
|
get => _pushSubscription;
|
|
81
121
|
}
|
|
82
122
|
|
|
83
|
-
public string Language
|
|
123
|
+
public string Language
|
|
124
|
+
{
|
|
84
125
|
set => _oneSignalUserSetLanguage(value);
|
|
85
126
|
}
|
|
86
127
|
|
|
87
|
-
public Dictionary<string, string> GetTags()
|
|
88
|
-
|
|
128
|
+
public Dictionary<string, string> GetTags()
|
|
129
|
+
{
|
|
130
|
+
Dictionary<string, object> raw =
|
|
131
|
+
(Dictionary<string, object>)Json.Deserialize(_oneSignalUserGetTags());
|
|
89
132
|
Dictionary<string, string> dict = new Dictionary<string, string>();
|
|
90
|
-
foreach (KeyValuePair<string, object> kvp in raw)
|
|
133
|
+
foreach (KeyValuePair<string, object> kvp in raw)
|
|
134
|
+
dict.Add(kvp.Key, kvp.Value.ToString());
|
|
91
135
|
return dict;
|
|
92
136
|
}
|
|
93
137
|
|
|
94
|
-
public void AddTag(string key, string value)
|
|
95
|
-
=>_oneSignalUserAddTag(key, value);
|
|
138
|
+
public void AddTag(string key, string value) => _oneSignalUserAddTag(key, value);
|
|
96
139
|
|
|
97
|
-
public void AddTags(Dictionary<string, string> tags)
|
|
98
|
-
|
|
140
|
+
public void AddTags(Dictionary<string, string> tags) =>
|
|
141
|
+
_oneSignalUserAddTags(Json.Serialize(tags));
|
|
99
142
|
|
|
100
|
-
public void RemoveTag(string key)
|
|
101
|
-
=> _oneSignalUserRemoveTag(key);
|
|
143
|
+
public void RemoveTag(string key) => _oneSignalUserRemoveTag(key);
|
|
102
144
|
|
|
103
|
-
public void RemoveTags(params string[] keys)
|
|
104
|
-
|
|
145
|
+
public void RemoveTags(params string[] keys) =>
|
|
146
|
+
_oneSignalUserRemoveTags(Json.Serialize(keys));
|
|
105
147
|
|
|
106
|
-
public void AddAlias(string label, string id)
|
|
107
|
-
=> _oneSignalUserAddAlias(label, id);
|
|
148
|
+
public void AddAlias(string label, string id) => _oneSignalUserAddAlias(label, id);
|
|
108
149
|
|
|
109
|
-
public void AddAliases(Dictionary<string, string> aliases)
|
|
110
|
-
|
|
150
|
+
public void AddAliases(Dictionary<string, string> aliases) =>
|
|
151
|
+
_oneSignalUserAddAliases(Json.Serialize(aliases));
|
|
111
152
|
|
|
112
|
-
public void RemoveAlias(string label)
|
|
113
|
-
=> _oneSignalUserRemoveAlias(label);
|
|
153
|
+
public void RemoveAlias(string label) => _oneSignalUserRemoveAlias(label);
|
|
114
154
|
|
|
115
|
-
public void RemoveAliases(params string[] labels)
|
|
116
|
-
|
|
155
|
+
public void RemoveAliases(params string[] labels) =>
|
|
156
|
+
_oneSignalUserRemoveAliases(Json.Serialize(labels));
|
|
117
157
|
|
|
118
|
-
public void AddEmail(string email)
|
|
119
|
-
=> _oneSignalUserAddEmail(email);
|
|
158
|
+
public void AddEmail(string email) => _oneSignalUserAddEmail(email);
|
|
120
159
|
|
|
121
|
-
public void RemoveEmail(string email)
|
|
122
|
-
=> _oneSignalUserRemoveEmail(email);
|
|
160
|
+
public void RemoveEmail(string email) => _oneSignalUserRemoveEmail(email);
|
|
123
161
|
|
|
124
|
-
public void AddSms(string sms)
|
|
125
|
-
=> _oneSignalUserAddSms(sms);
|
|
162
|
+
public void AddSms(string sms) => _oneSignalUserAddSms(sms);
|
|
126
163
|
|
|
127
|
-
public void RemoveSms(string sms)
|
|
128
|
-
=> _oneSignalUserRemoveSms(sms);
|
|
164
|
+
public void RemoveSms(string sms) => _oneSignalUserRemoveSms(sms);
|
|
129
165
|
|
|
130
|
-
public void Initialize()
|
|
166
|
+
public void Initialize()
|
|
167
|
+
{
|
|
131
168
|
_pushSubscription.Initialize();
|
|
132
169
|
_oneSignalUserAddStateChangedCallback(_onUserStateChanged);
|
|
133
170
|
}
|
|
134
171
|
|
|
135
172
|
[AOT.MonoPInvokeCallback(typeof(UserStateListenerDelegate))]
|
|
136
|
-
private static void _onUserStateChanged(string current)
|
|
173
|
+
private static void _onUserStateChanged(string current)
|
|
174
|
+
{
|
|
137
175
|
var curr = JsonUtility.FromJson<UserState>(current);
|
|
138
176
|
|
|
139
177
|
UserChangedState userChangedState = new UserChangedState(curr);
|
|
@@ -146,4 +184,4 @@ namespace OneSignalSDK.iOS.User {
|
|
|
146
184
|
}
|
|
147
185
|
}
|
|
148
186
|
}
|
|
149
|
-
}
|
|
187
|
+
}
|
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.1.
|
|
4
|
+
"version": "5.1.16",
|
|
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.1.
|
|
8
|
+
"com.onesignal.unity.core": "5.1.16"
|
|
9
9
|
},
|
|
10
10
|
"keywords": [
|
|
11
11
|
"push-notifications",
|