com.onesignal.unity.ios 5.0.5 → 5.1.0
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/OneSignaliOSDependencies.xml +1 -1
- package/Runtime/OneSignaliOS.cs +12 -12
- package/Runtime/Plugins/iOS/OneSignalBridgeUtil.h +3 -3
- package/Runtime/Plugins/iOS/OneSignalBridgeUtil.mm +6 -6
- package/Runtime/Plugins/iOS/OneSignalUnityBridge.mm +6 -6
- package/Runtime/Plugins/iOS/OneSignalUnityBridgeDebug.mm +2 -2
- package/Runtime/Plugins/iOS/OneSignalUnityBridgeInAppMessages.mm +16 -16
- package/Runtime/Plugins/iOS/OneSignalUnityBridgeLiveActivities.mm +2 -2
- package/Runtime/Plugins/iOS/OneSignalUnityBridgeLocation.mm +3 -3
- package/Runtime/Plugins/iOS/OneSignalUnityBridgeNotifications.mm +10 -10
- package/Runtime/Plugins/iOS/OneSignalUnityBridgeSession.mm +3 -3
- package/Runtime/Plugins/iOS/OneSignalUnityBridgeUser.mm +94 -26
- package/Runtime/Plugins/iOS/UIApplication+OneSignalUnity.mm +6 -7
- package/Runtime/iOSDebugManager.cs +4 -4
- package/Runtime/iOSDisplayableNotification.cs +2 -2
- package/Runtime/iOSInAppMessagesManager.cs +25 -25
- package/Runtime/iOSLiveActivitiesManager.cs +4 -4
- package/Runtime/iOSLocationManager.cs +6 -6
- package/Runtime/iOSNotificationsManager.cs +18 -18
- package/Runtime/iOSPushSubscription.cs +12 -12
- package/Runtime/iOSSessionManager.cs +6 -6
- package/Runtime/iOSUserManager.cs +69 -26
- package/package.json +2 -2
package/Runtime/OneSignaliOS.cs
CHANGED
|
@@ -48,12 +48,12 @@ using OneSignalSDK.iOS.LiveActivities;
|
|
|
48
48
|
|
|
49
49
|
namespace OneSignalSDK.iOS {
|
|
50
50
|
public sealed partial class OneSignaliOS : OneSignalPlatform {
|
|
51
|
-
[DllImport("__Internal")] private static extern void
|
|
52
|
-
[DllImport("__Internal")] private static extern void
|
|
53
|
-
[DllImport("__Internal")] private static extern void
|
|
54
|
-
[DllImport("__Internal")] private static extern void
|
|
55
|
-
[DllImport("__Internal")] private static extern void
|
|
56
|
-
[DllImport("__Internal")] private static extern void
|
|
51
|
+
[DllImport("__Internal")] private static extern void _oneSignalSetConsentGiven(bool consent);
|
|
52
|
+
[DllImport("__Internal")] private static extern void _oneSignalSetConsentRequired(bool required);
|
|
53
|
+
[DllImport("__Internal")] private static extern void _oneSignalInitialize(string appId);
|
|
54
|
+
[DllImport("__Internal")] private static extern void _oneSignalLogin(string externalId);
|
|
55
|
+
[DllImport("__Internal")] private static extern void _oneSignalLoginWithJwtBearerToken(string externalId, string jwtBearerToken);
|
|
56
|
+
[DllImport("__Internal")] private static extern void _oneSignalLogout();
|
|
57
57
|
|
|
58
58
|
private iOSUserManager _user;
|
|
59
59
|
private iOSSessionManager _session;
|
|
@@ -105,15 +105,15 @@ namespace OneSignalSDK.iOS {
|
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
public override bool ConsentGiven {
|
|
108
|
-
set =>
|
|
108
|
+
set => _oneSignalSetConsentGiven(value);
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
public override bool ConsentRequired {
|
|
112
|
-
set =>
|
|
112
|
+
set => _oneSignalSetConsentRequired(value);
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
public override void Initialize(string appId) {
|
|
116
|
-
|
|
116
|
+
_oneSignalInitialize(appId);
|
|
117
117
|
|
|
118
118
|
if (_inAppMessages == null) {
|
|
119
119
|
_inAppMessages = new iOSInAppMessagesManager();
|
|
@@ -147,14 +147,14 @@ namespace OneSignalSDK.iOS {
|
|
|
147
147
|
|
|
148
148
|
public override void Login(string externalId, string jwtBearerToken = null) {
|
|
149
149
|
if (jwtBearerToken == null) {
|
|
150
|
-
|
|
150
|
+
_oneSignalLogin(externalId);
|
|
151
151
|
} else {
|
|
152
|
-
|
|
152
|
+
_oneSignalLoginWithJwtBearerToken(externalId, jwtBearerToken);
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
155
|
|
|
156
156
|
public override void Logout() {
|
|
157
|
-
|
|
157
|
+
_oneSignalLogout();
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
}
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
|
|
30
30
|
@interface OneSignalBridgeUtil : NSObject
|
|
31
31
|
|
|
32
|
-
const char*
|
|
33
|
-
NSDictionary*
|
|
34
|
-
NSArray*
|
|
32
|
+
const char* oneSignalJsonStringFromDictionary(NSDictionary *dictionary);
|
|
33
|
+
NSDictionary* oneSignalDictionaryFromJsonString(const char* jsonString);
|
|
34
|
+
NSArray* oneSignalArrayFromJsonString(const char* jsonString);
|
|
35
35
|
|
|
36
36
|
@end
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
|
|
30
30
|
@implementation OneSignalBridgeUtil
|
|
31
31
|
|
|
32
|
-
const char*
|
|
32
|
+
const char* oneSignalJsonStringFromDictionary(NSDictionary *dictionary) {
|
|
33
33
|
NSError *error;
|
|
34
34
|
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary options:0 error:&error];
|
|
35
35
|
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
|
|
@@ -37,7 +37,7 @@ const char* jsonStringFromDictionary(NSDictionary *dictionary) {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
template <typename TObj>
|
|
40
|
-
TObj
|
|
40
|
+
TObj oneSignalObjFromJsonString(const char* jsonString) {
|
|
41
41
|
NSData* jsonData = [[NSString stringWithUTF8String:jsonString] dataUsingEncoding:NSUTF8StringEncoding];
|
|
42
42
|
NSError* error = nil;
|
|
43
43
|
TObj arr = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
|
|
@@ -48,12 +48,12 @@ TObj objFromJsonString(const char* jsonString) {
|
|
|
48
48
|
return arr;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
NSDictionary*
|
|
52
|
-
return
|
|
51
|
+
NSDictionary* oneSignalDictionaryFromJsonString(const char* jsonString) {
|
|
52
|
+
return oneSignalObjFromJsonString<NSDictionary*>(jsonString);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
NSArray*
|
|
56
|
-
return
|
|
55
|
+
NSArray* oneSignalArrayFromJsonString(const char* jsonString) {
|
|
56
|
+
return oneSignalObjFromJsonString<NSArray*>(jsonString);
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
@end
|
|
@@ -41,27 +41,27 @@
|
|
|
41
41
|
*/
|
|
42
42
|
|
|
43
43
|
extern "C" {
|
|
44
|
-
void
|
|
44
|
+
void _oneSignalInitialize(const char* appId) {
|
|
45
45
|
[OneSignal initialize:TO_NSSTRING(appId) withLaunchOptions:nil];
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
void
|
|
48
|
+
void _oneSignalLogin(const char* externalId) {
|
|
49
49
|
[OneSignal login:TO_NSSTRING(externalId)];
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
void
|
|
52
|
+
void _oneSignalLoginWithJwtBearerToken(const char* externalId, const char* token) {
|
|
53
53
|
[OneSignal login:TO_NSSTRING(externalId) withToken:TO_NSSTRING(token)];
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
void
|
|
56
|
+
void _oneSignalLogout() {
|
|
57
57
|
[OneSignal logout];
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
void
|
|
60
|
+
void _oneSignalSetConsentGiven(bool consent) {
|
|
61
61
|
[OneSignal setConsentGiven:consent];
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
void
|
|
64
|
+
void _oneSignalSetConsentRequired(bool required) {
|
|
65
65
|
[OneSignal setConsentRequired:required];
|
|
66
66
|
}
|
|
67
67
|
}
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
#import <OneSignalFramework/OneSignalFramework.h>
|
|
31
31
|
|
|
32
32
|
extern "C" {
|
|
33
|
-
void
|
|
33
|
+
void _oneSignalDebugSetLogLevel(int logLevel) {
|
|
34
34
|
[OneSignal.Debug setLogLevel:(ONE_S_LOG_LEVEL) logLevel];
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
void
|
|
37
|
+
void _oneSignalDebugSetAlertLevel(int alertLevel) {
|
|
38
38
|
[OneSignal.Debug setAlertLevel:(ONE_S_LOG_LEVEL) alertLevel];
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -97,8 +97,8 @@ typedef void (*ClickListenerDelegate)(const char* message, const char* result, i
|
|
|
97
97
|
|
|
98
98
|
- (void)onClickInAppMessage:(OSInAppMessageClickEvent * _Nonnull)event {
|
|
99
99
|
if (_clickDelegate != nil) {
|
|
100
|
-
auto message =
|
|
101
|
-
auto result =
|
|
100
|
+
auto message = oneSignalJsonStringFromDictionary([[event message] jsonRepresentation]);
|
|
101
|
+
auto result = oneSignalJsonStringFromDictionary([[event result] jsonRepresentation]);
|
|
102
102
|
_clickDelegate(message, result, event.result.urlTarget);
|
|
103
103
|
}
|
|
104
104
|
}
|
|
@@ -110,55 +110,55 @@ typedef void (*ClickListenerDelegate)(const char* message, const char* result, i
|
|
|
110
110
|
*/
|
|
111
111
|
|
|
112
112
|
extern "C" {
|
|
113
|
-
void
|
|
113
|
+
void _oneSignalInAppMessagesSetWillDisplayCallback(StringListenerDelegate callback) {
|
|
114
114
|
[[OneSignalInAppMessagesObserver sharedInAppMessagesObserver] setWillDisplayDelegate:callback];
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
void
|
|
117
|
+
void _oneSignalInAppMessagesSetDidDisplayCallback(StringListenerDelegate callback) {
|
|
118
118
|
[[OneSignalInAppMessagesObserver sharedInAppMessagesObserver] setDidDisplayDelegate:callback];
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
void
|
|
121
|
+
void _oneSignalInAppMessagesSetWillDismissCallback(StringListenerDelegate callback) {
|
|
122
122
|
[[OneSignalInAppMessagesObserver sharedInAppMessagesObserver] setWillDismissDelegate:callback];
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
-
void
|
|
125
|
+
void _oneSignalInAppMessagesSetDidDismissCallback(StringListenerDelegate callback) {
|
|
126
126
|
[[OneSignalInAppMessagesObserver sharedInAppMessagesObserver] setDidDismissDelegate:callback];
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
void
|
|
129
|
+
void _oneSignalInAppMessagesSetClickCallback(ClickListenerDelegate callback) {
|
|
130
130
|
[[OneSignalInAppMessagesObserver sharedInAppMessagesObserver] setClickDelegate:callback];
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
void
|
|
133
|
+
void _oneSignalInAppMessagesSetPaused(bool paused) {
|
|
134
134
|
[OneSignal.InAppMessages paused:paused];
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
bool
|
|
137
|
+
bool _oneSignalInAppMessagesGetPaused() {
|
|
138
138
|
return [OneSignal.InAppMessages paused];
|
|
139
139
|
}
|
|
140
140
|
|
|
141
|
-
void
|
|
141
|
+
void _oneSignalInAppMessagesAddTrigger(const char* key, const char* value) {
|
|
142
142
|
[OneSignal.InAppMessages addTrigger:TO_NSSTRING(key) withValue:TO_NSSTRING(value)];
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
-
void
|
|
146
|
-
NSDictionary *triggers =
|
|
145
|
+
void _oneSignalInAppMessagesAddTriggers(const char* triggersJson) {
|
|
146
|
+
NSDictionary *triggers = oneSignalDictionaryFromJsonString(triggersJson);
|
|
147
147
|
|
|
148
148
|
[OneSignal.InAppMessages addTriggers:triggers];
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
-
void
|
|
151
|
+
void _oneSignalInAppMessagesRemoveTrigger(const char* key) {
|
|
152
152
|
[OneSignal.InAppMessages removeTrigger:TO_NSSTRING(key)];
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
void
|
|
156
|
-
NSArray *triggers =
|
|
155
|
+
void _oneSignalInAppMessagesRemoveTriggers(const char* triggersJson) {
|
|
156
|
+
NSArray *triggers = oneSignalArrayFromJsonString(triggersJson);
|
|
157
157
|
|
|
158
158
|
[OneSignal.InAppMessages removeTriggers:triggers];
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
-
void
|
|
161
|
+
void _oneSignalInAppMessagesClearTriggers() {
|
|
162
162
|
[OneSignal.InAppMessages clearTriggers];
|
|
163
163
|
}
|
|
164
164
|
}
|
|
@@ -43,14 +43,14 @@ typedef void (*BooleanResponseDelegate)(int hashCode, bool response);
|
|
|
43
43
|
*/
|
|
44
44
|
|
|
45
45
|
extern "C" {
|
|
46
|
-
void
|
|
46
|
+
void _oneSignalEnterLiveActivity(const char* activityId, const char* token, int hashCode, BooleanResponseDelegate callback) {
|
|
47
47
|
[OneSignal.LiveActivities enter:TO_NSSTRING(activityId)
|
|
48
48
|
withToken:TO_NSSTRING(token)
|
|
49
49
|
withSuccess:^(NSDictionary *result) { CALLBACK(YES); }
|
|
50
50
|
withFailure:^(NSError *error) { CALLBACK(NO); }];
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
void
|
|
53
|
+
void _oneSignalExitLiveActivity(const char* activityId, int hashCode, BooleanResponseDelegate callback) {
|
|
54
54
|
[OneSignal.LiveActivities exit:TO_NSSTRING(activityId)
|
|
55
55
|
withSuccess:^(NSDictionary *result) { CALLBACK(YES); }
|
|
56
56
|
withFailure:^(NSError *error) { CALLBACK(NO); }];
|
|
@@ -30,15 +30,15 @@
|
|
|
30
30
|
#import <OneSignalFramework/OneSignalFramework.h>
|
|
31
31
|
|
|
32
32
|
extern "C" {
|
|
33
|
-
bool
|
|
33
|
+
bool _oneSignalLocationGetIsShared() {
|
|
34
34
|
return [OneSignal.Location isShared];
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
void
|
|
37
|
+
void _oneSignalLocationSetIsShared(bool shared) {
|
|
38
38
|
[OneSignal.Location setShared:shared];
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
void
|
|
41
|
+
void _oneSignalLocationRequestPermission() {
|
|
42
42
|
[OneSignal.Location requestPermission];
|
|
43
43
|
}
|
|
44
44
|
}
|
|
@@ -118,47 +118,47 @@ typedef void (*ClickListenerDelegate)(const char* notification, const char* resu
|
|
|
118
118
|
*/
|
|
119
119
|
|
|
120
120
|
extern "C" {
|
|
121
|
-
bool
|
|
121
|
+
bool _oneSignalNotificationsGetPermission() {
|
|
122
122
|
return [OneSignal.Notifications permission];
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
-
bool
|
|
125
|
+
bool _oneSignalNotificationsGetCanRequestPermission() {
|
|
126
126
|
return [OneSignal.Notifications canRequestPermission];
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
int
|
|
129
|
+
int _oneSignalNotificationsGetPermissionNative() {
|
|
130
130
|
return [OneSignal.Notifications permissionNative];
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
void
|
|
133
|
+
void _oneSignalNotificationsClearAll() {
|
|
134
134
|
[OneSignal.Notifications clearAll];
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
void
|
|
137
|
+
void _oneSignalNotificationsRequestPermission(bool fallbackToSettings, int hashCode, BooleanResponseDelegate callback) {
|
|
138
138
|
[OneSignal.Notifications requestPermission:^(BOOL accepted) {
|
|
139
139
|
CALLBACK(accepted);
|
|
140
140
|
} fallbackToSettings:fallbackToSettings];
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
void
|
|
143
|
+
void _oneSignalNotificationsAddPermissionObserver(PermissionListenerDelegate callback) {
|
|
144
144
|
[[OneSignalNotificationsObserver sharedNotificationsObserver] setPermissionDelegate:callback];
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
void
|
|
147
|
+
void _oneSignalNotificationsSetForegroundWillDisplayCallback(WillDisplayListenerDelegate callback) {
|
|
148
148
|
[[OneSignalNotificationsObserver sharedNotificationsObserver] setWillDisplayDelegate:callback];
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
-
void
|
|
151
|
+
void _oneSignalNotificationsWillDisplayEventPreventDefault(const char* notifcationId) {
|
|
152
152
|
NSString *key = [NSString stringWithUTF8String:notifcationId];
|
|
153
153
|
[[OneSignalNotificationsObserver sharedNotificationsObserver] notificationsWillDisplayEventPreventDefault:key];
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
-
void
|
|
156
|
+
void _oneSignalNotificationsDisplay(const char* notifcationId) {
|
|
157
157
|
NSString *key = [NSString stringWithUTF8String:notifcationId];
|
|
158
158
|
[[OneSignalNotificationsObserver sharedNotificationsObserver] notificationsDisplay:key];
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
-
void
|
|
161
|
+
void _oneSignalNotificationsSetClickCallback(ClickListenerDelegate callback) {
|
|
162
162
|
[[OneSignalNotificationsObserver sharedNotificationsObserver] setClickDelegate:callback];
|
|
163
163
|
|
|
164
164
|
[OneSignal.Notifications addClickListener:[OneSignalNotificationsObserver sharedNotificationsObserver]];
|
|
@@ -40,15 +40,15 @@
|
|
|
40
40
|
*/
|
|
41
41
|
|
|
42
42
|
extern "C" {
|
|
43
|
-
void
|
|
43
|
+
void _oneSignalSessionAddOutcome(const char* name) {
|
|
44
44
|
[OneSignal.Session addOutcome:TO_NSSTRING(name)];
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
void
|
|
47
|
+
void _oneSignalSessionAddUniqueOutcome(const char* name) {
|
|
48
48
|
[OneSignal.Session addUniqueOutcome:TO_NSSTRING(name)];
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
void
|
|
51
|
+
void _oneSignalSessionAddOutcomeWithValue(const char* name, float value) {
|
|
52
52
|
[OneSignal.Session addOutcomeWithValue:TO_NSSTRING(name)
|
|
53
53
|
value:@(value)];
|
|
54
54
|
}
|
|
@@ -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
|
|
@@ -70,41 +71,80 @@ typedef void (*StateListenerDelegate)(const char* current, const char* previous)
|
|
|
70
71
|
|
|
71
72
|
- (void)onPushSubscriptionDidChangeWithState:(OSPushSubscriptionChangedState*)state {
|
|
72
73
|
if (_pushSubscriptionDelegate != nil) {
|
|
73
|
-
auto curr =
|
|
74
|
-
auto prev =
|
|
74
|
+
auto curr = oneSignalJsonStringFromDictionary([[state current] jsonRepresentation]);
|
|
75
|
+
auto prev = oneSignalJsonStringFromDictionary([[state previous] jsonRepresentation]);
|
|
75
76
|
_pushSubscriptionDelegate(curr, prev);
|
|
76
77
|
}
|
|
77
78
|
}
|
|
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
|
|
84
124
|
*/
|
|
85
125
|
|
|
86
126
|
extern "C" {
|
|
87
|
-
void
|
|
127
|
+
void _oneSignalUserSetLanguage(const char* languageCode) {
|
|
88
128
|
[OneSignal.User setLanguage:TO_NSSTRING(languageCode)];
|
|
89
129
|
}
|
|
90
130
|
|
|
91
|
-
void
|
|
131
|
+
void _oneSignalUserAddAlias(const char* aliasLabel, const char* aliasId) {
|
|
92
132
|
[OneSignal.User addAliasWithLabel:TO_NSSTRING(aliasLabel)
|
|
93
133
|
id:TO_NSSTRING(aliasId)];
|
|
94
134
|
}
|
|
95
135
|
|
|
96
|
-
void
|
|
97
|
-
NSDictionary *aliases =
|
|
136
|
+
void _oneSignalUserAddAliases(const char* aliasesJson) {
|
|
137
|
+
NSDictionary *aliases = oneSignalDictionaryFromJsonString(aliasesJson);
|
|
98
138
|
|
|
99
139
|
[OneSignal.User addAliases:aliases];
|
|
100
140
|
}
|
|
101
141
|
|
|
102
|
-
void
|
|
142
|
+
void _oneSignalUserRemoveAlias(const char* aliasLabel) {
|
|
103
143
|
[OneSignal.User removeAlias:TO_NSSTRING(aliasLabel)];
|
|
104
144
|
}
|
|
105
145
|
|
|
106
|
-
void
|
|
107
|
-
NSArray *aliases =
|
|
146
|
+
void _oneSignalUserRemoveAliases(const char* aliasesJson) {
|
|
147
|
+
NSArray *aliases = oneSignalArrayFromJsonString(aliasesJson);
|
|
108
148
|
|
|
109
149
|
if (aliases == nil) {
|
|
110
150
|
NSLog(@"[Onesignal] Could not parse aliases to delete");
|
|
@@ -114,39 +154,43 @@ extern "C" {
|
|
|
114
154
|
[OneSignal.User removeAliases:aliases];
|
|
115
155
|
}
|
|
116
156
|
|
|
117
|
-
void
|
|
157
|
+
void _oneSignalUserAddEmail(const char* email) {
|
|
118
158
|
[OneSignal.User addEmail:TO_NSSTRING(email)];
|
|
119
159
|
}
|
|
120
160
|
|
|
121
|
-
void
|
|
161
|
+
void _oneSignalUserRemoveEmail(const char* email) {
|
|
122
162
|
[OneSignal.User removeEmail:TO_NSSTRING(email)];
|
|
123
163
|
}
|
|
124
164
|
|
|
125
|
-
void
|
|
165
|
+
void _oneSignalUserAddSms(const char* smsNumber) {
|
|
126
166
|
[OneSignal.User addSms:TO_NSSTRING(smsNumber)];
|
|
127
167
|
}
|
|
128
168
|
|
|
129
|
-
void
|
|
169
|
+
void _oneSignalUserRemoveSms(const char* smsNumber) {
|
|
130
170
|
[OneSignal.User removeSms:TO_NSSTRING(smsNumber)];
|
|
131
171
|
}
|
|
132
172
|
|
|
133
|
-
|
|
173
|
+
const char* _oneSignalUserGetTags() {
|
|
174
|
+
return strdup(oneSignalJsonStringFromDictionary([OneSignal.User getTags]));
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
void _oneSignalUserAddTag(const char* key, const char* value) {
|
|
134
178
|
[OneSignal.User addTagWithKey:TO_NSSTRING(key)
|
|
135
179
|
value:TO_NSSTRING(value)];
|
|
136
180
|
}
|
|
137
181
|
|
|
138
|
-
void
|
|
139
|
-
NSDictionary *tags =
|
|
182
|
+
void _oneSignalUserAddTags(const char* tagsJson) {
|
|
183
|
+
NSDictionary *tags = oneSignalDictionaryFromJsonString(tagsJson);
|
|
140
184
|
|
|
141
185
|
[OneSignal.User addTags:tags];
|
|
142
186
|
}
|
|
143
187
|
|
|
144
|
-
void
|
|
188
|
+
void _oneSignalUserRemoveTag(const char* key) {
|
|
145
189
|
[OneSignal.User removeTag:TO_NSSTRING(key)];
|
|
146
190
|
}
|
|
147
191
|
|
|
148
|
-
void
|
|
149
|
-
NSArray *tags =
|
|
192
|
+
void _oneSignalUserRemoveTags(const char* tagsJson) {
|
|
193
|
+
NSArray *tags = oneSignalArrayFromJsonString(tagsJson);
|
|
150
194
|
|
|
151
195
|
if (tags == nil) {
|
|
152
196
|
NSLog(@"[Onesignal] Could not parse tags to delete");
|
|
@@ -156,27 +200,51 @@ extern "C" {
|
|
|
156
200
|
[OneSignal.User removeTags:tags];
|
|
157
201
|
}
|
|
158
202
|
|
|
159
|
-
const char*
|
|
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
|
+
|
|
217
|
+
const char* _oneSignalPushSubscriptionGetId() {
|
|
218
|
+
if (OneSignal.User.pushSubscription.id == NULL) {
|
|
219
|
+
return NULL;
|
|
220
|
+
}
|
|
160
221
|
return strdup([OneSignal.User.pushSubscription.id UTF8String]);
|
|
161
222
|
}
|
|
162
223
|
|
|
163
|
-
const char*
|
|
224
|
+
const char* _oneSignalPushSubscriptionGetToken() {
|
|
225
|
+
if (OneSignal.User.pushSubscription.token == NULL) {
|
|
226
|
+
return NULL;
|
|
227
|
+
}
|
|
164
228
|
return strdup([OneSignal.User.pushSubscription.token UTF8String]);
|
|
165
229
|
}
|
|
166
230
|
|
|
167
|
-
bool
|
|
231
|
+
bool _oneSignalPushSubscriptionGetOptedIn() {
|
|
168
232
|
return OneSignal.User.pushSubscription.optedIn;
|
|
169
233
|
}
|
|
170
234
|
|
|
171
|
-
void
|
|
235
|
+
void _oneSignalPushSubscriptionOptIn() {
|
|
172
236
|
[OneSignal.User.pushSubscription optIn];
|
|
173
237
|
}
|
|
174
238
|
|
|
175
|
-
void
|
|
239
|
+
void _oneSignalPushSubscriptionOptOut() {
|
|
176
240
|
[OneSignal.User.pushSubscription optOut];
|
|
177
241
|
}
|
|
178
242
|
|
|
179
|
-
void
|
|
243
|
+
void _oneSignalPushSubscriptionAddStateChangedCallback(StateListenerDelegate callback) {
|
|
180
244
|
[[OneSignalUserObserver sharedUserObserver] setPushSubscriptionDelegate:callback];
|
|
181
245
|
}
|
|
182
|
-
|
|
246
|
+
|
|
247
|
+
void _oneSignalUserAddStateChangedCallback(UserStateListenerDelegate callback) {
|
|
248
|
+
[[OneSignalUserStateObserver sharedUserObserver] setUserStateDelegate:callback];
|
|
249
|
+
}
|
|
250
|
+
}
|
|
@@ -31,12 +31,11 @@
|
|
|
31
31
|
#import "UIApplication+OneSignalUnity.h"
|
|
32
32
|
#import <objc/runtime.h>
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
static Class getClassWithProtocolInHierarchy(Class searchClass, Protocol *protocolToFind) {
|
|
34
|
+
static Class oneSignalGetClassWithProtocolInHierarchy(Class searchClass, Protocol *protocolToFind) {
|
|
36
35
|
if (!class_conformsToProtocol(searchClass, protocolToFind)) {
|
|
37
36
|
if ([searchClass superclass] == [NSObject class])
|
|
38
37
|
return nil;
|
|
39
|
-
Class foundClass =
|
|
38
|
+
Class foundClass = oneSignalGetClassWithProtocolInHierarchy([searchClass superclass], protocolToFind);
|
|
40
39
|
if (foundClass)
|
|
41
40
|
return foundClass;
|
|
42
41
|
return searchClass;
|
|
@@ -45,7 +44,7 @@ static Class getClassWithProtocolInHierarchy(Class searchClass, Protocol *protoc
|
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
// from OneSignalSelectorHelpers.m
|
|
48
|
-
BOOL
|
|
47
|
+
BOOL oneSignalInjectSelector(Class newClass, SEL newSel, Class addToClass, SEL makeLikeSel) {
|
|
49
48
|
Method newMeth = class_getInstanceMethod(newClass, newSel);
|
|
50
49
|
IMP imp = method_getImplementation(newMeth);
|
|
51
50
|
|
|
@@ -82,9 +81,9 @@ static bool swizzled = false;
|
|
|
82
81
|
return;
|
|
83
82
|
}
|
|
84
83
|
|
|
85
|
-
Class delegateClass =
|
|
84
|
+
Class delegateClass = oneSignalGetClassWithProtocolInHierarchy([delegate class], @protocol(UIApplicationDelegate));
|
|
86
85
|
|
|
87
|
-
|
|
86
|
+
oneSignalInjectSelector(
|
|
88
87
|
self.class, @selector(oneSignalApplication:didFinishLaunchingWithOptions:),
|
|
89
88
|
delegateClass, @selector(application:didFinishLaunchingWithOptions:)
|
|
90
89
|
);
|
|
@@ -96,7 +95,7 @@ static bool swizzled = false;
|
|
|
96
95
|
|
|
97
96
|
- (BOOL)oneSignalApplication:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
|
98
97
|
[OneSignalWrapper setSdkType:@"unity"];
|
|
99
|
-
[OneSignalWrapper setSdkVersion:@"
|
|
98
|
+
[OneSignalWrapper setSdkVersion:@"050100"];
|
|
100
99
|
[OneSignal initialize:nil withLaunchOptions:launchOptions];
|
|
101
100
|
|
|
102
101
|
if ([self respondsToSelector:@selector(oneSignalApplication:didFinishLaunchingWithOptions:)])
|
|
@@ -32,8 +32,8 @@ using OneSignalSDK.Debug.Models;
|
|
|
32
32
|
|
|
33
33
|
namespace OneSignalSDK.iOS.Debug {
|
|
34
34
|
internal sealed class iOSDebugManager : IDebugManager {
|
|
35
|
-
[DllImport("__Internal")] private static extern void
|
|
36
|
-
[DllImport("__Internal")] private static extern void
|
|
35
|
+
[DllImport("__Internal")] private static extern void _oneSignalDebugSetLogLevel(int logLevel);
|
|
36
|
+
[DllImport("__Internal")] private static extern void _oneSignalDebugSetAlertLevel(int alertlLevel);
|
|
37
37
|
|
|
38
38
|
private LogLevel _logLevel = LogLevel.Warn;
|
|
39
39
|
private LogLevel _alertLevel = LogLevel.None;
|
|
@@ -42,7 +42,7 @@ namespace OneSignalSDK.iOS.Debug {
|
|
|
42
42
|
get => _logLevel;
|
|
43
43
|
set {
|
|
44
44
|
_logLevel = value;
|
|
45
|
-
|
|
45
|
+
_oneSignalDebugSetLogLevel((int) value);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
|
|
@@ -50,7 +50,7 @@ namespace OneSignalSDK.iOS.Debug {
|
|
|
50
50
|
get => _alertLevel;
|
|
51
51
|
set {
|
|
52
52
|
_alertLevel = value;
|
|
53
|
-
|
|
53
|
+
_oneSignalDebugSetAlertLevel((int) value);
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
}
|
|
@@ -33,9 +33,9 @@ using OneSignalSDK.Notifications.Models;
|
|
|
33
33
|
|
|
34
34
|
namespace OneSignalSDK.iOS.Notifications.Models {
|
|
35
35
|
public sealed class iOSDisplayableNotification : Notification, IDisplayableNotification {
|
|
36
|
-
[DllImport("__Internal")] private static extern void
|
|
36
|
+
[DllImport("__Internal")] private static extern void _oneSignalNotificationsDisplay(string notificationId);
|
|
37
37
|
|
|
38
38
|
public void Display()
|
|
39
|
-
=>
|
|
39
|
+
=> _oneSignalNotificationsDisplay(this.NotificationId);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -36,19 +36,19 @@ using OneSignalSDK.InAppMessages.Internal;
|
|
|
36
36
|
|
|
37
37
|
namespace OneSignalSDK.iOS.InAppMessages {
|
|
38
38
|
internal sealed class iOSInAppMessagesManager : IInAppMessagesManager {
|
|
39
|
-
[DllImport("__Internal")] private static extern void
|
|
40
|
-
[DllImport("__Internal")] private static extern void
|
|
41
|
-
[DllImport("__Internal")] private static extern void
|
|
42
|
-
[DllImport("__Internal")] private static extern void
|
|
43
|
-
[DllImport("__Internal")] private static extern void
|
|
44
|
-
|
|
45
|
-
[DllImport("__Internal")] private static extern void
|
|
46
|
-
[DllImport("__Internal")] private static extern bool
|
|
47
|
-
[DllImport("__Internal")] private static extern void
|
|
48
|
-
[DllImport("__Internal")] private static extern void
|
|
49
|
-
[DllImport("__Internal")] private static extern void
|
|
50
|
-
[DllImport("__Internal")] private static extern void
|
|
51
|
-
[DllImport("__Internal")] private static extern void
|
|
39
|
+
[DllImport("__Internal")] private static extern void _oneSignalInAppMessagesSetWillDisplayCallback(StringListenerDelegate callback);
|
|
40
|
+
[DllImport("__Internal")] private static extern void _oneSignalInAppMessagesSetDidDisplayCallback(StringListenerDelegate callback);
|
|
41
|
+
[DllImport("__Internal")] private static extern void _oneSignalInAppMessagesSetWillDismissCallback(StringListenerDelegate callback);
|
|
42
|
+
[DllImport("__Internal")] private static extern void _oneSignalInAppMessagesSetDidDismissCallback(StringListenerDelegate callback);
|
|
43
|
+
[DllImport("__Internal")] private static extern void _oneSignalInAppMessagesSetClickCallback(ClickListenerDelegate callback);
|
|
44
|
+
|
|
45
|
+
[DllImport("__Internal")] private static extern void _oneSignalInAppMessagesSetPaused(bool paused);
|
|
46
|
+
[DllImport("__Internal")] private static extern bool _oneSignalInAppMessagesGetPaused();
|
|
47
|
+
[DllImport("__Internal")] private static extern void _oneSignalInAppMessagesAddTrigger(string key, string value);
|
|
48
|
+
[DllImport("__Internal")] private static extern void _oneSignalInAppMessagesAddTriggers(string triggersJson);
|
|
49
|
+
[DllImport("__Internal")] private static extern void _oneSignalInAppMessagesRemoveTrigger(string key);
|
|
50
|
+
[DllImport("__Internal")] private static extern void _oneSignalInAppMessagesRemoveTriggers(string triggersJson);
|
|
51
|
+
[DllImport("__Internal")] private static extern void _oneSignalInAppMessagesClearTriggers();
|
|
52
52
|
|
|
53
53
|
private delegate void StringListenerDelegate(string response);
|
|
54
54
|
private delegate void ClickListenerDelegate(string message, string result, int urlType);
|
|
@@ -66,31 +66,31 @@ namespace OneSignalSDK.iOS.InAppMessages {
|
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
public bool Paused {
|
|
69
|
-
get =>
|
|
70
|
-
set =>
|
|
69
|
+
get => _oneSignalInAppMessagesGetPaused();
|
|
70
|
+
set => _oneSignalInAppMessagesSetPaused(value);
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
public void AddTrigger(string key, string value)
|
|
74
|
-
=>
|
|
74
|
+
=> _oneSignalInAppMessagesAddTrigger(key, value.ToString());
|
|
75
75
|
|
|
76
76
|
public void AddTriggers(Dictionary<string, string> triggers)
|
|
77
|
-
=>
|
|
77
|
+
=> _oneSignalInAppMessagesAddTriggers(Json.Serialize(triggers));
|
|
78
78
|
|
|
79
79
|
public void RemoveTrigger(string key)
|
|
80
|
-
=>
|
|
80
|
+
=> _oneSignalInAppMessagesRemoveTrigger(key);
|
|
81
81
|
|
|
82
82
|
public void RemoveTriggers(params string[] keys)
|
|
83
|
-
=>
|
|
83
|
+
=> _oneSignalInAppMessagesRemoveTriggers(Json.Serialize(keys));
|
|
84
84
|
|
|
85
85
|
public void ClearTriggers()
|
|
86
|
-
=>
|
|
86
|
+
=> _oneSignalInAppMessagesClearTriggers();
|
|
87
87
|
|
|
88
88
|
public void Initialize() {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
89
|
+
_oneSignalInAppMessagesSetWillDisplayCallback(_onWillDisplay);
|
|
90
|
+
_oneSignalInAppMessagesSetDidDisplayCallback(_onDidDisplay);
|
|
91
|
+
_oneSignalInAppMessagesSetWillDismissCallback(_onWillDismiss);
|
|
92
|
+
_oneSignalInAppMessagesSetDidDismissCallback(_onDidDismiss);
|
|
93
|
+
_oneSignalInAppMessagesSetClickCallback(_onClicked);
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
[AOT.MonoPInvokeCallback(typeof(StringListenerDelegate))]
|
|
@@ -32,20 +32,20 @@ using OneSignalSDK.iOS.Utilities;
|
|
|
32
32
|
|
|
33
33
|
namespace OneSignalSDK.iOS.LiveActivities {
|
|
34
34
|
internal sealed class iOSLiveActivitiesManager : ILiveActivitiesManager {
|
|
35
|
-
[DllImport("__Internal")] private static extern void
|
|
36
|
-
[DllImport("__Internal")] private static extern void
|
|
35
|
+
[DllImport("__Internal")] private static extern void _oneSignalEnterLiveActivity(string activityId, string token, int hashCode, BooleanResponseDelegate callback);
|
|
36
|
+
[DllImport("__Internal")] private static extern void _oneSignalExitLiveActivity(string activityId, int hashCode, BooleanResponseDelegate callback);
|
|
37
37
|
|
|
38
38
|
private delegate void BooleanResponseDelegate(int hashCode, bool response);
|
|
39
39
|
|
|
40
40
|
public async Task<bool> EnterAsync(string activityId, string token) {
|
|
41
41
|
var (proxy, hashCode) = WaitingProxy._setupProxy<bool>();
|
|
42
|
-
|
|
42
|
+
_oneSignalEnterLiveActivity(activityId, token, hashCode, BooleanCallbackProxy);
|
|
43
43
|
return await proxy;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
public async Task<bool> ExitAsync(string activityId) {
|
|
47
47
|
var (proxy, hashCode) = WaitingProxy._setupProxy<bool>();
|
|
48
|
-
|
|
48
|
+
_oneSignalExitLiveActivity(activityId, hashCode, BooleanCallbackProxy);
|
|
49
49
|
return await proxy;
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -32,17 +32,17 @@ using System.Runtime.InteropServices;
|
|
|
32
32
|
|
|
33
33
|
namespace OneSignalSDK.iOS.Location {
|
|
34
34
|
internal sealed class iOSLocationManager : ILocationManager {
|
|
35
|
-
[DllImport("__Internal")] private static extern bool
|
|
36
|
-
[DllImport("__Internal")] private static extern void
|
|
37
|
-
[DllImport("__Internal")] private static extern void
|
|
35
|
+
[DllImport("__Internal")] private static extern bool _oneSignalLocationGetIsShared();
|
|
36
|
+
[DllImport("__Internal")] private static extern void _oneSignalLocationSetIsShared(bool shared);
|
|
37
|
+
[DllImport("__Internal")] private static extern void _oneSignalLocationRequestPermission();
|
|
38
38
|
|
|
39
39
|
public bool IsShared {
|
|
40
|
-
get =>
|
|
41
|
-
set =>
|
|
40
|
+
get => _oneSignalLocationGetIsShared();
|
|
41
|
+
set => _oneSignalLocationSetIsShared(value);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
public void RequestPermission() {
|
|
45
|
-
|
|
45
|
+
_oneSignalLocationRequestPermission();
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -38,15 +38,15 @@ using OneSignalSDK.iOS.Notifications.Models;
|
|
|
38
38
|
|
|
39
39
|
namespace OneSignalSDK.iOS.Notifications {
|
|
40
40
|
internal sealed class iOSNotificationsManager : INotificationsManager {
|
|
41
|
-
[DllImport("__Internal")] private static extern bool
|
|
42
|
-
[DllImport("__Internal")] private static extern bool
|
|
43
|
-
[DllImport("__Internal")] private static extern int
|
|
44
|
-
[DllImport("__Internal")] private static extern void
|
|
45
|
-
[DllImport("__Internal")] private static extern void
|
|
46
|
-
[DllImport("__Internal")] private static extern void
|
|
47
|
-
[DllImport("__Internal")] private static extern void
|
|
48
|
-
[DllImport("__Internal")] private static extern void
|
|
49
|
-
[DllImport("__Internal")] private static extern void
|
|
41
|
+
[DllImport("__Internal")] private static extern bool _oneSignalNotificationsGetPermission();
|
|
42
|
+
[DllImport("__Internal")] private static extern bool _oneSignalNotificationsGetCanRequestPermission();
|
|
43
|
+
[DllImport("__Internal")] private static extern int _oneSignalNotificationsGetPermissionNative();
|
|
44
|
+
[DllImport("__Internal")] private static extern void _oneSignalNotificationsRequestPermission(bool fallbackToSettings, int hashCode, BooleanResponseDelegate callback);
|
|
45
|
+
[DllImport("__Internal")] private static extern void _oneSignalNotificationsClearAll();
|
|
46
|
+
[DllImport("__Internal")] private static extern void _oneSignalNotificationsAddPermissionObserver(PermissionListenerDelegate callback);
|
|
47
|
+
[DllImport("__Internal")] private static extern void _oneSignalNotificationsSetForegroundWillDisplayCallback(WillDisplayListenerDelegate callback);
|
|
48
|
+
[DllImport("__Internal")] private static extern void _oneSignalNotificationsWillDisplayEventPreventDefault(string notificationId);
|
|
49
|
+
[DllImport("__Internal")] private static extern void _oneSignalNotificationsSetClickCallback(ClickListenerDelegate callback);
|
|
50
50
|
|
|
51
51
|
private delegate void PermissionListenerDelegate(bool permission);
|
|
52
52
|
private delegate void WillDisplayListenerDelegate(string notification);
|
|
@@ -66,7 +66,7 @@ namespace OneSignalSDK.iOS.Notifications {
|
|
|
66
66
|
|
|
67
67
|
if (!_clickNativeListenerSet) {
|
|
68
68
|
_clickNativeListenerSet = true;
|
|
69
|
-
|
|
69
|
+
_oneSignalNotificationsSetClickCallback(_onClicked);
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
remove { _clicked -= value; }
|
|
@@ -79,30 +79,30 @@ namespace OneSignalSDK.iOS.Notifications {
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
public bool Permission {
|
|
82
|
-
get =>
|
|
82
|
+
get => _oneSignalNotificationsGetPermission();
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
public bool CanRequestPermission {
|
|
86
|
-
get =>
|
|
86
|
+
get => _oneSignalNotificationsGetCanRequestPermission();
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
public NotificationPermission PermissionNative {
|
|
90
|
-
get => (NotificationPermission)
|
|
90
|
+
get => (NotificationPermission)_oneSignalNotificationsGetPermissionNative();
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
public async Task<bool> RequestPermissionAsync(bool fallbackToSettings) {
|
|
94
94
|
var (proxy, hashCode) = WaitingProxy._setupProxy<bool>();
|
|
95
|
-
|
|
95
|
+
_oneSignalNotificationsRequestPermission(fallbackToSettings, hashCode, BooleanCallbackProxy);
|
|
96
96
|
return await proxy;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
public void ClearAllNotifications() {
|
|
100
|
-
|
|
100
|
+
_oneSignalNotificationsClearAll();
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
public void Initialize() {
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
_oneSignalNotificationsAddPermissionObserver(_onPermissionStateChanged);
|
|
105
|
+
_oneSignalNotificationsSetForegroundWillDisplayCallback(_onForegroundWillDisplay);
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
[AOT.MonoPInvokeCallback(typeof(PermissionListenerDelegate))]
|
|
@@ -137,7 +137,7 @@ namespace OneSignalSDK.iOS.Notifications {
|
|
|
137
137
|
public InternalNotificationWillDisplayEventArgs(IDisplayableNotification notification) : base(notification) { }
|
|
138
138
|
|
|
139
139
|
public override void PreventDefault() {
|
|
140
|
-
|
|
140
|
+
_oneSignalNotificationsWillDisplayEventPreventDefault(this.Notification.NotificationId);
|
|
141
141
|
}
|
|
142
142
|
}
|
|
143
143
|
|
|
@@ -35,12 +35,12 @@ using OneSignalSDK.Debug.Utilities;
|
|
|
35
35
|
|
|
36
36
|
namespace OneSignalSDK.iOS.User.Models {
|
|
37
37
|
internal sealed class iOSPushSubscription : IPushSubscription {
|
|
38
|
-
[DllImport("__Internal")] private static extern string
|
|
39
|
-
[DllImport("__Internal")] private static extern string
|
|
40
|
-
[DllImport("__Internal")] private static extern bool
|
|
41
|
-
[DllImport("__Internal")] private static extern void
|
|
42
|
-
[DllImport("__Internal")] private static extern void
|
|
43
|
-
[DllImport("__Internal")] private static extern void
|
|
38
|
+
[DllImport("__Internal")] private static extern string _oneSignalPushSubscriptionGetId();
|
|
39
|
+
[DllImport("__Internal")] private static extern string _oneSignalPushSubscriptionGetToken();
|
|
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);
|
|
44
44
|
|
|
45
45
|
public delegate void StateListenerDelegate(string current, string previous);
|
|
46
46
|
|
|
@@ -53,25 +53,25 @@ namespace OneSignalSDK.iOS.User.Models {
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
public string Id {
|
|
56
|
-
get =>
|
|
56
|
+
get => _oneSignalPushSubscriptionGetId();
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
public string Token {
|
|
60
|
-
get =>
|
|
60
|
+
get => _oneSignalPushSubscriptionGetToken();
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
public bool OptedIn {
|
|
64
|
-
get =>
|
|
64
|
+
get => _oneSignalPushSubscriptionGetOptedIn();
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
public void OptIn()
|
|
68
|
-
=>
|
|
68
|
+
=> _oneSignalPushSubscriptionOptIn();
|
|
69
69
|
|
|
70
70
|
public void OptOut()
|
|
71
|
-
=>
|
|
71
|
+
=> _oneSignalPushSubscriptionOptOut();
|
|
72
72
|
|
|
73
73
|
public void Initialize() {
|
|
74
|
-
|
|
74
|
+
_oneSignalPushSubscriptionAddStateChangedCallback(_onPushSubscriptionStateChanged);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
[AOT.MonoPInvokeCallback(typeof(StateListenerDelegate))]
|
|
@@ -31,17 +31,17 @@ using System.Runtime.InteropServices;
|
|
|
31
31
|
|
|
32
32
|
namespace OneSignalSDK.iOS.Session {
|
|
33
33
|
internal sealed class iOSSessionManager : ISessionManager {
|
|
34
|
-
[DllImport("__Internal")] private static extern void
|
|
35
|
-
[DllImport("__Internal")] private static extern void
|
|
36
|
-
[DllImport("__Internal")] private static extern void
|
|
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);
|
|
37
37
|
|
|
38
38
|
public void AddOutcome(string name)
|
|
39
|
-
=>
|
|
39
|
+
=> _oneSignalSessionAddOutcome(name);
|
|
40
40
|
|
|
41
41
|
public void AddUniqueOutcome(string name)
|
|
42
|
-
=>
|
|
42
|
+
=> _oneSignalSessionAddUniqueOutcome(name);
|
|
43
43
|
|
|
44
44
|
public void AddOutcomeWithValue(string name, float value)
|
|
45
|
-
=>
|
|
45
|
+
=> _oneSignalSessionAddOutcomeWithValue(name, value);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
@@ -27,80 +27,123 @@
|
|
|
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 {
|
|
38
|
-
[DllImport("__Internal")] private static extern
|
|
39
|
-
[DllImport("__Internal")] private static extern
|
|
40
|
-
[DllImport("__Internal")] private static extern void
|
|
41
|
-
[DllImport("__Internal")] private static extern void
|
|
42
|
-
[DllImport("__Internal")] private static extern void
|
|
43
|
-
[DllImport("__Internal")] private static extern void
|
|
44
|
-
[DllImport("__Internal")] private static extern void
|
|
45
|
-
[DllImport("__Internal")] private static extern void
|
|
46
|
-
[DllImport("__Internal")] private static extern void
|
|
47
|
-
[DllImport("__Internal")] private static extern void
|
|
48
|
-
[DllImport("__Internal")] private static extern void
|
|
49
|
-
[DllImport("__Internal")] private static extern
|
|
50
|
-
[DllImport("__Internal")] private static extern void
|
|
40
|
+
[DllImport("__Internal")] private static extern string _oneSignalUserGetOneSignalId();
|
|
41
|
+
[DllImport("__Internal")] private static extern string _oneSignalUserGetExternalId();
|
|
42
|
+
[DllImport("__Internal")] private static extern void _oneSignalUserSetLanguage(string languageCode);
|
|
43
|
+
[DllImport("__Internal")] private static extern void _oneSignalUserAddAlias(string aliasLabel, string aliasId);
|
|
44
|
+
[DllImport("__Internal")] private static extern void _oneSignalUserAddAliases(string aliasesJson);
|
|
45
|
+
[DllImport("__Internal")] private static extern void _oneSignalUserRemoveAlias(string aliasLabel);
|
|
46
|
+
[DllImport("__Internal")] private static extern void _oneSignalUserRemoveAliases(string aliasesJson);
|
|
47
|
+
[DllImport("__Internal")] private static extern void _oneSignalUserAddEmail(string email);
|
|
48
|
+
[DllImport("__Internal")] private static extern void _oneSignalUserRemoveEmail(string email);
|
|
49
|
+
[DllImport("__Internal")] private static extern void _oneSignalUserAddSms(string smsNumber);
|
|
50
|
+
[DllImport("__Internal")] private static extern void _oneSignalUserRemoveSms(string smsNumber);
|
|
51
|
+
[DllImport("__Internal")] private static extern string _oneSignalUserGetTags();
|
|
52
|
+
[DllImport("__Internal")] private static extern void _oneSignalUserAddTag(string key, string value);
|
|
53
|
+
[DllImport("__Internal")] private static extern void _oneSignalUserAddTags(string tagsJson);
|
|
54
|
+
[DllImport("__Internal")] private static extern void _oneSignalUserRemoveTag(string key);
|
|
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;
|
|
51
61
|
|
|
52
62
|
private iOSPushSubscription _pushSubscription;
|
|
63
|
+
|
|
64
|
+
private static iOSUserManager _instance;
|
|
53
65
|
|
|
54
66
|
public iOSUserManager() {
|
|
67
|
+
_instance = this;
|
|
55
68
|
_pushSubscription = new iOSPushSubscription();
|
|
56
69
|
}
|
|
57
70
|
|
|
71
|
+
public string OneSignalId {
|
|
72
|
+
get => _oneSignalUserGetOneSignalId();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
public string ExternalId {
|
|
76
|
+
get => _oneSignalUserGetExternalId();
|
|
77
|
+
}
|
|
78
|
+
|
|
58
79
|
public IPushSubscription PushSubscription {
|
|
59
80
|
get => _pushSubscription;
|
|
60
81
|
}
|
|
61
82
|
|
|
62
83
|
public string Language {
|
|
63
|
-
set =>
|
|
84
|
+
set => _oneSignalUserSetLanguage(value);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
public Dictionary<string, string> GetTags() {
|
|
88
|
+
Dictionary<string, object> raw = (Dictionary<string, object>)Json.Deserialize(_oneSignalUserGetTags());
|
|
89
|
+
Dictionary<string, string> dict = new Dictionary<string, string>();
|
|
90
|
+
foreach (KeyValuePair<string, object> kvp in raw) dict.Add(kvp.Key, kvp.Value.ToString());
|
|
91
|
+
return dict;
|
|
64
92
|
}
|
|
65
93
|
|
|
66
94
|
public void AddTag(string key, string value)
|
|
67
|
-
=>
|
|
95
|
+
=>_oneSignalUserAddTag(key, value);
|
|
68
96
|
|
|
69
97
|
public void AddTags(Dictionary<string, string> tags)
|
|
70
|
-
=>
|
|
98
|
+
=> _oneSignalUserAddTags(Json.Serialize(tags));
|
|
71
99
|
|
|
72
100
|
public void RemoveTag(string key)
|
|
73
|
-
=>
|
|
101
|
+
=> _oneSignalUserRemoveTag(key);
|
|
74
102
|
|
|
75
103
|
public void RemoveTags(params string[] keys)
|
|
76
|
-
=>
|
|
104
|
+
=> _oneSignalUserRemoveTags(Json.Serialize(keys));
|
|
77
105
|
|
|
78
106
|
public void AddAlias(string label, string id)
|
|
79
|
-
=>
|
|
107
|
+
=> _oneSignalUserAddAlias(label, id);
|
|
80
108
|
|
|
81
109
|
public void AddAliases(Dictionary<string, string> aliases)
|
|
82
|
-
=>
|
|
110
|
+
=> _oneSignalUserAddAliases(Json.Serialize(aliases));
|
|
83
111
|
|
|
84
112
|
public void RemoveAlias(string label)
|
|
85
|
-
=>
|
|
113
|
+
=> _oneSignalUserRemoveAlias(label);
|
|
86
114
|
|
|
87
115
|
public void RemoveAliases(params string[] labels)
|
|
88
|
-
=>
|
|
116
|
+
=> _oneSignalUserRemoveAliases(Json.Serialize(labels));
|
|
89
117
|
|
|
90
118
|
public void AddEmail(string email)
|
|
91
|
-
=>
|
|
119
|
+
=> _oneSignalUserAddEmail(email);
|
|
92
120
|
|
|
93
121
|
public void RemoveEmail(string email)
|
|
94
|
-
=>
|
|
122
|
+
=> _oneSignalUserRemoveEmail(email);
|
|
95
123
|
|
|
96
124
|
public void AddSms(string sms)
|
|
97
|
-
=>
|
|
125
|
+
=> _oneSignalUserAddSms(sms);
|
|
98
126
|
|
|
99
127
|
public void RemoveSms(string sms)
|
|
100
|
-
=>
|
|
128
|
+
=> _oneSignalUserRemoveSms(sms);
|
|
101
129
|
|
|
102
130
|
public void Initialize() {
|
|
103
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
|
+
}
|
|
104
147
|
}
|
|
105
148
|
}
|
|
106
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.0
|
|
4
|
+
"version": "5.1.0",
|
|
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.0
|
|
8
|
+
"com.onesignal.unity.core": "5.1.0"
|
|
9
9
|
},
|
|
10
10
|
"keywords": [
|
|
11
11
|
"push-notifications",
|