Lightweight libraries for integrating web2wave features into native and cross-platform mobile applications. Available across Swift, Kotlin, Java, Flutter, React Native, and Unity.
The web2wave Mobile SDK helps you synchronize data between your web funnel and mobile application without building the direct integration from raw API calls.
The SDK is a lightweight wrapper around our API. It helps you avoid bugs caused by incorrect parameter passing, misunderstandings of platform logic, and manual setup work. It helps your integration follow platform best practices and can reduce setup time from several days to a few hours by providing ready-made methods.
Installing the SDK is not mandatory for launch. You can choose either direct HTTP requests to our API or the SDK if you prefer not to add additional dependencies to your project.
General flow
Mandatory steps
-
Install the package
Add the SDK through your stack's package manager:Gradle,SPM,pub.dev,npm, orUnity Package Manager. -
Initialize the SDK
Callinitialize(apiKey)orinitWith(apiKey)on app launch to set your API key. Do this once before any other SDK calls. -
Get
user_id
Choose an attribution path:- With an MMP (AppsFlyer, Adjust, Branch, …) — read
user_idfrom the install deeplink. See Pass subscription from web to app. - Without an MMP — call
identify()on first launch to match the device against the web session. See web2wave deferred deeplinks.
- With an MMP (AppsFlyer, Adjust, Branch, …) — read
Optional: Additional steps
-
Link third-party profiles
If you use Adapty, RevenueCat, or Qonversion, pass your paywall system'sprofileIDto web2wave throughsetAdaptyProfileID,setRevenuecatProfileID, orsetQonversionProfileID. This associates the user across systems. -
Check subscription status
CallhasActiveSubscription(userID)and show the appropriate screen based on the result: locked content or a paywall. -
Open a web page
To display a quiz or landing page inside the app, useshowWebVieworopenWebPage, passing the URL and a listener to handle close events. -
Manage subscriptions
Handle cancellation, refund, or re-charge throughcancelSubscription,refundSubscription, andchargeUserwith the corresponding Stripe, Paddle, or PayPal identifiers.
Key features
- Subscription status retrieval
- Active subscription check
- User properties management
- web2wave deferred deeplinks (
identify()) — MMP-free alternative to AppsFlyer / Adjust / Branch - Third-party profile binding (Adapty, RevenueCat, Qonversion)
- External subscription cancellation and refund (Stripe, Paddle, PayPal)
- User charge via saved payment method
- In-app web page, quiz, or landing page display
- Web page event handling
Available SDKs
Repository: web2wave/web2wave_swift
A Swift Package Manager (SPM) library designed for UIKit-based iOS apps. SwiftUI apps can use the SDK, but WebView methods require a UIViewControllerRepresentable wrapper because they are UIKit-based.
Requirements
- iOS
13.0+ - macOS
10.15+ - Swift
5.5+ - Xcode
13.0+
Important: Includes identify() — resolve user_id without an MMP via web2wave deferred deeplinks.
Repository: web2wave/web2wave_kotlin
A Kotlin Android library distributed through JitPack.
Requirements
- Android SDK
>= 24
Important: All API calls are blocking. Run them in a background coroutine using Dispatchers.IO or in a background thread to prevent the app from crashing.
Repository: web2wave/web2wave_java
The Java counterpart to the Kotlin SDK with the same feature set and API shape, adapted for Java conventions.
Requirements
- Android SDK
>= 24
Differences from Kotlin
- Uses
Web2Wave.getInstance()instead of a static object reference - Uses
Result<Boolean>instead of Kotlin'sResult<Unit> - Exposes WebView methods as static methods that accept a
FragmentManager
Repository: web2wave/web2wave_flutter
Requirements
- Flutter SDK
>= 3.0.0
Includes identify() — resolve user_id without an MMP via web2wave deferred deeplinks.
Repository: web2wave/web2wave_react_native
A TypeScript React Native package with full type definitions included. It ships as web2wave on npm.
Requirements
- React Native
>= 0.60.0 - React
>= 16.8.0 react-native-webview >= 11.0.0
react-native-webview is required as a peer dependency for WebView integration. WebView state is managed through a React hook that must be mounted in your root component.
Important: This SDK is under development. While it is fully featured, you may rarely encounter bugs. Please report them to support.
Repository: web2wave/web2wave_unity
A Unity Package Manager package installed through a Git URL. It requires Newtonsoft.Json, which is automatically pulled in as a dependency.
The SDK uses a callback-based API. All network methods accept onSuccess / onError or onComplete delegates, and those delegates are invoked on the Unity main thread.
Requirements
- Unity
2020.3+
WebView support
- Fully supported on Android and iOS (requires native plugins)
- On WebGL, requires JavaScript integration
- In the Unity Editor, falls back to opening the URL in the system browser
- Support on other platforms is limited, though all API calls work regardless of platform