SDK ์ฐ๋
Hackle React Native SDK๋ React 16.8 ์ด์ ๋ฐ React Native 0.64.1 ์ด์์ ์ง์ํฉ๋๋ค.
React Native SDK๋ Android SDK, iOS SDK ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ํฉ๋๋ค.
์๋ OS๋ฅผ ์ง์ํฉ๋๋ค.
- Android API 16 (4.1 Jelly Bean) ์ด์
- iOS 10 ์ด์
์์กด์ฑ ์ถ๊ฐ
SDK ์ค์น/์ ๋ฐ์ดํธ ํ ์ฑ์ ์๋กญ๊ฒ ๋น๋ํด์ผ ์ฐ๋์ด ๋ณ๊ฒฝ์ฌํญ์ด ์ ์ฉ๋ฉ๋๋ค.
npm install --save @hackler/react-native-sdkyarn add @hackler/react-native-sdkiOS
cd ios
pod installExpo ์ฌ์ฉ ์ ์์กด์ฑ ์ถ๊ฐ
React Native SDK๋
Expo Goํ๊ฒฝ์ ์ง์ํ์ง ์์ต๋๋ค.expo prebuild๋ฅผ ์ฌ์ฉํด์ฃผ์ธ์.
npm install --save @hackler/react-native-sdkyarn add @hackler/react-native-sdkexpo ์ฌ์ฉ ์์๋ link๋ pod install์ ์คํํ์ง ์์๋ ๋ฌด๋ฐฉํฉ๋๋ค.
์๋๋ก์ด๋ ์ค์
SDK 3.26.0 ์ด์ ๋ฒ์ ๋ถํฐ๋ ์๋ ์ค์ ์ด ์๋์ผ๋ก ์ ์ฉ๋ฉ๋๋ค.
์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋ฐ๊ณ ๋ค์์ผ๋ก ์งํํด ์ฃผ์ธ์.์๋ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํด์
registerActivityLifecycleCallbacks๋ฅผ ์ถ๊ฐํด์ฃผ์ธ์.์์ฑ๋ Application ํด๋์ค๊ฐ ์๋ค๋ฉด ์๋ก ์์ฑํ์ฌ
AndroidManifest.xml์ ๋ฑ๋กํด ์ฃผ์ธ์.
Application ํด๋์ค์ ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ onCreate ํจ์ ์๋ ์ถ๊ฐํด ์ฃผ์ธ์.
import android.app.Application;
import io.hackle.android.HackleApp;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
...
HackleApp.registerActivityLifecycleCallbacks(this);
...
}
}import android.app.Application
import io.hackle.android.Hackle
import io.hackle.android.registerActivityLifecycleCallbacks
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
...
Hackle.registerActivityLifecycleCallbacks(this)
...
}
}SDK ์ด๊ธฐํ
SDK๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ ๋ฐ๋์ createInstance()์ SDK ํค๋ฅผ ์ ๋ฌํ์ฌ HackleReactNativeSDKClient๋ฅผ ์์ฑํ๊ณ React ์ดํ๋ฆฌ์ผ์ด์
์ ๊ฐ์ธ๋ HackleProvider์ ์ ๋ฌํด์ผ ํฉ๋๋ค.
- SDK ํค๋ ํตํด ์๋น์ค์ ๋์๋ณด๋ ์์ ์์นํ SDK ์ฐ๋ ์ ๋ณด์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
์ด๊ธฐํ ์ ํตํด ์๋ฒ๋ก๋ถํฐ ํ์ํ ์ ๋ณด๋ค์ ๊ฐ์ ธ์ SDK์ ์ ์ฅํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ด ์๊ฐ์ ์ ๋ฐ๋ฆฌ ์ด์ ๋ถ๊ณผํฉ๋๋ค. ๋๊ธฐํ๊ฐ ์๋ฃ๋๋ฉด ์ฆ์ ๋ ๋๋ง์ด ์งํ๋ฉ๋๋ค.
import { createInstance, HackleProvider } from "@hackler/react-native-sdk";
// YOUR_APP_SDK_KEY ์๋ฆฌ์ SDK ํค๋ฅผ ๋ฃ์ต๋๋ค.
const hackleClient = createInstance("YOUR_APP_SDK_KEY");
const App = () => {
return (
<HackleProvider hackleClient={hackleClient}>
<YourApp />
</HackleProvider>
);
};์ด๊ธฐํ ์ค์ ์ ๋ณด
์ค์ ์ ๋ณด๋ฅผ ํฌํจํ์ฌ SDK๋ฅผ ์ด๊ธฐํ ํ ์ ์์ต๋๋ค
import { createInstance, HackleProvider } from "@hackler/react-native-sdk";
const config = {
debug: true
};
const hackleClient = createInstance("YOUR_APP_SDK_KEY", config);
const App = () => {
return (
<HackleProvider hackleClient={hackleClient}>
<YourApp />
</HackleProvider>
);
};์ค์ | ๊ธฐ๋ฅ | ๊ธฐ๋ณธ๊ฐ | ์ง์ ๋ฒ์ |
|---|---|---|---|
exposureEventDedupIntervalMillis | ๋์ผํ ์ฌ์ฉ์๊ฐ ์ฐ์์ผ๋ก ๋ฐ์์ํจ ๋์ผํ A/B ํ ์คํธ, ๊ธฐ๋ฅํ๋๊ทธ ๋ถ๋ฐฐ๊ฒฐ๊ณผ์ ๋ํ ๋ ธ์ถ ์ด๋ฒคํธ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ์ต์๊ฐ: 1000 (1์ด) ์ต๋๊ฐ: 3600000 (1์๊ฐ) | -1 (์ค๋ณต์ ๊ฑฐ ํ์ง ์์) | 3.3.1+ |
debug | ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ํ ๋ก๊ทธ๋ฅผ ์ฝ์์ ์ถ๋ ฅํ๊ณ , ์ด๋ฒคํธ๋ฅผ ์ฆ์ ์ ์กํฉ๋๋ค. | false | 3.4.1+ |
pollingIntervalMillis | ๋์๋ณด๋์์ ์ค์ ํ ์ ๋ณด๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธ ํ ์ ์์ต๋๋ค. ์ต์๊ฐ : 60000 (60์ด) | -1 (์ฃผ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธํ์ง ์์) | 3.6.0+ |
sessionTimeoutMillis | ์ธ์ ๋ง๋ฃ ์๊ฐ์ ์ค์ ํฉ๋๋ค. | 1800000 (30๋ถ) | 3.11.0+ |
๋์๋ณด๋ ์ค์ ์ ๋ณด ๊ฐฑ์
๋์๋ณด๋ ์ค์ ์ ๋ณด๋ฅผ ๋ช ์์ ์ผ๋ก ๊ฐฑ์ ํ ์ ์์ต๋๋ค.
ํด๋น ํจ์๋ 60์ด์ ํ๋ฒ ์ ํ์ ์ผ๋ก ํธ์ถํ ์ ์์ต๋๋ค.
hackleClient.fetch();Updated 7 days ago
