@selligent-marketing-cloud/selligent-react-native 2.4.0 → 2.8.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.
Files changed (127) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +354 -245
  3. package/RNSelligent.podspec +4 -4
  4. package/android/build/generated/source/buildConfig/debug/com/selligent/BuildConfig.java +12 -0
  5. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +9 -0
  6. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json +16 -0
  7. package/android/build/intermediates/aar_metadata/debug/aar-metadata.properties +2 -0
  8. package/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +1 -0
  9. package/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
  10. package/android/build/intermediates/compile_r_class_jar/debug/R.jar +0 -0
  11. package/android/build/intermediates/compile_symbol_list/debug/R.txt +6408 -0
  12. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  13. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  14. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  15. package/android/build/intermediates/incremental/packageDebugResources/compile-file-map.properties +1 -0
  16. package/android/build/intermediates/incremental/packageDebugResources/merger.xml +2 -0
  17. package/android/build/intermediates/javac/debug/classes/com/selligent/BroadcastDataFactory$1.class +0 -0
  18. package/android/build/intermediates/javac/debug/classes/com/selligent/BroadcastDataFactory.class +0 -0
  19. package/android/build/intermediates/javac/debug/classes/com/selligent/BroadcastEventDataParser.class +0 -0
  20. package/android/build/intermediates/javac/debug/classes/com/selligent/BroadcastEventType.class +0 -0
  21. package/android/build/intermediates/javac/debug/classes/com/selligent/BuildConfig.class +0 -0
  22. package/android/build/intermediates/javac/debug/classes/com/selligent/ButtonBroadcastEventDataParser.class +0 -0
  23. package/android/build/intermediates/javac/debug/classes/com/selligent/ClearCacheIntervalValue.class +0 -0
  24. package/android/build/intermediates/javac/debug/classes/com/selligent/Event.class +0 -0
  25. package/android/build/intermediates/javac/debug/classes/com/selligent/EventReceiver.class +0 -0
  26. package/android/build/intermediates/javac/debug/classes/com/selligent/EventType.class +0 -0
  27. package/android/build/intermediates/javac/debug/classes/com/selligent/GCMTokenBroadcastEventDataParser.class +0 -0
  28. package/android/build/intermediates/javac/debug/classes/com/selligent/InAppMessageBroadcastEventDataParser.class +0 -0
  29. package/android/build/intermediates/javac/debug/classes/com/selligent/InAppMessageRefreshType.class +0 -0
  30. package/android/build/intermediates/javac/debug/classes/com/selligent/RNSelligent$1.class +0 -0
  31. package/android/build/intermediates/javac/debug/classes/com/selligent/RNSelligent$2.class +0 -0
  32. package/android/build/intermediates/javac/debug/classes/com/selligent/RNSelligent$3.class +0 -0
  33. package/android/build/intermediates/javac/debug/classes/com/selligent/RNSelligent$4.class +0 -0
  34. package/android/build/intermediates/javac/debug/classes/com/selligent/RNSelligent$5.class +0 -0
  35. package/android/build/intermediates/javac/debug/classes/com/selligent/RNSelligent.class +0 -0
  36. package/android/build/intermediates/javac/debug/classes/com/selligent/RNSelligentPackage.class +0 -0
  37. package/android/build/intermediates/javac/debug/classes/com/selligent/RemoteMessageDisplayType.class +0 -0
  38. package/android/build/intermediates/javac/debug/classes/com/selligent/SMEventFactory$1.class +0 -0
  39. package/android/build/intermediates/javac/debug/classes/com/selligent/SMEventFactory.class +0 -0
  40. package/android/build/intermediates/javac/debug/classes/com/selligent/SMSettingsFactory.class +0 -0
  41. package/android/build/intermediates/javac/debug/classes/com/selligent/Settings.class +0 -0
  42. package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +2 -0
  43. package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +11 -0
  44. package/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml +9 -0
  45. package/android/build/intermediates/navigation_json/debug/navigation.json +1 -0
  46. package/android/build/intermediates/packaged_manifests/debug/output-metadata.json +16 -0
  47. package/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar +0 -0
  48. package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +4798 -0
  49. package/android/build/outputs/logs/manifest-merger-debug-report.txt +25 -0
  50. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  51. package/android/build/tmp/compileDebugJavaWithJavac/source-classes-mapping.txt +43 -0
  52. package/android/build.gradle +38 -32
  53. package/android/libs/sdk-release.aar +0 -0
  54. package/android/src/main/java/com/selligent/RNSelligent.java +41 -3
  55. package/android/src/main/java/com/selligent/SMSettingsFactory.java +1 -0
  56. package/android/src/main/java/com/selligent/Settings.java +16 -0
  57. package/constants.d.ts +18 -0
  58. package/constants.js +30 -2
  59. package/index.android.js +42 -0
  60. package/index.d.ts +14 -6
  61. package/index.ios.js +12 -29
  62. package/index.js +13 -1
  63. package/ios/ClientSettings.h +2 -0
  64. package/ios/ClientSettings.m +4 -0
  65. package/ios/EnumMapper.h +3 -6
  66. package/ios/EnumMapper.m +8 -24
  67. package/ios/RNSelligent.m +25 -13
  68. package/ios/RemoteMessageDisplayType.h +5 -0
  69. package/ios/SMManagerSetting+ClientSettings.m +15 -4
  70. package/ios/SelligentReactNative.xcodeproj/project.pbxproj +4 -12
  71. package/ios/include/SMBaseMessage.h +8 -12
  72. package/ios/include/SMBlock.h +2 -2
  73. package/ios/include/SMClearCache.h +0 -2
  74. package/ios/include/SMContentAlignment.h +1 -2
  75. package/ios/include/SMDeviceInfos.h +10 -8
  76. package/ios/include/SMDisplayMode.h +1 -2
  77. package/ios/include/SMEvent.h +21 -17
  78. package/ios/include/SMEventUser.h +0 -1
  79. package/ios/include/SMEventUserLogin.h +11 -16
  80. package/ios/include/SMEventUserLogout.h +12 -16
  81. package/ios/include/SMEventUserRegistration.h +12 -17
  82. package/ios/include/SMEventUserUnregistration.h +12 -16
  83. package/ios/include/SMFailure.h +1 -6
  84. package/ios/include/SMHelper.h +12 -4
  85. package/ios/include/SMInAppContentHTMLViewController.h +11 -9
  86. package/ios/include/SMInAppContentImageViewController.h +6 -6
  87. package/ios/include/SMInAppContentMessage.h +12 -12
  88. package/ios/include/SMInAppContentStyleOptions.h +91 -79
  89. package/ios/include/SMInAppContentType.h +2 -3
  90. package/ios/include/SMInAppContentURLViewController.h +10 -9
  91. package/ios/include/SMInAppContentViewController.h +3 -6
  92. package/ios/include/SMInAppMessage.h +22 -14
  93. package/ios/include/SMInAppMessageType.h +2 -6
  94. package/ios/include/SMInAppRefreshType.h +1 -1
  95. package/ios/include/SMLink.h +7 -11
  96. package/ios/include/SMLog.h +1 -1
  97. package/ios/include/SMManager+DataTransaction.h +6 -13
  98. package/ios/include/SMManager+InAppContent.h +20 -23
  99. package/ios/include/SMManager+InAppMessage.h +65 -42
  100. package/ios/include/SMManager+Location.h +7 -63
  101. package/ios/include/SMManager+Log.h +3 -14
  102. package/ios/include/SMManager+RemoteNotification.h +38 -34
  103. package/ios/include/SMManager+SMEvent.h +10 -10
  104. package/ios/include/SMManager+SMLink.h +44 -0
  105. package/ios/include/SMManager+SilentPush.h +5 -22
  106. package/ios/include/SMManager+StyleOptions.h +5 -8
  107. package/ios/include/SMManager+UserNotification.h +47 -35
  108. package/ios/include/SMManager+ViewController.h +45 -0
  109. package/ios/include/SMManager.h +15 -24
  110. package/ios/include/SMManagerInAppMessageDelegate.h +24 -0
  111. package/ios/include/SMManagerSetting+Location.h +27 -0
  112. package/ios/include/SMManagerSetting.h +61 -33
  113. package/ios/include/SMManagerSettingIAC.h +6 -17
  114. package/ios/include/SMManagerSettingIAM.h +7 -16
  115. package/ios/include/SMManagerUniversalLinksDelegate.h +23 -0
  116. package/ios/include/SMMessage.h +1 -3
  117. package/ios/include/SMNSNotification.h +21 -13
  118. package/ios/include/SMNotificationAnnotationData.h +4 -8
  119. package/ios/include/SMNotificationButtonData.h +1 -6
  120. package/ios/include/SMNotificationButtonType.h +1 -14
  121. package/ios/include/SMNotificationMessage.h +31 -0
  122. package/ios/include/SMRemoteMessageDisplayType.h +32 -0
  123. package/ios/include/SMSuccess.h +1 -4
  124. package/ios/{libSelligentMobile2.5.2.a → libSelligentMobile.a} +0 -0
  125. package/package.json +3 -3
  126. package/trigger.yml +9 -0
  127. package/ios/include/SMLocationAuthorisationType.h +0 -57
@@ -8,14 +8,12 @@
8
8
 
9
9
  #import <UIKit/UIKit.h>
10
10
 
11
- @class SMManagerSetting;
12
-
13
-
14
11
  #import "SMManagerHelper.h"
15
12
 
13
+ @class SMManagerSetting;
16
14
 
17
15
  /*!
18
- * #Start Library :#
16
+ * ##Start Library
19
17
  * In order to start the library, please follow the steps bellow (will mainly happen in your UIApplication's delegate):
20
18
  *
21
19
  * - Use startWithLaunchOptions:Setting: in your application:didFinishLaunchingWithOptions:
@@ -26,29 +24,20 @@
26
24
  * Don't forget to call registerForRemoteNotification according to your application's need.
27
25
  *
28
26
  * From there, your application is ready to handle all incoming remote-notifications.
29
- *
30
- * #SMManager Singleton :#
31
- * @discussion This manager is the main interface third party developers will be using.
32
- *
33
27
  */
34
28
  @interface SMManager : NSObject
35
29
 
36
-
37
30
  /**
38
31
  * The current version of the library
39
32
  */
40
- @property (nonatomic) NSString *_Nonnull versionLib ;
33
+ @property (readonly, nonatomic) NSString *_Nonnull versionLib;
41
34
 
42
35
  /*!
43
36
  * Singleton for SellMobileSDK Class which allow to access public SellMobileSDK methods and properties
44
37
  *
45
- * @return SMManager : singleton instance of SMManager class
38
+ * @return SMManager: singleton instance of SMManager class
46
39
  */
47
- + (instancetype _Nonnull) sharedInstance ;
48
-
49
-
50
-
51
-
40
+ + (instancetype _Nonnull) sharedInstance;
52
41
 
53
42
  /*!
54
43
  * Mandatory method which allows sdk initialisation. To be included in application:didFinishLaunchingWithOptions:
@@ -56,23 +45,25 @@
56
45
  *
57
46
  * @param launchOptions NSDictionary instance indicating the reason the app was launched (if any). This dictionary is provided by application:didFinishLaunchingWithOptions
58
47
  * @param setting mandatory SMManagerSetting instance to start-up the library
59
- * @see SMManagerSetting
60
- * @discussion This method is mandatory in order to start / initialise the library and should be called in application:didFinishLaunchingWithOptions:
48
+ * @see SMManagerSetting
49
+ * @discussion This method is mandatory in order to start / initialize the library and should be called in application:didFinishLaunchingWithOptions:
61
50
  */
62
- - (void)startWithLaunchOptions:(NSDictionary* _Nullable)launchOptions Setting:(SMManagerSetting* _Null_unspecified)setting;
63
-
64
-
65
-
51
+ - (void) startWithLaunchOptions:(NSDictionary* _Nullable)launchOptions Setting:(SMManagerSetting* _Null_unspecified)setting;
66
52
 
67
53
  /*!
68
54
  * Optional + used for testing only. This method will re-configure the SMManager with the newly provided information
55
+ *
69
56
  * @discussion This is a handy API in case you would like to switch between two backend environements without rebuilding your target.
70
57
  * @param setting mandatory SMManagerSetting instance to start-up the library
71
58
  * @warning This API is provided for testing purposes only. Never use it in production.
72
59
  * Make sure to re-enable any service after calling this API.
60
+ * @see SMManagerSetting
73
61
  */
74
- - (void)reloadSetting:(SMManagerSetting* _Null_unspecified)setting;
75
-
62
+ - (void) reloadSetting:(SMManagerSetting* _Null_unspecified)setting;
76
63
 
64
+ /*!
65
+ * Device id used by the sdk
66
+ */
67
+ - (NSString*_Nullable) deviceID;
77
68
 
78
69
  @end
@@ -0,0 +1,24 @@
1
+ //
2
+ // SMManagerDelegate.h
3
+ // MobileSDK
4
+ //
5
+ // Created by Gilbert Schakal on 25/5/2021.
6
+ // Copyright © 2021 Selligent. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import "SMInAppMessage.h"
11
+
12
+ /**
13
+ * This protocol will help you intercept the in-app messages and allow you to display them your own way or store them somewhere to be shown later.
14
+ */
15
+ @protocol SMManagerInAppMessageDelegate <NSObject>
16
+ @optional
17
+
18
+ /*!
19
+ * @abstract Invoked when an in-app message linked to a remote notification is received by sdk.
20
+ * @param inAppMessage The inAppMessage object containing all necessary datas for you to display content of the message
21
+ */
22
+ - (void) displayInAppMessage:(SMInAppMessage*_Nonnull)inAppMessage;
23
+
24
+ @end
@@ -0,0 +1,27 @@
1
+ //
2
+ // SMManagerSetting+Location.h
3
+ // MobileSDK
4
+ //
5
+ // Created by Marc Biosca on 6/28/21.
6
+ // Copyright © 2021 Selligent. All rights reserved.
7
+ //
8
+
9
+ #import "SMManagerSetting.h"
10
+
11
+ /**
12
+ * This category will help you to enable the geolocation service.
13
+ */
14
+ @interface SMManagerSetting (Location)
15
+
16
+ /**
17
+ * Optional API to enable location services.
18
+ *
19
+ * @discussion This call is useless if the sdk version is not the one associated to the plotproject framework
20
+ * However in the case you are using the sdk version associated to plotproject framework, it is the first step to enable Location service.
21
+ * It is the first step to inform the sdk that geo location services are going to be used by the
22
+ *
23
+ * @warning To use location service you will mandatory need to have PlotProject.framework in your app and the correct version of the selligent sdk library
24
+ */
25
+ - (void) configureLocationService;
26
+
27
+ @end
@@ -7,22 +7,21 @@
7
7
  //
8
8
 
9
9
  #import <Foundation/Foundation.h>
10
-
11
10
  #import "SMClearCache.h"
11
+ #import "SMRemoteMessageDisplayType.h"
12
12
 
13
13
  @class SMManagerSettingIAM;
14
14
  @class SMManagerSettingIAC;
15
- @class SMManagerSettingLocation;
16
-
17
15
 
18
16
  /**
19
- * #Note about the SMManagerSetting object :#
17
+ * This class allow you to configure the SMManager.
18
+ * Such instance must be created before starting the library.
20
19
  * Creating an SMManagerSetting's instance is pretty straightforward as there's only [one constructor for doing so](settingWithUrl:ClientID:PrivateKey:).
21
20
  * This sole constructor is sufficent to get you started.
22
21
  *
23
22
  * Additional parameters described in this header will provide you with additional control and ***are all optional***.
24
23
  *
25
- * #Being user-friendly :#
24
+ * ##Being user-friendly
26
25
  * When the application is in foreground and receive a remote-notification, by default, the library will display it on the current visible UIViewController. This behaviour might be unwanted and may disturb the user if he appears to navigate in a different context. Should you want to prevent that behaviour and display the remote-notification shortly after (when the user will be in a more appropriate context), please follow these steps :
27
26
  *
28
27
  * * Create an SMManagerSetting with the default constructor as usual.
@@ -40,21 +39,16 @@
40
39
  *
41
40
  * * Display the last known remote notification by calling : [SMManager(RemoteNotification) displayLastReceivedRemotePushNotification]
42
41
  *
43
- * #IAM :#
42
+ * ##IAM
44
43
  * In-Application-Message-service is configurable using SMManagerSettingIAM which you'll inject using the API configureInAppMessageServiceWithSetting:
45
44
  * A dedicated topic regarding this topic can be found in SMManager(InAppMessage)
46
45
  *
47
- * #IAC :#
46
+ * ##IAC
48
47
  * In-Application-Content-service is configurable using SMManagerSettingIAC which you'll inject using the API configureInAppContentServiceWithSetting:
49
48
  * A dedicated topic regarding this topic can be found in SMManager(InAppContent)
50
- *
51
- * #SMManagerSetting :#
52
- * This class allow you to configure the SMManager.
53
- * Such instance must be created before starting the library.
54
49
  */
55
50
  @interface SMManagerSetting : NSObject
56
51
 
57
-
58
52
  /**
59
53
  * Once a new remote-notification is displayed, the badge is automaticly reseted.
60
54
  * Should you want to handle this property yourself, you can set this property to FALSE before starting the library
@@ -63,17 +57,28 @@
63
57
  @property (nonatomic) BOOL shouldClearBadge;
64
58
 
65
59
  /**
66
- * Used to configure the remote-notification-display
67
- * @discussion When the app is active, once a new remote-notification is received, it is automatically diplayed on the device
60
+ * @discussion This setting will enable or disable the display of inapp-messages linked to a remote-notification by the SDK.
61
+ * In iOS 10+ after tapping a notification, the inapp will be displayed (if any).
62
+ * In iOS 9-, and when the app is in foreground, once a new remote-notification is received, the linked inapp-notification will be displayed (if any).
68
63
  * Should you want to prevent that behaviour, you can set this property to FALSE before starting the library.
69
64
  * Default value is set to TRUE.
70
- * @warning This property does not have an impact when app is open from a notification selected by user in the notification center or when [SMManager(RemoteNotification) displayNotificationID:] or [SMManager(RemoteNotification) displayLastReceivedRemotePushNotification] are called.
71
- * Once you set this value to TRUE, the application becomes responsable about displaying the remote-notification. (Make sure to read the header file of SMManagerSetting before doing so).
65
+ * @warning This property does not have an impact when [SMManager(RemoteNotification) displayNotificationID:] or [SMManager(RemoteNotification) displayLastReceivedRemotePushNotification] are called.
66
+ * Once you set this value to TRUE, the application becomes responsable about displaying the inapp-notification linked to the received remote-notification.
72
67
  */
73
68
  @property (nonatomic) BOOL shouldDisplayRemoteNotification;
74
69
 
70
+ /**
71
+ * Used to add the in-app message associated to a remote notification to the in-app message list
72
+ *
73
+ * @discussion Once a new remote-notification is received, if it contains in the payload datas for an in-app message, this setting will add the in-app message to the in app messages list . You will need to listen to kSMNotification_Event_DidReceiveInAppMessage NSNotification to be informed that an in-app message is available and you can then retrieve it with [SMManager(InAppMessages) getInAppMessages] helper method and use in an inbox for example
74
+ * by default the in app message will be displayed if you wish to display it by yourself you will need to provide a class by calling [SMManager(InAppMessage) inAppMessageDelegate:] . This class will conform to SMManagerInAppMessageDelegate protocol and implement [SMManagerInAppMessageDelegate displayInAppMessage:] method
75
+ * Default value is set to FALSE
76
+ */
77
+ @property (nonatomic) BOOL shouldAddInAppMessageFromPushToInAppMessageList;
78
+
75
79
  /**
76
80
  * This value tells how often the SDK's cache mechanism should clear itself.
81
+ *
77
82
  * @discussion Internally, each notification-messages has a life-span.
78
83
  * Clearing the cache stands for deleting notification-messages with an expired life-span.
79
84
  * In other words, only old notification-messages are deletesd from the cache.
@@ -92,16 +97,47 @@
92
97
  * @warning As soon as IAM-service is enabled, the SDK will consider kSMClearCache_Weekly as being the default value. Except if you explicitly overide the property.
93
98
  * In 99% of the cases, you should not overide this property as the SDK is smart enough to handle the cache mechanism by itself.
94
99
  * Keep also in mind that this behavior is only applicable for notification and IAM that doesn't have a n expiration date set
100
+ * @see SMClearCache
95
101
  */
96
102
  @property (nonatomic) SMClearCache clearCacheIntervalValue;
97
103
 
98
104
  /**
99
- * This value provides to the sdk the app group id that you have previously defined in your apple developer portal.
100
- * @discussion it is used to allow the sdk to share data between the main app and the notifications extensions (service and/or content)
101
- * The deviceid provided by selligent mobile platform is stored encrypted in this container
105
+ * This value provides to the sdk the app group id that you have previously defined in your apple developer portal.
106
+ *
107
+ * @discussion it is used to allow the sdk to share data between the main app and the notifications extensions (service and/or content)
108
+ * The deviceid provided by selligent mobile platform is stored encrypted in this container
102
109
  */
103
- @property (nonatomic, strong) NSString *appGroupId;
110
+ @property (nonatomic, strong) NSString *_Nullable appGroupId;
104
111
 
112
+ /**
113
+ * This value defines the behaviour that the SDK will adopt when a remote-notification is received when in Foreground.
114
+ *
115
+ * @discussion The behaviour will be as:
116
+ *
117
+ * iOS 10+:
118
+ *
119
+ * * kSMRemoteMessageDisplayType_None: nothing will be displayed.
120
+ * * kSMRemoteMessageDisplayType_Notification: a Push Notification will be displayed.
121
+ * * kSMRemoteMessageDisplayType_Automatic:<br/>
122
+ * "Push + in-app notifications":<br/>
123
+ * 1) With "Message Action": a Push Notification will be displayed (UNNotificationPresentationOptionAlert and UNNotificationPresentationOptionBanner | UNNotificationPresentationOptionList for iOS 14+).<br/>
124
+ * 2) With "Push Notification Buttons": a Push Notification will be displayed (UNNotificationPresentationOptionAlert and UNNotificationPresentationOptionBanner | UNNotificationPresentationOptionList for iOS 14+).<br/>
125
+ * 3) With "Rich Push Content": a Push Notification will be displayed (UNNotificationPresentationOptionAlert and UNNotificationPresentationOptionBanner | UNNotificationPresentationOptionList for iOS 14+).<br/>
126
+ * 4) Others: an in-app message will be displayed (UNNotificationPresentationOptionNone).<br/><br/>
127
+ * "Mobile push": a Push Notification will be displayed (UNNotificationPresentationOptionAlert and UNNotificationPresentationOptionBanner | UNNotificationPresentationOptionList for iOS 14+).
128
+ *
129
+ * iOS 9-:
130
+ *
131
+ * * kSMRemoteMessageDisplayType_None: nothing will be displayed.
132
+ * * kSMRemoteMessageDisplayType_Notification: nothing will be displayed.
133
+ * * kSMRemoteMessageDisplayType_Automatic:<br/>
134
+ * "Push + in-app notifications": an in-app message will be displayed.<br/>
135
+ * "Mobile push": the "Message Action" will be executed<br/>
136
+ * @warning For iOS 10+, the SDK will only take this setting into account when the UNNotificationPresentationOptions delegate is provided (see SMManager(UserNotification) for more information).
137
+ * @warning If not set, the default value (kSMRemoteMessageDisplayType_Unknown) will use kSMRemoteMessageDisplayType_Notification for iOS 10+ and kSMRemoteMessageDisplayType_Automatic for iOS 9-.
138
+ * @see SMRemoteMessageDisplayType
139
+ */
140
+ @property (nonatomic) SMRemoteMessageDisplayType remoteMessageDisplayType;
105
141
 
106
142
  /*!
107
143
  * Default-mandatory constructor to start the SMManager shared-instance
@@ -115,7 +151,7 @@
115
151
  *
116
152
  * @return SMManagerSetting new instance. SMFailure in case of error
117
153
  */
118
- + (instancetype)settingWithUrl:(NSString*)urlName ClientID:(NSString*)clientID PrivateKey:(NSString*)privateKey;
154
+ + (instancetype _Nonnull) settingWithUrl:(NSString*_Nullable)urlName ClientID:(NSString*_Nullable)clientID PrivateKey:(NSString*_Nullable)privateKey;
119
155
 
120
156
  /**
121
157
  * @discussion This call is optional. It is not needed to successfully start the SDK.
@@ -125,9 +161,9 @@
125
161
  * @param settingIAM The SMManagerSettingIAM instance containing the IAM desired configuration.
126
162
  * @warning An invalid or nil setting is considered as an error and will not startUp the IAM-service.
127
163
  * Don't forget to enable In App message according to application need by calling [SMManager(InAppMessage) enableInAppMessage:]
164
+ * @see SMManagerSettingIAM
128
165
  */
129
- - (void)configureInAppMessageServiceWithSetting:(SMManagerSettingIAM*)settingIAM;
130
-
166
+ - (void) configureInAppMessageServiceWithSetting:(SMManagerSettingIAM*_Nullable)settingIAM;
131
167
 
132
168
  /**
133
169
  * @discussion This call is optional. It is not needed to successfully start the SDK.
@@ -137,16 +173,8 @@
137
173
  * @param settingIAC The SMManagerSettingIAC instance containing the IAC desired configuration.
138
174
  * @warning An invalid or nil setting is considered as an error and will not startUp the IAC-service.
139
175
  * Don't forget to enable In App content according to application need by calling [SMManager(InAppContent) enableInAppContent:]
176
+ * @see SMManagerSettingIAC
140
177
  */
141
- - (void)configureInAppContentServiceWithSetting:(SMManagerSettingIAC*)settingIAC;
142
-
143
- /**
144
- * @discussion This call is optional. It is not needed to successfully start the SDK.
145
- * However, it is the first step to enable Location service.
146
- * It is the first step to inform the sdk that geo location services are going to be used by the
147
- *
148
- * @warning To use location service you will need to have PlotProject.framework in your app.
149
- */
150
- - (void)configureLocationService;
178
+ - (void) configureInAppContentServiceWithSetting:(SMManagerSettingIAC*_Nullable)settingIAC;
151
179
 
152
180
  @end
@@ -6,7 +6,6 @@
6
6
  // Copyright © 2016 Selligent. All rights reserved.
7
7
  //
8
8
 
9
-
10
9
  #import <Foundation/Foundation.h>
11
10
  #import "SMInAppRefreshType.h"
12
11
 
@@ -16,9 +15,6 @@
16
15
  */
17
16
  @interface SMManagerSettingIAC : NSObject
18
17
 
19
-
20
-
21
-
22
18
  /**
23
19
  * Constructor to be used in order to create the SMManagerSettingIAC instance
24
20
  * @discussion use this constructor to enable background-mode only.
@@ -26,9 +22,7 @@
26
22
  * @warning If background-fetch is not enabled in Application's Capabilities, the IAC-service will not start.
27
23
  * See SMManager(InAppContent) for additional information.
28
24
  */
29
- + (instancetype)settingWithBackgroundFetchOnly;
30
-
31
-
25
+ + (instancetype _Nonnull) settingWithBackgroundFetchOnly;
32
26
 
33
27
  /**
34
28
  * Constructor to be used in order to create the SMManagerSettingIAC instance
@@ -36,24 +30,19 @@
36
30
  * @param refreshType The type of refresh to consider when the application is in foreground
37
31
  * @discussion Use this constructor should you want to perform periodic refresh when the application is in foreground-state only.
38
32
  * For enabling backgroundState, use settingWithRefreshType:ShouldPerformBackgroundFetch: instead
33
+ * @see SMInAppRefreshType
39
34
  */
40
- + (instancetype)settingWithRefreshType:(SMInAppRefreshType)refreshType;
41
-
42
-
43
-
35
+ + (instancetype _Nonnull) settingWithRefreshType:(SMInAppRefreshType)refreshType;
44
36
 
45
37
  /**
46
38
  * Constructor to be used in order to create the SMManagerSettingIAC instance
47
39
  *
48
- * @param refreshType The type of refresh to consider when the application is in foreground
40
+ * @param refreshType The type of refresh to consider when the application is in foreground
49
41
  * @param shouldPerformBackgroundFetch If set to TRUE, it will activate UIApplication-BackGround-Fetch-mode automaticly
50
42
  * @discussion This constructor provides you with more control on foreground / background fetch.
51
43
  * Should you want to restrict to only one fetch-mode, feel free to use other constructors.
44
+ * @see SMInAppRefreshType
52
45
  */
53
- + (instancetype)settingWithRefreshType:(SMInAppRefreshType)refreshType ShouldPerformBackgroundFetch:(BOOL)shouldPerformBackgroundFetch;
54
-
55
-
56
-
57
-
46
+ + (instancetype _Nonnull) settingWithRefreshType:(SMInAppRefreshType)refreshType ShouldPerformBackgroundFetch:(BOOL)shouldPerformBackgroundFetch;
58
47
 
59
48
  @end
@@ -15,19 +15,15 @@
15
15
  */
16
16
  @interface SMManagerSettingIAM : NSObject
17
17
 
18
-
19
-
20
-
21
18
  /**
22
19
  * Constructor to be used in order to create the SMManagerSettingIAM instance
20
+ *
23
21
  * @discussion use this constructor to enable background-mode only.
24
22
  * The OS will refresh automaticly the IAM based on how often the user interacts with the application
25
23
  * @warning If background-fetch is not enabled in Application's Capabilities, the IAM-service will not start.
26
24
  * See SMManager(InAppMessage) for additional information.
27
25
  */
28
- + (instancetype)settingWithBackgroundFetchOnly;
29
-
30
-
26
+ + (instancetype _Nonnull) settingWithBackgroundFetchOnly;
31
27
 
32
28
  /**
33
29
  * Constructor to be used in order to create the SMManagerSettingIAM instance
@@ -35,24 +31,19 @@
35
31
  * @param refreshType The type of refresh to consider when the application is in foreground
36
32
  * @discussion Use this constructor should you want to perform periodic refresh when the application is in foreground-state only.
37
33
  * For enabling backgroundState, use settingWithRefreshType:ShouldPerformBackgroundFetch: instead
34
+ * @see SMInAppRefreshType
38
35
  */
39
- + (instancetype)settingWithRefreshType:(SMInAppRefreshType)refreshType;
40
-
41
-
42
-
36
+ + (instancetype _Nonnull) settingWithRefreshType:(SMInAppRefreshType)refreshType;
43
37
 
44
38
  /**
45
39
  * Constructor to be used in order to create the SMManagerSettingIAM instance
46
40
  *
47
- * @param refreshType The type of refresh to consider when the application is in foreground
41
+ * @param refreshType The type of refresh to consider when the application is in foreground
48
42
  * @param shouldPerformBackgroundFetch If set to TRUE, it will activate UIApplication-BackGround-Fetch-mode automaticly
49
43
  * @discussion This constructor provides you with more control on foreground / background fetch.
50
44
  * Should you want to restrict to only one fetch-mode, feel free to use other constructors.
45
+ * @see SMInAppRefreshType
51
46
  */
52
- + (instancetype)settingWithRefreshType:(SMInAppRefreshType)refreshType ShouldPerformBackgroundFetch:(BOOL)shouldPerformBackgroundFetch;
53
-
54
-
55
-
56
-
47
+ + (instancetype _Nonnull) settingWithRefreshType:(SMInAppRefreshType)refreshType ShouldPerformBackgroundFetch:(BOOL)shouldPerformBackgroundFetch;
57
48
 
58
49
  @end
@@ -0,0 +1,23 @@
1
+ //
2
+ // SMManagerUniversalLinksDelegate.h
3
+ // MobileSDK
4
+ //
5
+ // Created by Marc Biosca on 7/12/21.
6
+ // Copyright © 2021 Selligent. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+
11
+ /**
12
+ * This protocol will give you the possibility to manage the behaviour when clicking a "deeplink" button type containing an universal link.
13
+ */
14
+ @protocol SMManagerUniversalLinksDelegate <NSObject>
15
+ @optional
16
+
17
+ /*!
18
+ * @abstract Invoked when a "deeplink" button type, whose URL scheme is HTTP or HTTPS, is clicked
19
+ * @param url The NSURL introduced as value of the button that has been clicked
20
+ */
21
+ - (void) executeLinkAction:(NSURL*_Nonnull)url;
22
+
23
+ @end
@@ -8,7 +8,6 @@
8
8
 
9
9
  #import <Foundation/Foundation.h>
10
10
 
11
-
12
11
  /**
13
12
  * This Class is provided as a root Class and should not be used.
14
13
  */
@@ -17,7 +16,6 @@
17
16
  /*!
18
17
  * NSString instance providing a brief description of the message
19
18
  */
20
- @property(nonatomic, strong) NSString *messageSM;
21
-
19
+ @property(readonly, nonatomic) NSString *_Nullable messageSM;
22
20
 
23
21
  @end
@@ -1,12 +1,7 @@
1
-
2
-
3
-
4
-
5
-
6
1
  /**
7
2
  * NSString representing a notification name you can listen to.
8
3
  * An NSNotification with this name is broadcasted when the user interacts with a remote-notification
9
- * Usefull to retrieve user's actions on a received remote-notification, developers may listen to kSMNotification_Event_ButtonClicked from NSNotificationCenter.
4
+ * Useful to retrieve user's actions on a received remote-notification, developers may listen to kSMNotification_Event_ButtonClicked from NSNotificationCenter.
10
5
  */
11
6
  extern NSString* kSMNotification_Event_ButtonClicked;
12
7
 
@@ -21,7 +16,7 @@ extern NSString* kSMNotification_Event_WillDisplayNotification;
21
16
  /**
22
17
  * NSString representing a notification name you can listen to.
23
18
  * An NSNotification with this name is broadcasted shortly before Dismissing the current remote-notification
24
- * Primary-application may use this notification to resume any paused work. (see kSMNotification_Event_WillDisplayNotification)
19
+ * Primary-application may use this notification to resume any paused work (see kSMNotification_Event_WillDisplayNotification).
25
20
  */
26
21
  extern NSString* kSMNotification_Event_WillDismissNotification;
27
22
 
@@ -35,16 +30,24 @@ extern NSString* kSMNotification_Event_DidReceiveRemoteNotification;
35
30
 
36
31
  /**
37
32
  * NSString representing a notification name you can listen to.
38
- * An NSNotification with this name is broadcasted shortly after receiving InApp messages
39
- * Primary-application may use this notification to manage the received InApp messages */
33
+ * An NSNotification with this name is broadcasted shortly after receiving in-app messages
34
+ * Primary-application may use this notification to manage the received in-app messages
35
+ */
40
36
  extern NSString* kSMNotification_Event_DidReceiveInAppMessage;
41
37
 
42
38
  /**
43
39
  * NSString representing a notification name you can listen to.
44
- * An NSNotification with this name is broadcasted shortly after receiving InApp content
45
- * Primary-application may use this notification to manage the received InApp content */
40
+ * An NSNotification with this name is broadcasted shortly after receiving in-app content
41
+ * Primary-application may use this notification to manage the received in-app content
42
+ */
46
43
  extern NSString* kSMNotification_Event_DidReceiveInAppContent;
47
44
 
45
+ /**
46
+ * NSString representing a notification name you can listen to.
47
+ * An NSNotification with this name is broadcasted shortly after receiving device id from mobile platform
48
+ * Primary-application may use this notification to manage the received device id
49
+ */
50
+ extern NSString* kSMNotification_Event_DidReceiveDeviceId;
48
51
 
49
52
 
50
53
  /**
@@ -53,7 +56,6 @@ extern NSString* kSMNotification_Event_DidReceiveInAppContent;
53
56
  */
54
57
  extern NSString* kSMNotification_Data_ButtonData;
55
58
 
56
-
57
59
  /**
58
60
  * NSString representing a key to retrieve an object inside NSNotification
59
61
  * Use the key kSMNotification_Data_RemoteNotification to retrieve an NSDictionary instance with push ID and name
@@ -70,4 +72,10 @@ extern NSString* kSMNotification_Data_InAppMessage;
70
72
  * NSString representing a key to retrieve an object inside NSNotification
71
73
  * Use the key kSMNotification_Data_InAppContent to retrieve an NSDictionary instance with an array of in app contents categories as key and number of in app contents for the category as value
72
74
  */
73
- extern NSString* kSMNotification_Data_InAppContent;
75
+ extern NSString* kSMNotification_Data_InAppContent;
76
+
77
+ /**
78
+ * NSString representing a key to retrieve a string inside NSNotification
79
+ * Use the key kSMNotification_Data_DeviceId to retrieve an NString instance with device id value
80
+ */
81
+ extern NSString* kSMNotification_Data_DeviceId;
@@ -8,30 +8,26 @@
8
8
 
9
9
  #import <Foundation/Foundation.h>
10
10
 
11
- /*!
12
- *
13
- * #SMNotificationAnnotationData :#
14
- */
15
11
  @interface SMNotificationAnnotationData : NSObject
16
12
 
17
13
  /*!
18
14
  * NSString instance providing the title of the annotation
19
15
  */
20
- @property (nonatomic, strong) NSString *titleAnnotation;
16
+ @property (readonly, nonatomic) NSString *_Nullable titleAnnotation;
21
17
 
22
18
  /*!
23
19
  * NSString instance providing the description of the annotation
24
20
  */
25
- @property (nonatomic, strong) NSString *descriptionAnnotation;
21
+ @property (readonly, nonatomic) NSString *_Nullable descriptionAnnotation;
26
22
 
27
23
  /*!
28
24
  * NSString instance providing the latitude of the annotation
29
25
  */
30
- @property (nonatomic) float latitude;
26
+ @property (readonly, nonatomic) float latitude;
31
27
 
32
28
  /*!
33
29
  * NSString instance providing the longitude of the message
34
30
  */
35
- @property (nonatomic) float longitude;
31
+ @property (readonly, nonatomic) float longitude;
36
32
 
37
33
  @end
@@ -10,16 +10,11 @@
10
10
 
11
11
  #import "SMLink.h"
12
12
 
13
-
14
-
15
-
16
13
  /*!
17
- * @brief SMNotificationButtonData
18
- * @discussion This class is used to wrap informations about a notification button.
14
+ * This class is used to wrap informations about a notification button.
19
15
  *
20
16
  * Additional information provided in [SMManager](SMManager)
21
17
  */
22
18
  @interface SMNotificationButtonData : SMLink
23
19
 
24
-
25
20
  @end
@@ -6,9 +6,8 @@
6
6
  // Copyright (c) 2015 Selligent. All rights reserved.
7
7
  //
8
8
 
9
-
10
9
  /*!
11
- * This enumeration declares all known buttun-type
10
+ * This enumeration declares all known button-type
12
11
  */
13
12
  typedef NS_ENUM(NSInteger, SMNotificationButtonType) {
14
13
  /*!
@@ -89,15 +88,3 @@ typedef NS_ENUM(NSInteger, SMNotificationButtonType) {
89
88
  */
90
89
  kSMNotificationButtonType_DeepLink = 13
91
90
  };
92
-
93
-
94
-
95
-
96
-
97
-
98
-
99
-
100
-
101
-
102
-
103
-
@@ -0,0 +1,31 @@
1
+ //
2
+ // SMNotificationMessage.h
3
+ // MobileSDK
4
+ //
5
+ // Created by Walter Tricknot on 17/01/2017.
6
+ // Copyright © 2017 Selligent. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import "SMInAppMessage.h"
11
+ #import "SMNotificationButtonData.h"
12
+
13
+ @interface SMNotificationMessage : SMInAppMessage
14
+
15
+ /*!
16
+ * NSString instance providing url of the Rich media attached to the remote-notification
17
+ */
18
+ @property (readonly, nonatomic) NSString*_Nullable mediaUrl;
19
+
20
+ /*!
21
+ * SMNotificationButtonData instance providing the main action behind the remote-notification banner
22
+ * @see SMNotificationButtonData
23
+ */
24
+ @property (readonly, nonatomic) SMNotificationButtonData*_Nullable mainAction;
25
+
26
+ /*!
27
+ * NSArray of SMLink objects from the remote-notification
28
+ */
29
+ @property (readonly, nonatomic) NSArray*_Nullable notificationButtons;
30
+
31
+ @end