# React Native

<br>

## **概要**

React Native SDKは、マイナンバーカードを利用した電子証明書の取得、署名の作成、利用者の最新基本4情報（氏名・住所・生年月日・性別）に関する同意申請など、公的個人認証に必要な機能をReact Native Expoアプリに実装するための開発キットです。
提供される「modules」フォルダをReact Native Expoプロジェクトにドラッグ＆ドロップで追加することで、利用を開始できます。
これにより、NFC機能で読み取ったマイナンバーカードを活用し、公的個人認証に必要な各種機能をReact Nativeアプリ上で実現できます。

## **セットアップ手順**

<Steps>
    <Step title="ファイル追加時の設定">
        ![ファイル追加時の設定.png](https://api.apidog.com/api/v1/projects/1125421/resources/370024/image-preview)
        ZIPファイルを解凍し、同梱されている「modules」フォルダを、利用したいReact Nativeプロジェクトにドラッグ＆ドロップで追加します。
    </Step>
    <Step title="依存関係の追加">
        「package.json」を開き、「dependencies」ブロックに次の3行を追加します。
        
```json
{
    "dependencies": {
        "expo": "~54.0.29",
        "expo-secure-store": "~15.0.8",
        "react-native": "0.81.5"
    } 
}
```
    </Step>
    <Step title="NFC権限設定">
        「apps.json」に次の2行を追記します。なお、infoPlistの内容は契約後に提供されます。
        
```json
{
    "expo": {
        "ios": {
            "infoPlist":{
                "NFCReaderUsageDescription": "NFC読み取りのため",
                "com.apple.developer.nfc,readersessions.felica.systemcodes": [
                    "****","****","****","****"
                ],
                "com,apple.developer.nfc.readersessions.iso7816.select-identifiers": [
                    "****************",
                    "****************",
                    "****************",
                    "****************",
                    "****************",
                    "****************",
                ]      
            },
        },
        "android": {
            "permissions": ["NFC"]
        }
    }

}

```
    </Step>
    <Step title="依存関係のインストール">
        依存関係をインストールします。

```bash
npm install
```
    </Step>
    <Step title="importによるSDKの呼び出し">
        SDKを利用するReact Native Expoコード内で「PrimagestTrustServices」をインポートすることで、SDK内の機能を使用できます。
        
```typescript
import PrimagestTrustServices from '@/modules/primagest-trust-services';
```
    </Step>
</Steps>

<br>
