# 快速入门

> 将 Tapjoy Unity 插件包导入项目，配置 SDK 密钥，然后将 Tapjoy 游戏对象添加到第一个场景中以开始集成。

## 最低要求##minimum-requirements

* React Native：0.71.6
* Node 14 或更高版本
* Ruby 2.7.6
* iOS：13.0
* Android：5.0 (API 21)

## SDK 集成##sdk-integration

为了与应用集成，第一步是安装 Tapjoy React Native 插件。我们支持 NPM 和 Yarn。

### npm##npm

使用 `npm` 时，您需要将 Maven 代码仓库添加到 Android 应用或项目级别 build.gradle 文件中。

```text
repositories {
    maven {
        url "https://sdk.tapjoy.com/"
    }
}
```

然后即可安装插件。

```zsh
npm install tapjoy-react-native-sdk
```

### Yarn##yarn

```zsh
yarn add tapjoy-react-native-sdk
```

然后，可以将 Tapjoy 导入您的应用程序以使用该插件：

```javascript
import {Tapjoy, TJPlacement} from 'tapjoy-react-native-sdk'
```

## 添加应用权限（适用于 Android）##add-app-permissions-(for-android)

（可选）将 `ACCESS_WIFI_STATE` 权限包含在清单中：

```java
<manifest ...>
  ...
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  ...
</manifest>
```

## 连接到 Tapjoy##connect-to-tapjoy

我们初始化 Offerwall SDK 的方法是使用 connect 调用。在应用启动后尽快执行此调用。

```javascript
try {
  let sdkKey = Platform.OS === 'ios' ? 'ios-sdk-key' : 'android-sdk-key'
  let flags: object = { TJC_OPTION_USER_ID: 'userId' };
  await Tapjoy.connect(sdkKey, flags, (event:TapjoyEvent) => {
       // Handle Warning
     },
  );

  // Handle Success
} catch (error: any) {
  // Handle Failure
}
```

连接期间出现非阻塞问题时将发出警告。随后仍将显示成功。目前，此功能仅用于检测在 ConnectFlags 中发送的 UserId 的相关问题。

完成 Tapjoy 的配置后，即可构建和运行您的应用程序。

### Logging##logging

可使用以下方法来获取和设置日志记录级别。

```javascript
// Set logging level
Tapjoy.setLoggingLevel(TJLoggingLevel.Debug);

// Get logging level
var loggingLevel = await Tapjoy.getLoggingLevel();
```

### 最大用户等级##max-user-level

您可以告诉 Tapjoy 您的游戏中有多少关卡。此值可以在调用 connect 之前或之后设置。

```javascript
Tapjoy.setMaxLevel(10); 
```

### 用户细分段##user-segment

您可以通过调用 `setUserSegment` 将用户标识为某个细分段的一部分。此设置可以在调用 connect 之前或之后进行。

```javascript
Tapjoy.setUserSegment(TJSegment.VIP);
Tapjoy.setUserSegment(TJSegment.Payer);
Tapjoy.setUserSegment(TJSegment.NonPayer);
Tapjoy.setUserSegment(TJSegment.Unknown);
```

## 请求应用追踪透明度授权##request-app-tracking-transparency-authorization

如果应用程序需要使用[应用追踪透明度](https://developer.apple.com/documentation/apptrackingtransparency)框架，为了显示 IDFA 访问权限请求对话框，请更新 Info.plist，在其中包含 NSUserTrackingUsageDescription 键以及自定义消息（描述在应用程序中需要此权限才能使用 IDFA）。

接下来安装 `react-native-tracking-transparency` [包](https://www.npmjs.com/package/react-native-tracking-transparency)：

```javascript
yarn add react-native-tracking-transparency
```

导入库，然后显示权限对话框：

```javascript
import {
    getTrackingStatus,
    requestTrackingPermission,
} from 'react-native-tracking-transparency';

...

let trackingStatus = await getTrackingStatus();
if (trackingStatus === 'authorized' || trackingStatus === 'unavailable') {
    await Tapjoy.connect(sdkKey, flags);
}else{
    trackingStatus = await requestTrackingPermission();
    await Tapjoy.connect(sdkKey, flags);
}
```
