You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Generated Docs for "Podfile and CI fixes (#120)* Use 1.14.3 pod version specifically" (#122)
* Link to license file in README (#60)
Co-authored-by: Evan Masseau <>
* Updated readme to include troubleshooting steps when running pod install (#63)
updated readme
* Updating version to 0.1.1 (#66)
* 0.1.1
* updating version
* reverting back to use older rn version
* updating yarn lock
* removing changes to package lock file
* Fixes for React Native Apps <= 0.72.0 (#71)
* Fix the react-native gradle dependency
* Add a local property to enable specifying react-native version for the SDK for local development
* Specify Kotlin version that is compatible with Android SDK's (although this didn't seem to actually cause any build errors)
* Remove accidental use of an extension method that is technically SDK 24+
---------
Co-authored-by: Evan Masseau <>
* Update local.properties template files (#68)
* Add template local.properties file to example app
* Be clearer about VCS status of these files.
---------
Co-authored-by: Evan Masseau <>
* Bump example iOS project lockfile (#74)
I think this needs to be bumped when we increase the overall project version.
Co-authored-by: Evan Masseau <>
* Github CI Updates (#75)
* Move doc bot to its own file so we don't have to see it as skipped all the time.
* Use same ruby version as local dev environment
* Stop using `yarn pod-install` because it creates an erroneous xcode.env.local file that breaks the hermes build scripts.
---------
Co-authored-by: Evan Masseau <>
* Updating to iOS SDK 3.0.2 (#77)
* 0.1.1
* updated to us latest iOS SDK
* removing package lock
* Pod install | static linking issue | RCT Folly | Turbo modules (#70)
* 0.1.1
* removed turbo module stuff and added xcconfig
* removing package lock
* comitting example app pod lock file
---------
Co-authored-by: Evan Masseau <>
Co-authored-by: Evan C Masseau <[email protected]>
* Readme rewrite with references to native SDKs and Klaviyo help center (#62)
---------
Co-authored-by: Evan Masseau <>
Co-authored-by: Kenny Tsui <[email protected]>
* Release 0.1.2 (#84)
* 0.1.1
* Release 0.1.2
* removed package lock
* podlock file changes
* Break up CI files so we can get individual badges (#86)
* Break up CI files so we can get individual badges
* Add badges and fix names
---------
Co-authored-by: Evan Masseau <>
* Add action to publish to NPM after publishing a release (#82)
---------
Co-authored-by: Evan Masseau <>
* Update README.md (#90)
* Publish to NPM with the default npm registry configured in package.json (#92)
---------
Co-authored-by: Evan Masseau <>
* Updated iOS instructions in example app (#99)
* 0.1.1
* udpate the example app to implement push
* hanlded deep links
* removed package json lock file
* updated to addressed Evan comments in the pr
* Fix mistaken duplicate open push section (#95)
Co-authored-by: Evan Masseau <>
* Remove local.properties from git index (#96)
* remove local.properties from git index, changes were still being tracked despite gitignore
* missed variable
---------
Co-authored-by: Evan Masseau <>
* Update README.md (#105)
* Update README.md
* Update README.md
* Implemented deep links to call react native in example iOS app (#104)
* 0.1.1
* implemented deep linking calls to react native
* removed unused method
* removed package lock
* added deep linking hanlder
* [CHNL-5592] Adding troubleshooting guide linked from readme (#109)
* 0.1.1
* added troubleshooting
* removed packagfe lock
* added troibleshoting to the contents
* swapped android and ios
* [Dependabot] Bump ip from 1.1.8 to 1.1.9 (#111)
Bumps [ip](https://github.com/indutny/node-ip) from 1.1.8 to 1.1.9.
- [Commits](indutny/node-ip@v1.1.8...v1.1.9)
---
updated-dependencies:
- dependency-name: ip
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Add example app instructions to README, make use of Gemfile (#97)
* To make proper use of bundle, lockfile needs to be committed. I specified a cocoapods version since podfile.lock contains cocoapods version!
Add explicit instructions about example app
* Added alias for entire example app setup script
Try updating CI step to use gem to pin cocoapods version
---------
Co-authored-by: Evan Masseau <>
* Bridge initialize and setPushToken to RN layer (#98)
* Add an initialize method to react native layer
* Add set push token to RN layer
* Updated to latest versions of native SDKs
* Elaboration on example app initialize/setPushToken, use a consistent value for example API key
* SCREAMING_SNAKE_CASE
---------
Co-authored-by: Evan Masseau <>
* [CHNL-5370] Updating readme to include instructions on how to use `initialize` and `setToken` from RN code. (#113)
* 0.1.1
* added troubleshooting
* updated readme with initilize and set token instructions
* adding notifee stuff to trouble shooting guide
* removed duplicate android
* removed package.json
* some minor fixes
* added example on requesting permission
* Apply suggestions from code review
Co-authored-by: Evan C Masseau <[email protected]>
* minor updates
* review comments
* updated readme
---------
Co-authored-by: Evan C Masseau <[email protected]>
* Update to version 0.2.0 (#116)
Update to v 0.2.0
Co-authored-by: Evan Masseau <>
* Readme proofreading/formatting (#119)
Co-authored-by: Evan Masseau <>
* Podfile and CI fixes (#120)
* Use 1.14.3 pod version specifically
* Skip all caches if manually re executing CI
---------
Co-authored-by: Evan Masseau <>
* Generated docs for ad12079
---------
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Evan C Masseau <[email protected]>
Co-authored-by: Ajay Subramanya <[email protected]>
Co-authored-by: Kenny Tsui <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions <[email protected]>
Copy file name to clipboardExpand all lines: README.md
+92-91
Original file line number
Diff line number
Diff line change
@@ -111,16 +111,17 @@ so you can import Android Klaviyo SDK references from your Kotlin/Java files wit
111
111
112
112
#### React Native 0.73.x
113
113
114
-
There are no additional installation requirements. Android support is fully tested and verified,
115
-
including `minSdkVersion=23`.
114
+
There are no additional installation requirements. Android support is fully tested and verified.
116
115
117
116
#### React Native 0.68.x - 0.72.x
118
117
119
118
We have successfully compiled the Klaviyo React Native SDK in a bare React Native template app for these versions
120
119
with the following modifications to the `android/build.gradle` file:
121
120
122
-
- Set `compileSdkVersion=34`
123
121
- Set `minSdkVersion=23`
122
+
- Set `compileSdkVersion=34`
123
+
124
+
See [Android Troubleshooting](Troubleshooting.md#android-troubleshooting) for possible exceptions.
124
125
125
126
#### React Native <= 0.67.x
126
127
@@ -138,20 +139,21 @@ Install [Cocoapods](https://cocoapods.org/) if you have not already.
138
139
The SDK must be initialized with the short alphanumeric [public API key](https://help.klaviyo.com/hc/en-us/articles/115005062267#difference-between-public-and-private-api-keys1)
139
140
for your Klaviyo account, also known as your Site ID.
140
141
141
-
Initialize _must_ be called prior to invoking any other SDK methods so that Klaviyo SDK can track profiles, events and push tokens toward the correct Klaviyo account.
142
-
Any SDK operations invoked before initialize will be dropped, and result in a logged error.
142
+
Initialize _must_ be called prior to invoking any other SDK methods so that Klaviyo SDK can track profiles, events and
143
+
push tokens toward the correct Klaviyo account. Any SDK operations invoked before initialize will be dropped,
144
+
and result in a logged error.
143
145
144
146
You can call `initialize` from your app's React Native layer or from the platform-specific native code.
145
147
This decision is dependent on your app's architecture. It is not required to initialize the SDK in both places!
146
-
Note: It is safe to re-initialize, e.g. if your app needs to connect to more than one Klaviyo account.
148
+
Note: It is safe to re-initialize, e.g. if your app needs to switch between more than one Klaviyo account.
147
149
148
150
### React Native Initialization
149
151
150
152
Below is an example of how to initialize the SDK from your React Native code:
@@ -282,58 +284,56 @@ Refer to the following README sections on push setup:
282
284
283
285
### Collecting Push Tokens
284
286
285
-
Push tokens can be collected either from your app's react native code or in the native code. Below sections discuss both approaches, and
286
-
you are free to pick one that best suits your app's architecture. Note that doing this in one location is sufficient.
287
+
Push tokens can be collected either from your app's react native code or in the native code.
288
+
Below sections discuss both approaches, and you are free to pick one that best suits your app's architecture.
289
+
Note that doing this in one location is sufficient.
287
290
288
291
#### React Native Token Collection
289
292
290
293
In order to collect the APNs push token in your React Native code you need to:
291
294
292
-
1.Import a library such as [`@react-native-firebase/messaging`](https://www.npmjs.com/package/@react-native-firebase/messaging) to your react native project. The below instructions are specific for `@react-native-firebase/messaging` library.
293
-
2. Import Firebase iOS SDK to your iOS project. Setup instructions can be found [here](https://firebase.google.com/docs/ios/setup).
294
-
3. In order for the `UNUserNotificationCenter` delegate methods to be called in `AppDelegate`, method swizzling should be disabled for the Firebase SDK. For more information on this,
295
-
please refer to the [Firebase documentation](https://firebase.google.com/docs/cloud-messaging/ios/client). Disabling method swizzling be done by adding the following to your `Info.plist`:
296
-
297
-
```xml
298
-
<key>FirebaseAppDelegateProxyEnabled</key>
299
-
<false/>
300
-
```
301
-
295
+
1. Import a library such as [`@react-native-firebase/messaging`](https://www.npmjs.com/package/@react-native-firebase/messaging)
296
+
to your react native project. The below instructions are specific for `@react-native-firebase/messaging` library.
297
+
2. Import Firebase iOS SDK to your iOS project. Setup instructions can be found [here](https://firebase.google.com/docs/ios/setup).
298
+
3. In order for the `UNUserNotificationCenter` delegate methods to be called in `AppDelegate`, method swizzling must be
299
+
disabled for the Firebase SDK. For more information on this, please refer to the [Firebase documentation](https://firebase.google.com/docs/cloud-messaging/ios/client).
300
+
Disable method swizzling by adding the following to your `Info.plist`:
301
+
```xml
302
+
<key>FirebaseAppDelegateProxyEnabled</key>
303
+
<false/>
304
+
```
302
305
4. In `application:didRegisterForRemoteNotificationsWithDeviceToken:` method in your `AppDelegate.m` file, you can add the following code to set the push token to the firebase SDK:
303
-
304
-
```objective-c
305
-
// since we disbaled swizzling, we have to manually set this
306
-
FIRMessaging.messaging.APNSToken = deviceToken;
307
-
```
308
-
306
+
```objective-c
307
+
// since we disbaled swizzling, we have to manually set this
308
+
FIRMessaging.messaging.APNSToken = deviceToken;
309
+
```
309
310
5. Finally, in your React Native code, you can collect & set the push token as follows:
If you requested permission using native code then continue using Klaviyo's native platform SDKs `setToken` method to inform the SDK of permission change.
347
+
Requesting user permission to display notifications can be managed from the React Native code, or from platform-specific
348
+
native code. Note that either of these approaches is sufficient to inform the Klaviyo SDK of the permission change.
355
349
356
-
2. Leveraging a third party library that provides cross-platform permissions APIs like firebase [`react-native-firebase/messaging`](https://www.npmjs.com/package/@react-native-firebase/messaging). If you opt for a
357
-
cross-platform permission solution, you can now call the Klaviyo's react native SDK's `setToken` method to refresh the token's enablement status.
350
+
1.**React Native Notification Permission**:
351
+
You can leverage a third party library that provides cross-platform permissions APIs like firebase [`react-native-firebase/messaging`](https://www.npmjs.com/package/@react-native-firebase/messaging).
352
+
If you opt for a cross-platform permission solution, call the Klaviyo React Native SDK's `setToken` method to refresh
353
+
the token's enablement status.
358
354
359
355
Below is an example of how to use `@react-native-firebase/messaging` to request permission and set the token:
0 commit comments