react-native-netmera 1.11.3 → 2.0.0-alpha01
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/README.md +109 -120
- package/RNNetmera.podspec +30 -14
- package/android/build.gradle +83 -19
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +0 -5
- package/android/src/main/AndroidManifestNew.xml +5 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmera.kt +24 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraCategoryObject.kt +54 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraConfiguration.kt +108 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraEvent.kt +24 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraModule.kt +694 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPackage.kt +17 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushBroadcastReceiver.kt +81 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushHeadlessService.kt +32 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraUtil.kt +218 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraWebWidgetCallbacks.kt +25 -0
- package/ios/AnyCodable/AnyCodable.swift +151 -0
- package/ios/AnyCodable/AnyDecodable.swift +192 -0
- package/ios/AnyCodable/AnyEncodable.swift +295 -0
- package/ios/RNNetmera-Bridging-Header.h +3 -0
- package/ios/RNNetmera.mm +143 -0
- package/ios/RNNetmera.swift +759 -0
- package/ios/RNNetmeraCategoryObject.swift +61 -0
- package/ios/RNNetmeraEvent.swift +26 -0
- package/ios/RNNetmeraPushLifecycleDelegate.swift +47 -0
- package/ios/RNNetmeraRCTEventEmitter.mm +8 -0
- package/ios/RNNetmeraRCTEventEmitter.swift +134 -0
- package/ios/RNNetmeraUtils.swift +233 -0
- package/lib/module/Netmera.js +256 -0
- package/lib/module/Netmera.js.map +1 -0
- package/lib/module/events/NetmeraEvent.js +8 -0
- package/lib/module/events/NetmeraEvent.js.map +1 -0
- package/lib/module/events/NetmeraEventBannerOpen.js +13 -0
- package/lib/module/events/NetmeraEventBannerOpen.js.map +1 -0
- package/lib/module/events/NetmeraEventBatteryLevel.js +10 -0
- package/lib/module/events/NetmeraEventBatteryLevel.js.map +1 -0
- package/lib/module/events/NetmeraEventCategoryView.js +13 -0
- package/lib/module/events/NetmeraEventCategoryView.js.map +1 -0
- package/lib/module/events/NetmeraEventInAppPurchase.js +28 -0
- package/lib/module/events/NetmeraEventInAppPurchase.js.map +1 -0
- package/lib/module/events/NetmeraEventLogin.js +10 -0
- package/lib/module/events/NetmeraEventLogin.js.map +1 -0
- package/lib/module/events/NetmeraEventRegister.js +10 -0
- package/lib/module/events/NetmeraEventRegister.js.map +1 -0
- package/lib/module/events/NetmeraEventScreenView.js +22 -0
- package/lib/module/events/NetmeraEventScreenView.js.map +1 -0
- package/lib/module/events/NetmeraEventSearch.js +13 -0
- package/lib/module/events/NetmeraEventSearch.js.map +1 -0
- package/lib/module/events/NetmeraEventShare.js +13 -0
- package/lib/module/events/NetmeraEventShare.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventCartAddProduct.js +13 -0
- package/lib/module/events/commerce/NetmeraEventCartAddProduct.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventCartRemoveProduct.js +10 -0
- package/lib/module/events/commerce/NetmeraEventCartRemoveProduct.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventCartView.js +13 -0
- package/lib/module/events/commerce/NetmeraEventCartView.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventOrderCancel.js +19 -0
- package/lib/module/events/commerce/NetmeraEventOrderCancel.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventProductComment.js +7 -0
- package/lib/module/events/commerce/NetmeraEventProductComment.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventProductRate.js +10 -0
- package/lib/module/events/commerce/NetmeraEventProductRate.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventProductView.js +7 -0
- package/lib/module/events/commerce/NetmeraEventProductView.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventPurchase.js +34 -0
- package/lib/module/events/commerce/NetmeraEventPurchase.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventWishList.js +7 -0
- package/lib/module/events/commerce/NetmeraEventWishList.js.map +1 -0
- package/lib/module/events/commerce/NetmeraLineItem.js +9 -0
- package/lib/module/events/commerce/NetmeraLineItem.js.map +1 -0
- package/lib/module/events/commerce/NetmeraProduct.js +46 -0
- package/lib/module/events/commerce/NetmeraProduct.js.map +1 -0
- package/lib/module/events/media/NetmeraEventContent.js +42 -0
- package/lib/module/events/media/NetmeraEventContent.js.map +1 -0
- package/lib/module/events/media/NetmeraEventContentComment.js +7 -0
- package/lib/module/events/media/NetmeraEventContentComment.js.map +1 -0
- package/lib/module/events/media/NetmeraEventContentRate.js +10 -0
- package/lib/module/events/media/NetmeraEventContentRate.js.map +1 -0
- package/lib/module/events/media/NetmeraEventContentView.js +7 -0
- package/lib/module/events/media/NetmeraEventContentView.js.map +1 -0
- package/lib/module/index.js +43 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/models/NMCategoryPreference.js +8 -0
- package/lib/module/models/NMCategoryPreference.js.map +1 -0
- package/lib/module/models/NMInboxStatus.js +11 -0
- package/lib/module/models/NMInboxStatus.js.map +1 -0
- package/lib/module/models/NMInboxStatusCountFilter.js +12 -0
- package/lib/module/models/NMInboxStatusCountFilter.js.map +1 -0
- package/lib/module/models/NetmeraCategory.js +8 -0
- package/lib/module/models/NetmeraCategory.js.map +1 -0
- package/lib/module/models/NetmeraCategoryFilter.js +8 -0
- package/lib/module/models/NetmeraCategoryFilter.js.map +1 -0
- package/lib/module/models/NetmeraCouponObject.js +8 -0
- package/lib/module/models/NetmeraCouponObject.js.map +1 -0
- package/lib/module/models/NetmeraInbox.js +8 -0
- package/lib/module/models/NetmeraInbox.js.map +1 -0
- package/lib/module/models/NetmeraInboxFilter.js +8 -0
- package/lib/module/models/NetmeraInboxFilter.js.map +1 -0
- package/lib/module/models/NetmeraProfileAttribute.js +75 -0
- package/lib/module/models/NetmeraProfileAttribute.js.map +1 -0
- package/lib/module/models/NetmeraUser.js +89 -0
- package/lib/module/models/NetmeraUser.js.map +1 -0
- package/lib/module/models/NetmeraUserProfile.js +58 -0
- package/lib/module/models/NetmeraUserProfile.js.map +1 -0
- package/lib/module/models/NotificationPermissionStatus.js +10 -0
- package/lib/module/models/NotificationPermissionStatus.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/utils/DeviceUtils.js +10 -0
- package/lib/module/utils/DeviceUtils.js.map +1 -0
- package/lib/module/utils/Optional.js +32 -0
- package/lib/module/utils/Optional.js.map +1 -0
- package/lib/module/utils/RNNetmera.js +16 -0
- package/lib/module/utils/RNNetmera.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/Netmera.d.ts +70 -0
- package/lib/typescript/src/Netmera.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEvent.d.ts +5 -0
- package/lib/typescript/src/events/NetmeraEvent.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventBannerOpen.d.ts +9 -0
- package/lib/typescript/src/events/NetmeraEventBannerOpen.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventBatteryLevel.d.ts +7 -0
- package/lib/typescript/src/events/NetmeraEventBatteryLevel.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventCategoryView.d.ts +9 -0
- package/lib/typescript/src/events/NetmeraEventCategoryView.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventInAppPurchase.d.ts +19 -0
- package/lib/typescript/src/events/NetmeraEventInAppPurchase.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventLogin.d.ts +7 -0
- package/lib/typescript/src/events/NetmeraEventLogin.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventRegister.d.ts +7 -0
- package/lib/typescript/src/events/NetmeraEventRegister.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventScreenView.d.ts +15 -0
- package/lib/typescript/src/events/NetmeraEventScreenView.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventSearch.d.ts +9 -0
- package/lib/typescript/src/events/NetmeraEventSearch.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventShare.d.ts +9 -0
- package/lib/typescript/src/events/NetmeraEventShare.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventCartAddProduct.d.ts +9 -0
- package/lib/typescript/src/events/commerce/NetmeraEventCartAddProduct.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventCartRemoveProduct.d.ts +7 -0
- package/lib/typescript/src/events/commerce/NetmeraEventCartRemoveProduct.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventCartView.d.ts +9 -0
- package/lib/typescript/src/events/commerce/NetmeraEventCartView.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventOrderCancel.d.ts +13 -0
- package/lib/typescript/src/events/commerce/NetmeraEventOrderCancel.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventProductComment.d.ts +5 -0
- package/lib/typescript/src/events/commerce/NetmeraEventProductComment.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventProductRate.d.ts +7 -0
- package/lib/typescript/src/events/commerce/NetmeraEventProductRate.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventProductView.d.ts +5 -0
- package/lib/typescript/src/events/commerce/NetmeraEventProductView.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventPurchase.d.ts +24 -0
- package/lib/typescript/src/events/commerce/NetmeraEventPurchase.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventWishList.d.ts +5 -0
- package/lib/typescript/src/events/commerce/NetmeraEventWishList.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraLineItem.d.ts +6 -0
- package/lib/typescript/src/events/commerce/NetmeraLineItem.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraProduct.d.ts +23 -0
- package/lib/typescript/src/events/commerce/NetmeraProduct.d.ts.map +1 -0
- package/lib/typescript/src/events/media/NetmeraEventContent.d.ts +23 -0
- package/lib/typescript/src/events/media/NetmeraEventContent.d.ts.map +1 -0
- package/lib/typescript/src/events/media/NetmeraEventContentComment.d.ts +5 -0
- package/lib/typescript/src/events/media/NetmeraEventContentComment.d.ts.map +1 -0
- package/lib/typescript/src/events/media/NetmeraEventContentRate.d.ts +7 -0
- package/lib/typescript/src/events/media/NetmeraEventContentRate.d.ts.map +1 -0
- package/lib/typescript/src/events/media/NetmeraEventContentView.d.ts +5 -0
- package/lib/typescript/src/events/media/NetmeraEventContentView.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +39 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/models/NMCategoryPreference.d.ts +6 -0
- package/lib/typescript/src/models/NMCategoryPreference.d.ts.map +1 -0
- package/lib/typescript/src/models/NMInboxStatus.d.ts +8 -0
- package/lib/typescript/src/models/NMInboxStatus.d.ts.map +1 -0
- package/lib/typescript/src/models/NMInboxStatusCountFilter.d.ts +7 -0
- package/lib/typescript/src/models/NMInboxStatusCountFilter.d.ts.map +1 -0
- package/lib/typescript/src/models/NetmeraCategory.d.ts +10 -0
- package/lib/typescript/src/models/NetmeraCategory.d.ts.map +1 -0
- package/lib/typescript/src/models/NetmeraCategoryFilter.d.ts +6 -0
- package/lib/typescript/src/models/NetmeraCategoryFilter.d.ts.map +1 -0
- package/lib/typescript/src/models/NetmeraCouponObject.d.ts +8 -0
- package/lib/typescript/src/models/NetmeraCouponObject.d.ts.map +1 -0
- package/lib/typescript/src/models/NetmeraInbox.d.ts +22 -0
- package/lib/typescript/src/models/NetmeraInbox.d.ts.map +1 -0
- package/lib/typescript/src/models/NetmeraInboxFilter.d.ts +7 -0
- package/lib/typescript/src/models/NetmeraInboxFilter.d.ts.map +1 -0
- package/lib/typescript/src/models/NetmeraProfileAttribute.d.ts +33 -0
- package/lib/typescript/src/models/NetmeraProfileAttribute.d.ts.map +1 -0
- package/lib/typescript/src/models/NetmeraUser.d.ts +25 -0
- package/lib/typescript/src/models/NetmeraUser.d.ts.map +1 -0
- package/lib/typescript/src/models/NetmeraUserProfile.d.ts +21 -0
- package/lib/typescript/src/models/NetmeraUserProfile.d.ts.map +1 -0
- package/lib/typescript/src/models/NotificationPermissionStatus.d.ts +7 -0
- package/lib/typescript/src/models/NotificationPermissionStatus.d.ts.map +1 -0
- package/lib/typescript/src/utils/DeviceUtils.d.ts +3 -0
- package/lib/typescript/src/utils/DeviceUtils.d.ts.map +1 -0
- package/lib/typescript/src/utils/Optional.d.ts +15 -0
- package/lib/typescript/src/utils/Optional.d.ts.map +1 -0
- package/lib/typescript/src/utils/RNNetmera.d.ts +5 -0
- package/lib/typescript/src/utils/RNNetmera.d.ts.map +1 -0
- package/package.json +104 -17
- package/src/Netmera.ts +139 -88
- package/src/events/NetmeraEvent.ts +1 -1
- package/src/events/NetmeraEventBannerOpen.ts +4 -4
- package/src/events/NetmeraEventBatteryLevel.ts +3 -3
- package/src/events/NetmeraEventCategoryView.ts +4 -4
- package/src/events/NetmeraEventInAppPurchase.ts +10 -10
- package/src/events/NetmeraEventLogin.ts +3 -3
- package/src/events/NetmeraEventRegister.ts +3 -3
- package/src/events/NetmeraEventScreenView.ts +7 -7
- package/src/events/NetmeraEventSearch.ts +4 -4
- package/src/events/NetmeraEventShare.ts +4 -4
- package/src/events/commerce/NetmeraEventCartAddProduct.ts +4 -4
- package/src/events/commerce/NetmeraEventCartRemoveProduct.ts +3 -3
- package/src/events/commerce/NetmeraEventCartView.ts +4 -4
- package/src/events/commerce/NetmeraEventOrderCancel.ts +6 -6
- package/src/events/commerce/NetmeraEventProductComment.ts +2 -2
- package/src/events/commerce/NetmeraEventProductRate.ts +3 -3
- package/src/events/commerce/NetmeraEventProductView.ts +2 -2
- package/src/events/commerce/NetmeraEventPurchase.ts +13 -13
- package/src/events/commerce/NetmeraEventWishList.ts +2 -2
- package/src/events/commerce/NetmeraLineItem.ts +2 -2
- package/src/events/commerce/NetmeraProduct.ts +10 -10
- package/src/events/media/NetmeraEventContent.ts +8 -8
- package/src/events/media/NetmeraEventContentComment.ts +2 -2
- package/src/events/media/NetmeraEventContentRate.ts +3 -3
- package/src/events/media/NetmeraEventContentView.ts +2 -2
- package/src/index.ts +87 -0
- package/src/models/NMCategoryPreference.ts +1 -1
- package/src/models/NMInboxStatusCountFilter.ts +1 -1
- package/src/models/NetmeraCategory.ts +2 -2
- package/src/models/NetmeraCategoryFilter.ts +1 -1
- package/src/models/NetmeraCouponObject.ts +1 -1
- package/src/models/NetmeraInbox.ts +1 -1
- package/src/models/NetmeraInboxFilter.ts +1 -1
- package/src/models/NetmeraProfileAttribute.ts +81 -0
- package/src/models/NetmeraUser.ts +76 -74
- package/src/models/NetmeraUserProfile.ts +67 -0
- package/src/models/NotificationPermissionStatus.ts +4 -4
- package/src/utils/DeviceUtils.ts +3 -3
- package/src/utils/Optional.ts +31 -0
- package/src/utils/RNNetmera.ts +24 -0
- package/.eslintignore +0 -7
- package/.gitattributes +0 -1
- package/.github/workflows/code_quality_check.yaml +0 -38
- package/.prettierignore +0 -14
- package/.yarnrc.yml +0 -1
- package/android/.project +0 -17
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +0 -6
- package/android/gradlew +0 -172
- package/android/gradlew.bat +0 -84
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmera.java +0 -24
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraCategoryObject.java +0 -56
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraConfiguration.java +0 -154
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraEvent.java +0 -36
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraModule.java +0 -631
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPackage.java +0 -35
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushBroadcastReceiver.java +0 -86
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushHeadlessService.java +0 -32
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraUser.java +0 -24
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraUtil.java +0 -354
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraWebWidgetCallbacks.java +0 -27
- package/index.ts +0 -80
- package/ios/RNNetmera.h +0 -32
- package/ios/RNNetmera.m +0 -507
- package/ios/RNNetmera.xcodeproj/project.pbxproj +0 -316
- package/ios/RNNetmera.xcodeproj/xcshareddata/xcschemes/RNNetmera.xcscheme +0 -67
- package/ios/RNNetmera.xcworkspace/contents.xcworkspacedata +0 -9
- package/ios/RNNetmeraCategoryObject.h +0 -16
- package/ios/RNNetmeraCategoryObject.m +0 -59
- package/ios/RNNetmeraEvent.h +0 -17
- package/ios/RNNetmeraEvent.m +0 -27
- package/ios/RNNetmeraRCTEventEmitter.h +0 -23
- package/ios/RNNetmeraRCTEventEmitter.m +0 -142
- package/ios/RNNetmeraUser.h +0 -15
- package/ios/RNNetmeraUser.m +0 -19
- package/ios/RNNetmeraUtils.h +0 -27
- package/ios/RNNetmeraUtils.m +0 -128
- package/scripts/update-version.js +0 -38
- package/scripts/yarn_rebuild.sh +0 -31
- package/tsconfig.json +0 -3
package/README.md
CHANGED
|
@@ -93,141 +93,114 @@ apply plugin: 'com.huawei.agconnect'
|
|
|
93
93
|
|
|
94
94
|
### Setup - iOS Part
|
|
95
95
|
|
|
96
|
-
1.
|
|
96
|
+
1. Add the following post_install block to the end of your Podfile.
|
|
97
97
|
|
|
98
98
|
```
|
|
99
|
-
|
|
99
|
+
post_install do |installer|
|
|
100
|
+
installer.pods_project.targets.each do |target|
|
|
101
|
+
if target.name.include?('Swinject')
|
|
102
|
+
target.build_configurations.each do |config|
|
|
103
|
+
config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
100
108
|
```
|
|
101
109
|
|
|
102
|
-
2.
|
|
110
|
+
2. Navigate to ios folder in your terminal and run the following command.
|
|
103
111
|
|
|
104
|
-
|
|
112
|
+
```
|
|
113
|
+
$ pod install
|
|
114
|
+
```
|
|
105
115
|
|
|
116
|
+
3. Enable push notifications for your project
|
|
106
117
|
1. If you have not generated a valid push notification certificate yet,
|
|
107
118
|
generate one and then export by following the steps explained in [Configuring Push Notifications section of App Distribution Guide](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/establishing_a_certificate-based_connection_to_apns#2947597)
|
|
108
119
|
2. Export the generated push certificate in .p12 format and upload to Netmera Dashboard.
|
|
109
120
|
3. Enable Push Notifications capability for your application as explained in [Enable Push Notifications](https://developer.netmera.com/en/IOS/Quick-Start#enable-push-notifications) guide.
|
|
110
121
|
4. Enable Remote notifications background mode for your application as explained in [Configuring Background Modes](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app#2980038) guide.
|
|
111
122
|
|
|
112
|
-
4.
|
|
113
|
-
|
|
114
|
-
#### AppDelegate.h
|
|
123
|
+
4. Add the `Netmera-Config.plist` file to your ios/YOUR-APP directory.
|
|
115
124
|
|
|
116
125
|
```
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
126
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
127
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
128
|
+
<plist version="1.0">
|
|
129
|
+
<dict>
|
|
130
|
+
<key>sdk_params</key>
|
|
131
|
+
<dict>
|
|
132
|
+
<key>api_key</key>
|
|
133
|
+
<string>YOUR-API-KEY</string>
|
|
134
|
+
</dict>
|
|
135
|
+
</dict>
|
|
136
|
+
</plist>
|
|
137
|
+
```
|
|
124
138
|
|
|
125
|
-
|
|
139
|
+
- If you are using Netmera on-premises, you must add your server URL as the base_url key inside sdk_params.
|
|
126
140
|
|
|
127
|
-
@end
|
|
128
141
|
```
|
|
142
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
143
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
144
|
+
<plist version="1.0">
|
|
145
|
+
<dict>
|
|
146
|
+
<key>sdk_params</key>
|
|
147
|
+
<dict>
|
|
148
|
+
...
|
|
149
|
+
<key>base_url</key>
|
|
150
|
+
<string>YOUR-BASE-URL</string>
|
|
151
|
+
</dict>
|
|
152
|
+
</dict>
|
|
153
|
+
</plist>
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
5. If you want to use Android alike message sending from iOS to react native please consider shaping your AppDelegate class as following.
|
|
129
157
|
|
|
130
|
-
#### AppDelegate.
|
|
158
|
+
#### AppDelegate.swift
|
|
131
159
|
|
|
132
160
|
- Add the following to the top of AppDelegate.m file.
|
|
133
161
|
|
|
134
162
|
```
|
|
135
|
-
|
|
136
|
-
#import <RNNetmera/RNNetmeraUtils.h>
|
|
137
|
-
#import <RNNetmera/RNNetmera.h>
|
|
163
|
+
import RNNetmera
|
|
138
164
|
```
|
|
139
165
|
|
|
140
|
-
- Add the following
|
|
166
|
+
- Add the following line into the `didFinishLaunchingWithOptions` method.
|
|
141
167
|
|
|
168
|
+
```
|
|
169
|
+
RNNetmera.initNetmera()
|
|
142
170
|
```
|
|
143
171
|
|
|
144
|
-
|
|
145
|
-
{
|
|
146
|
-
// Add this line to set notification delegate
|
|
147
|
-
[UNUserNotificationCenter currentNotificationCenter].delegate = self;
|
|
148
|
-
|
|
149
|
-
...
|
|
150
|
-
|
|
151
|
-
// Add these lines to init Netmera
|
|
152
|
-
[RNNetmera logging: YES]; // This is for enabling Netmera logs.
|
|
153
|
-
[RNNetmera initNetmera:[<YOUR NETMERA API KEY>]]; // Replace this with your own NETMERA API KEY.
|
|
154
|
-
[RNNetmera requestPushNotificationAuthorization];
|
|
155
|
-
[RNNetmera setPushDelegate:self];
|
|
156
|
-
[Netmera setAppGroupName:<YOUR APP GROUP NAME>]; // Set your app group name
|
|
172
|
+
6. In order to use iOS10 Media Push, follow the instructions in [Netmera Product Hub.](https://user.netmera.com/netmera-developer-guide/platforms/ios/new-ios-swift/push-notifications/media-push) Differently, you should add the pods to the top of the `Podfile` as below.
|
|
157
173
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
174
|
+
```
|
|
175
|
+
// For receiving Media Push, you must add Netmera pods to top of your Podfile.
|
|
176
|
+
pod 'NetmeraNotificationServiceExtension', "4.15.0"
|
|
177
|
+
pod "NetmeraNotificationContentExtension", "4.15.0"
|
|
178
|
+
```
|
|
161
179
|
|
|
162
|
-
|
|
180
|
+
7. In order to use the widget URL callback, add these lines into `AppDelegate.swift` file.
|
|
163
181
|
|
|
164
182
|
```
|
|
165
|
-
|
|
183
|
+
import NetmeraNotification
|
|
166
184
|
|
|
167
185
|
...
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
-(void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler
|
|
173
|
-
{
|
|
174
|
-
if ([response.actionIdentifier isEqual:UNNotificationDismissActionIdentifier]) {
|
|
175
|
-
[RNNetmeraRCTEventEmitter onPushDismiss: @{@"userInfo" : response.notification.request.content.userInfo}];
|
|
176
|
-
} else if ([response.actionIdentifier isEqual:UNNotificationDefaultActionIdentifier]) {
|
|
177
|
-
[RNNetmeraRCTEventEmitter onPushOpen: @{@"userInfo" : response.notification.request.content.userInfo}];
|
|
186
|
+
override func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
|
|
187
|
+
...
|
|
188
|
+
Netmera.setPushDelegate(self)
|
|
189
|
+
..
|
|
178
190
|
}
|
|
179
|
-
|
|
180
|
-
}
|
|
191
|
+
...
|
|
181
192
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
[RNNetmeraRCTEventEmitter onPushReceive: @{@"userInfo" : notification.request.content.userInfo}];
|
|
187
|
-
}
|
|
193
|
+
extension AppDelegate: NetmeraPushDelegate {
|
|
194
|
+
func shouldHandleOpenURL(_ url: URL, for pushObject: NetmeraNotificationCore.NetmeraBasePush) -> Bool {
|
|
195
|
+
return false
|
|
196
|
+
}
|
|
188
197
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
if(deviceToken == nil) {
|
|
192
|
-
return;
|
|
198
|
+
func handleOpenURL(_ url: URL, for pushObject: NetmeraNotificationCore.NetmeraBasePush) {
|
|
199
|
+
RNNetmeraRCTEventEmitter.handleOpenURL(url, forPushObject: pushObject)
|
|
193
200
|
}
|
|
194
|
-
[RNNetmeraRCTEventEmitter onPushRegister: @{@"pushToken" : deviceToken}];
|
|
195
201
|
}
|
|
196
|
-
|
|
197
|
-
@end
|
|
198
|
-
|
|
199
202
|
```
|
|
200
203
|
|
|
201
|
-
For example if you trigger `[RNNetmeraRCTEventEmitter onPushReceive: @{@"userInfo" : notification.request.content.userInfo}]` from AppDelegate, in the react native part the following method will be triggered.
|
|
202
|
-
|
|
203
|
-
```
|
|
204
|
-
export const onPushReceive = async (message) => {
|
|
205
|
-
console.log("onPushReceive: ", message);
|
|
206
|
-
};
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
4. In order to use iOS10 Media Push, follow the instructions in [Netmera Product Hub.](https://developer.netmera.com/en/IOS/Push-Notifications#using-ios10-media-push) Differently, you should add the pods to the top of the `Podfile` as below.
|
|
210
|
-
|
|
211
|
-
```
|
|
212
|
-
// For receiving Media Push, you must add Netmera pods to top of your Podfile.
|
|
213
|
-
pod "Netmera", "3.27.0-WithoutDependency"
|
|
214
|
-
pod "Netmera/NotificationServiceExtension", "3.27.0-WithoutDependency"
|
|
215
|
-
pod "Netmera/NotificationContentExtension", "3.27.0-WithoutDependency"
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
5. In order to use the widget URL callback, add these methods to between `@implementation AppDelegate` and `@end`.
|
|
219
|
-
|
|
220
|
-
```
|
|
221
|
-
// Required code block to handle widget URL's in React Native
|
|
222
|
-
- (BOOL)shouldHandleOpenURL:(NSURL *)url forPushObject:(NetmeraPushObject *)object {
|
|
223
|
-
return NO;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
- (void)handleOpenURL:(NSURL *)url forPushObject:(NetmeraPushObject *)object {
|
|
227
|
-
[RNNetmeraRCTEventEmitter handleOpenURL:url forPushObject:object];
|
|
228
|
-
}
|
|
229
|
-
```
|
|
230
|
-
|
|
231
204
|
### Setup - React Native Part
|
|
232
205
|
|
|
233
206
|
1. Create a new `NetmeraPushHeadlessTask.ts` inside your React Native project.
|
|
@@ -359,40 +332,53 @@ HmsPushMessaging.setBackgroundMessageHandler(async dataMessage => {
|
|
|
359
332
|
|
|
360
333
|
### Calling React Native methods
|
|
361
334
|
|
|
362
|
-
#####
|
|
335
|
+
##### Identify User Example
|
|
363
336
|
|
|
364
337
|
```
|
|
365
|
-
const
|
|
338
|
+
const identifyUser = () => {
|
|
366
339
|
const user = new NetmeraUser();
|
|
367
340
|
user.userId = <userId>;
|
|
368
|
-
user.
|
|
369
|
-
user.surname = <surname>;
|
|
341
|
+
user.email = <email>;
|
|
370
342
|
user.msisdn = <msisdn>;
|
|
371
|
-
user.
|
|
372
|
-
|
|
373
|
-
//
|
|
374
|
-
Netmera.
|
|
375
|
-
|
|
376
|
-
console.log(
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
343
|
+
user.wpNumber = <whatsappNumber>;
|
|
344
|
+
|
|
345
|
+
// Identify user with callback
|
|
346
|
+
Netmera.identifyUser(user, (success, error) => {
|
|
347
|
+
if (success) {
|
|
348
|
+
console.log("User identified successfully")
|
|
349
|
+
} else {
|
|
350
|
+
console.error(error?.message)
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
|
|
354
|
+
// Identify user without callback
|
|
355
|
+
Netmera.identifyUser(user);
|
|
381
356
|
}
|
|
382
357
|
```
|
|
383
358
|
|
|
359
|
+
##### Update User Profile Example
|
|
360
|
+
|
|
384
361
|
```
|
|
385
|
-
const
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
362
|
+
const sendUserProfileUpdate = () => {
|
|
363
|
+
const userProfile = new NetmeraUserProfile();
|
|
364
|
+
userProfile.name.set('John');
|
|
365
|
+
userProfile.surname.set('Doe');
|
|
366
|
+
userProfile.dateOfBirth.set(new Date().getTime());
|
|
367
|
+
userProfile.gender.set(Gender.MALE);
|
|
368
|
+
userProfile.externalSegments.set(['segment1', 'segment2']);
|
|
392
369
|
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
370
|
+
// Update user profile with callback
|
|
371
|
+
Netmera.updateUserProfile(userProfile, (success, error) => {
|
|
372
|
+
if (success) {
|
|
373
|
+
...
|
|
374
|
+
} else {
|
|
375
|
+
...
|
|
376
|
+
}
|
|
377
|
+
});
|
|
378
|
+
|
|
379
|
+
// Update user profile without callback
|
|
380
|
+
Netmera.updateUserProfile(userProfile);
|
|
381
|
+
};
|
|
396
382
|
```
|
|
397
383
|
|
|
398
384
|
##### Sending Event Examples
|
|
@@ -451,7 +437,10 @@ Note: Notification runtime permissions are required on Android 13 (API 33) or hi
|
|
|
451
437
|
Therefore, before calling the method, make sure your project targets an API of 33 and above.
|
|
452
438
|
|
|
453
439
|
```
|
|
454
|
-
|
|
440
|
+
Netmera.requestPushNotificationAuthorization()
|
|
441
|
+
.then((isGranted) => {
|
|
442
|
+
...
|
|
443
|
+
});
|
|
455
444
|
```
|
|
456
445
|
|
|
457
446
|
You can call the `checkNotificationPermission()` method if you need to know the status of permissions.
|
package/RNNetmera.podspec
CHANGED
|
@@ -4,20 +4,36 @@ package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
|
4
4
|
|
|
5
5
|
Pod::Spec.new do |s|
|
|
6
6
|
s.name = "RNNetmera"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
7
|
+
s.version = package["version"]
|
|
8
|
+
s.summary = package["description"]
|
|
9
|
+
s.description = <<-DESC
|
|
10
|
+
RNNetmera
|
|
11
|
+
DESC
|
|
12
|
+
s.homepage = "https://github.com/author/RNNetmera.git"
|
|
13
|
+
s.license = "MIT"
|
|
14
|
+
s.author = { "author" => "author@domain.cn" }
|
|
15
|
+
|
|
16
|
+
s.platforms = { :ios => min_ios_version_supported }
|
|
16
17
|
s.source = { :git => "https://github.com/author/RNNetmera.git", :tag => "master" }
|
|
17
|
-
s.source_files = "ios/**/*.{h,c,cc,cpp,m,mm,swift}"
|
|
18
|
-
s.requires_arc = true
|
|
19
18
|
|
|
20
|
-
s.
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
|
20
|
+
|
|
21
|
+
netmera_version = '4.15.0'
|
|
23
22
|
|
|
23
|
+
s.dependency "NetmeraAnalytic", netmera_version
|
|
24
|
+
s.dependency "NetmeraAnalyticAutotracking", netmera_version
|
|
25
|
+
s.dependency "NetmeraLiveActivity", netmera_version
|
|
26
|
+
s.dependency "NetmeraNotification", netmera_version
|
|
27
|
+
s.dependency "NetmeraAdvertisingId", netmera_version
|
|
28
|
+
s.dependency "NetmeraLocation", netmera_version
|
|
29
|
+
s.dependency "NetmeraGeofence", netmera_version
|
|
30
|
+
s.dependency "NetmeraNotificationInbox", netmera_version
|
|
31
|
+
|
|
32
|
+
# Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
|
|
33
|
+
# See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
|
|
34
|
+
if respond_to?(:install_modules_dependencies, true)
|
|
35
|
+
install_modules_dependencies(s)
|
|
36
|
+
else
|
|
37
|
+
s.dependency "React-Core"
|
|
38
|
+
end
|
|
39
|
+
end
|
package/android/build.gradle
CHANGED
|
@@ -1,29 +1,93 @@
|
|
|
1
|
-
|
|
1
|
+
buildscript {
|
|
2
|
+
ext.getExtOrDefault = { name ->
|
|
3
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['NetmeraReactSdk_' + name]
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
repositories {
|
|
7
|
+
google()
|
|
8
|
+
mavenCentral()
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
dependencies {
|
|
12
|
+
classpath "com.android.tools.build:gradle:8.7.2"
|
|
13
|
+
// noinspection DifferentKotlinGradleVersion
|
|
14
|
+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
rootProject.allprojects {
|
|
18
|
+
repositories {
|
|
19
|
+
google()
|
|
20
|
+
mavenCentral()
|
|
21
|
+
maven { url "https://release.netmera.com/release/android" }
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
apply plugin: "com.android.library"
|
|
27
|
+
apply plugin: "kotlin-android"
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def getExtOrIntegerDefault(name) {
|
|
31
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["NetmeraReactSdk_" + name]).toInteger()
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
def supportsNamespace() {
|
|
35
|
+
def parsed = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')
|
|
36
|
+
def major = parsed[0].toInteger()
|
|
37
|
+
def minor = parsed[1].toInteger()
|
|
38
|
+
|
|
39
|
+
// Namespace support was added in 7.3.0
|
|
40
|
+
return (major == 7 && minor >= 3) || major >= 8
|
|
41
|
+
}
|
|
2
42
|
|
|
3
43
|
android {
|
|
4
|
-
|
|
44
|
+
if (supportsNamespace()) {
|
|
45
|
+
namespace "com.netmera.reactnativesdk"
|
|
5
46
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
47
|
+
sourceSets {
|
|
48
|
+
main {
|
|
49
|
+
manifest.srcFile "src/main/AndroidManifestNew.xml"
|
|
50
|
+
}
|
|
9
51
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
|
|
55
|
+
|
|
56
|
+
defaultConfig {
|
|
57
|
+
minSdkVersion getExtOrIntegerDefault("minSdkVersion")
|
|
58
|
+
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
buildTypes {
|
|
62
|
+
release {
|
|
63
|
+
minifyEnabled false
|
|
18
64
|
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
lintOptions {
|
|
68
|
+
disable "GradleCompatible"
|
|
69
|
+
}
|
|
70
|
+
|
|
19
71
|
}
|
|
20
72
|
|
|
73
|
+
repositories {
|
|
74
|
+
mavenCentral()
|
|
75
|
+
google()
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
def netmeraAndroidVersion = '4.13.3'
|
|
79
|
+
|
|
80
|
+
def kotlin_version = getExtOrDefault("kotlinVersion")
|
|
81
|
+
|
|
21
82
|
dependencies {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
83
|
+
implementation "com.netmera:nmcore:${netmeraAndroidVersion}"
|
|
84
|
+
implementation "com.netmera:nmfcm:${netmeraAndroidVersion}"
|
|
85
|
+
implementation "com.netmera:nmhms:${netmeraAndroidVersion}"
|
|
86
|
+
implementation 'com.facebook.react:react-native:+'
|
|
26
87
|
|
|
27
|
-
|
|
28
|
-
|
|
88
|
+
implementation 'com.google.firebase:firebase-messaging:23.1.2'
|
|
89
|
+
implementation 'com.huawei.hms:push:6.11.0.300'
|
|
90
|
+
implementation "com.facebook.react:react-android"
|
|
91
|
+
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
29
92
|
}
|
|
93
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
package com.netmera.reactnativesdk
|
|
2
|
+
|
|
3
|
+
import android.app.Application
|
|
4
|
+
import android.content.ContentValues
|
|
5
|
+
import com.netmera.NMActivityLifecycleCallbacks
|
|
6
|
+
import com.netmera.Netmera
|
|
7
|
+
|
|
8
|
+
object RNNetmera {
|
|
9
|
+
@JvmStatic
|
|
10
|
+
fun initNetmera(netmeraConfiguration: RNNetmeraConfiguration) {
|
|
11
|
+
val application = netmeraConfiguration.context.applicationContext as Application
|
|
12
|
+
application.registerActivityLifecycleCallbacks(NMActivityLifecycleCallbacks(application))
|
|
13
|
+
Netmera.init(netmeraConfiguration.getNetmeraConfiguration())
|
|
14
|
+
setNetmeraHeaders()
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
private fun setNetmeraHeaders() {
|
|
18
|
+
val headerValues = ContentValues().apply {
|
|
19
|
+
put("X-netmera-framework", "react")
|
|
20
|
+
put("X-netmera-frameworkV", "2.0.0")
|
|
21
|
+
}
|
|
22
|
+
Netmera.setNetmeraHeaders(headerValues)
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
package com.netmera.reactnativesdk
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Arguments
|
|
4
|
+
import com.facebook.react.bridge.ReadableMap
|
|
5
|
+
import com.facebook.react.bridge.WritableArray
|
|
6
|
+
import com.facebook.react.bridge.WritableMap
|
|
7
|
+
import com.google.gson.Gson
|
|
8
|
+
import com.google.gson.JsonObject
|
|
9
|
+
import com.netmera.NetmeraCategory
|
|
10
|
+
import com.netmera.NetmeraCategoryFilter
|
|
11
|
+
import com.netmera.reactnativesdk.RNNetmeraUtil.mapPushObject
|
|
12
|
+
|
|
13
|
+
object RNNetmeraCategoryObject {
|
|
14
|
+
fun mapCategoryObjects(categoryObjects: MutableList<NetmeraCategory>): WritableArray {
|
|
15
|
+
val writableArray = Arguments.createArray()
|
|
16
|
+
for (category in categoryObjects) {
|
|
17
|
+
writableArray.pushMap(getCategoryObjectMap(category))
|
|
18
|
+
}
|
|
19
|
+
return writableArray
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
private fun getCategoryObjectMap(category: NetmeraCategory): WritableMap {
|
|
23
|
+
val map = Arguments.createMap()
|
|
24
|
+
map.putString("categoryName", category.categoryName)
|
|
25
|
+
map.putString("categoryStatus", Gson().toJson(category.status, JsonObject::class.java))
|
|
26
|
+
map.putInt("readCount", category.readCount)
|
|
27
|
+
map.putInt("unreadCount", category.unReadCount)
|
|
28
|
+
map.putInt("deletedCount", category.deletedCount)
|
|
29
|
+
map.putMap("lastMessage", mapPushObject(category.lastMessage))
|
|
30
|
+
|
|
31
|
+
return map
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
fun getInboxObject(map: ReadableMap): NetmeraCategoryFilter {
|
|
35
|
+
val builder = NetmeraCategoryFilter.Builder()
|
|
36
|
+
|
|
37
|
+
if (map.hasKey("status")) {
|
|
38
|
+
val status = map.getInt("status")
|
|
39
|
+
builder.status(status)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (map.hasKey("pageSize")) {
|
|
43
|
+
val pageSize = map.getInt("pageSize")
|
|
44
|
+
builder.pageSize(pageSize)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (map.hasKey("includeExpiredObjects")) {
|
|
48
|
+
val includeExpiredObjects = map.getBoolean("includeExpiredObjects")
|
|
49
|
+
builder.includeExpiredObjects(includeExpiredObjects)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return builder.build()
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
package com.netmera.reactnativesdk
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import android.util.Log
|
|
5
|
+
import com.netmera.NetmeraConfiguration
|
|
6
|
+
import com.netmera.callbacks.NMInAppMessageActionCallbacks
|
|
7
|
+
import com.netmera.callbacks.NMPushActionCallbacks
|
|
8
|
+
import com.netmera.callbacks.NMWebWidgetCallbacks
|
|
9
|
+
import com.netmera.nmfcm.NMFCMProvider
|
|
10
|
+
import com.netmera.nmhms.NMHMSProvider
|
|
11
|
+
import java.util.Collections
|
|
12
|
+
|
|
13
|
+
class RNNetmeraConfiguration private constructor(
|
|
14
|
+
val nmInAppMessageActionCallbacks: NMInAppMessageActionCallbacks?,
|
|
15
|
+
val nmPushActionCallbacks: NMPushActionCallbacks?,
|
|
16
|
+
val nmWebWidgetCallbacks: NMWebWidgetCallbacks?,
|
|
17
|
+
val context: Context,
|
|
18
|
+
val baseUrl: String?,
|
|
19
|
+
val huaweiSenderId: String?,
|
|
20
|
+
val apiKey: String?,
|
|
21
|
+
val firebaseSenderId: String?,
|
|
22
|
+
val logging: Boolean,
|
|
23
|
+
val sslPinKeys: List<String>?
|
|
24
|
+
) {
|
|
25
|
+
|
|
26
|
+
fun getNetmeraConfiguration(): NetmeraConfiguration {
|
|
27
|
+
val pushCallbacks = nmPushActionCallbacks ?: RNNetmeraPushBroadcastReceiver()
|
|
28
|
+
val webWidgetCallbacks = nmWebWidgetCallbacks ?: RNNetmeraWebWidgetCallbacks()
|
|
29
|
+
|
|
30
|
+
val builder = NetmeraConfiguration.Builder()
|
|
31
|
+
|
|
32
|
+
firebaseSenderId?.let { builder.firebaseSenderId(it) }
|
|
33
|
+
huaweiSenderId?.let { builder.huaweiSenderId(it) }
|
|
34
|
+
apiKey?.let { builder.apiKey(it) }
|
|
35
|
+
baseUrl?.let { builder.baseUrl(it) }
|
|
36
|
+
nmInAppMessageActionCallbacks?.let { builder.nmInAppMessageActionCallbacks(it) }
|
|
37
|
+
sslPinKeys?.let { builder.sslPinKeys(it) }
|
|
38
|
+
|
|
39
|
+
return builder
|
|
40
|
+
.logging(logging)
|
|
41
|
+
.disableSerializeRule(true)
|
|
42
|
+
.addProvider(NMFCMProvider())
|
|
43
|
+
.addProvider(NMHMSProvider())
|
|
44
|
+
.nmPushActionCallbacks(pushCallbacks)
|
|
45
|
+
.nmWebWidgetCallbacks(webWidgetCallbacks)
|
|
46
|
+
.build(context)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
class Builder {
|
|
50
|
+
private var nmInAppMessageActionCallbacks: NMInAppMessageActionCallbacks? = null
|
|
51
|
+
private var nmPushActionCallbacks: NMPushActionCallbacks? = null
|
|
52
|
+
private var nmWebWidgetCallbacks: NMWebWidgetCallbacks? = null
|
|
53
|
+
private var context: Context? = null
|
|
54
|
+
private var baseUrl: String? = null
|
|
55
|
+
private var huaweiSenderId: String? = null
|
|
56
|
+
private var apiKey: String? = null
|
|
57
|
+
private var firebaseSenderId: String? = null
|
|
58
|
+
private var logging: Boolean = false
|
|
59
|
+
private var sslPinKeys: List<String>? = null
|
|
60
|
+
|
|
61
|
+
fun nmInAppMessageActionCallbacks(callbacks: NMInAppMessageActionCallbacks) = apply {
|
|
62
|
+
this.nmInAppMessageActionCallbacks = callbacks
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
fun nmPushActionCallbacks(callbacks: NMPushActionCallbacks) = apply {
|
|
66
|
+
this.nmPushActionCallbacks = callbacks
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
fun nmWebWidgetCallbacks(callbacks: NMWebWidgetCallbacks) = apply {
|
|
70
|
+
this.nmWebWidgetCallbacks = callbacks
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
fun baseUrl(baseUrl: String) = apply { this.baseUrl = baseUrl }
|
|
74
|
+
|
|
75
|
+
fun huaweiSenderId(huaweiSenderId: String) = apply { this.huaweiSenderId = huaweiSenderId }
|
|
76
|
+
|
|
77
|
+
fun apiKey(apiKey: String) = apply { this.apiKey = apiKey }
|
|
78
|
+
|
|
79
|
+
fun firebaseSenderId(firebaseSenderId: String) = apply { this.firebaseSenderId = firebaseSenderId }
|
|
80
|
+
|
|
81
|
+
fun logging(logging: Boolean) = apply { this.logging = logging }
|
|
82
|
+
|
|
83
|
+
fun sslPinKeys(sslPinKey: String) = apply {
|
|
84
|
+
this.sslPinKeys = Collections.singletonList(sslPinKey)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
fun sslPinKeys(sslPinKeys: List<String>) = apply {
|
|
88
|
+
this.sslPinKeys = sslPinKeys
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
fun build(context: Context): RNNetmeraConfiguration {
|
|
92
|
+
this.context = context
|
|
93
|
+
return RNNetmeraConfiguration(
|
|
94
|
+
nmInAppMessageActionCallbacks,
|
|
95
|
+
nmPushActionCallbacks,
|
|
96
|
+
nmWebWidgetCallbacks,
|
|
97
|
+
context,
|
|
98
|
+
baseUrl,
|
|
99
|
+
huaweiSenderId,
|
|
100
|
+
apiKey,
|
|
101
|
+
firebaseSenderId,
|
|
102
|
+
logging,
|
|
103
|
+
sslPinKeys
|
|
104
|
+
)
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|