Skip to content

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ViaLink React Native SDK

ViaLink — Deep links for 6 platforms. Start free.

English | 한국어

React Native SDK for the ViaLink deep link infrastructure service. Since v2.0 it runs through a native bridge (Android .aar + iOS .xcframework).

Built as a bridge over the native Android and iOS SDKs, so a single TypeScript codebase handles deep linking and deferred deep linking on both platforms. Users who install from a link land on the intended screen at first launch, and click, install, open, event, and payment flow through one attribution pipeline.

Unlike most deep link and attribution tools, which require a sales call and an annual contract, ViaLink is free to start. No credit card — all six platform SDKs are available the moment you sign up.

→ vialink.app

Opens the app from in-app browsers, too

Links shared on KakaoTalk, Naver, LINE, Instagram, or Threads open in the app's built-in browser, where Universal Links and App Links often don't fire. ViaLink's link server detects the in-app browser and takes the route that works there:

  • KakaoTalk · Naver · LINE (iOS) — hands the link off to Safari automatically, so the Universal Link fires
  • Android in-app browsers — launches the app with an intent:// URL, falling back to the store if it isn't installed
  • Instagram · Facebook · Threads and others — tries your app's custom URL scheme (if registered) and shows an "Open in external browser" guide as a backup

This runs on the link server — no extra SDK code needed.

Features

  • Deep link routing — automatic handling of App Links / Universal Links
  • Deferred deep linking — fingerprint-based matching on the first launch after install
  • Event tracking — batched delivery of custom events
  • Payment attribution — records payment attempts and automatically attaches link_id
  • Link creation — generate deep links from within the app (static/dynamic)

Requirements

  • React Native 0.73+
  • Android: minSdk 24, compileSdk 34
  • iOS: 15.0+, Swift 5.9+

Installation

npm install vialink-react-native-sdk

iOS additional setup

cd ios && pod install

Android additional setup

Verify the configuration in android/app/build.gradle:

android {
    compileSdkVersion 34
    defaultConfig {
        minSdkVersion 24
    }
}

Register the package in MainApplication.kt (or .java):

import com.vialink.reactnative.ViaLinkPackage

override fun getPackages(): List<ReactPackage> {
    val packages = PackageList(this).packages.toMutableList()
    packages.add(ViaLinkPackage())
    return packages
}

Usage

1. Initialization

import { ViaLinkSDK } from 'vialink-react-native-sdk';

// Call at the top level of App.tsx
await ViaLinkSDK.shared.configure('YOUR_API_KEY');

2. Deep link callbacks

// Receive App Links / Universal Links
ViaLinkSDK.shared.onDeepLink((data) => {
  console.log('deep link:', data.path, data.params);
  navigation.navigate(data.path, data.params);
});

// Deferred deep link (matched on first app launch, 5-second deadline)
ViaLinkSDK.shared.onDeferredDeepLink((data, error) => {
  if (error) {
    // match failed (timeout/network/server_error, etc.) — normal entry
    console.log('match failed:', error.code, error.message);
    return;
  }
  if (!data) {
    // organic install — normal entry
    return;
  }
  // match succeeded — navigate to the deep link path
  navigation.navigate(data.path, data.params);
});

3. Pull API

// Synchronous (returns the cached value immediately)
const deepLink = await ViaLinkSDK.shared.getDeepLinkData();
const deferred = await ViaLinkSDK.shared.getDeferredLinkData();

// Asynchronous (waits until the result arrives)
const deepLinkAsync = await ViaLinkSDK.shared.awaitDeepLinkData();    // 3-second timeout
const deferredAsync = await ViaLinkSDK.shared.awaitDeferredLinkData(); // waits until the result

4. Event tracking

ViaLinkSDK.shared.track('purchase', {
  product_id: '12345',
  revenue: 29900,
  currency: 'KRW',
});

5. Payment tracking

const result = await ViaLinkSDK.shared.payment.initiated({
  orderId: 'ORD-2026-0001',
  amount: 19900,
  currency: 'KRW',
  paymentMethod: 'card',
});
console.log('success:', result.success, 'id:', result.paymentEventId);

6. Link creation

const url = await ViaLinkSDK.shared.createLink(
  '/product/123',
  { promo_code: 'FRIEND_SHARE' },
  'referral',
  'dynamic', // when click tracking is needed
);
console.log('created link:', url);

7. Cleanup

// On app shutdown or unmount
ViaLinkSDK.shared.destroy();

Sample project

See the runnable sample app in the sample/ directory.

Documentation

License

Proprietary — © 2026 Aresjoy Inc. All rights reserved. Use is governed by the ViaLink Terms of Service. See LICENSE.

About

React Native 딥링크·디퍼드 딥링크·어트리뷰션 SDK (Android·iOS 네이티브 브리지). 영업 통화·연간 계약 없이 무료로 시작. 카카오톡·네이버·LINE 인앱 브라우저 자동 탈출. Deep links & attribution without the sales call.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages