앱인토스 개발자센터 로고
Skip to content

공통 설정

지원환경: React NativeReact Native SDKv1.0.3WebViewWebView SDKv1.0.3
실행환경: Toss AppSandbox App

미니앱에서 공통으로 사용하는 브랜드, 호스트, 권한, 빌드 옵션 등의 전역 설정을 한 곳에서 관리할 수 있어요.
아래 예제는 WebViewReact Native 환경에서 사용할 수 있는 기본 설정 템플릿이에요.

기본 설정을 적용하면 브릿지 뷰내비게이션 바가 자동으로 표시돼요.
내비게이션 바의 더보기 버튼을 통해 공유하기, 신고하기 등의 기능을 쉽게 사용할 수 있어요.
별도 서버 연동이나 추가 구현 없이 SDK만 적용하면 바로 사용 가능해요.
브릿지 뷰와 내비게이션 바의 실제 이미지는 문서 하단에서 확인할 수 있어요.

WebView 설정

  • appName : 콘솔에 등록한 앱 ID를 입력해 주세요.
  • displayName : 사용자에게 노출될 앱 이름을 입력해 주세요. 콘솔에 등록된 이름과 동일하게 입력해야 해요.
  • primaryColor : 앱의 기본 색상 값을 지정해 주세요. 지정한 색상은 브릿지 뷰와 버튼 등에 적용돼요.
  • icon : 앱의 로고 이미지 URL을 입력해 주세요. 콘솔의 앱 정보에서 업로드한 이미지를 우클릭해 링크 복사 후 넣어 주세요.
  • bridgeColorMode : 입점 서비스의 종류에 맞게 색상 모드를 설정할 수 있어요.
    • 게임 : inverted(다크 모드)
    • 비게임 : basic(기본 모드)
  • permissions : 권한이 필요한 경우 설정해 주세요. 필요한 권한 설정하기 문서를 참고해 주세요.
  • webViewProps.type : 미니앱에 맞게 내비게이션 바를 설정할 수 있어요.
    • 게임 : game
    • 비게임 : partner

typescript
interface defineConfig {
  appName: string,           // 콘솔에 등록한 앱ID
  brand: {
    displayName: string,     // 사용자에게 노출될 앱 이름
    primaryColor: string,    // 브랜드 기본 색상(hex)
    icon: string,            // 앱 아이콘(이미지 웹 URL)
    bridgeColorMode: 'inverted', // 다크 모드
  },
  web: {
    host: string,            // 개발 서버 호스트
    port: number,            // 개발 서버 포트
    commands: {
      dev: string,           // 실행 명령어
      build: string,         // 빌드 명령어
    },
  },
  permissions: Permission[],    // 런타임 권한(필요 시 확장)
  outdir: string,               // 빌드 산출물 경로
  webViewProps: {
    type: 'game'                // 게임 내비게이션
  }    
}
typescript
interface defineConfig {
  appName: string,           // 콘솔에 등록한 앱ID
  brand: {
    displayName: string,     // 사용자에게 노출될 앱 이름
    primaryColor: string,    // 브랜드 기본 색상(hex)
    icon: string,            // 앱 아이콘(이미지 웹 URL)
    bridgeColorMode: 'basic', // 기본 모드
  },
  web: {
    host: string,            // 개발 서버 호스트
    port: number,            // 개발 서버 포트
    commands: {
      dev: string,           // 실행 명령어
      build: string,         // 빌드 명령어
    },
  },
  permissions: Permission[],    // 런타임 권한(필요 시 확장)
  outdir: string,               // 빌드 산출물 경로
  webViewProps: {
    type: 'partner'             // 비게임
  }  
}
tsx
import { defineConfig } from '@apps-in-toss/web-framework/config';

export default defineConfig({
  appName: 'webview-template',
  brand: {
    displayName: '웹뷰템플릿', 
    primaryColor: '#3182F6', 
    icon: "https://static.toss.im/icons/png/4x/icon-person-man.png", 
    bridgeColorMode: 'inverted', // 다크모드 (게임)
  },
  web: {
    host: 'localhost',
    port: 5173,
    commands: {
      dev: 'vite',
      build: 'tsc -b && vite build',
    },
  },
  permissions: [
    {
      name: "clipboard",
      access: "read",
    },
    {
      name: "clipboard",
      access: "write",
    },
    {
      name: "camera",
      access: "access",
    },
    {
      name: "photos",
      access: "read",
    },
  ],
  outdir: 'dist',
  webViewProps: {
    type: 'partner' | 'game' | 'extenral'  
  }
});

React Native 설정

  • scheme : 앱 라우팅 스킴을 입력해 주세요. intoss로 입력하면 돼요.
  • appName : 콘솔에 등록한 앱 ID를 입력해 주세요.
  • displayName : 사용자에게 노출될 앱 이름을 입력해 주세요. 콘솔에 등록된 이름과 동일하게 입력해야 해요.
  • primaryColor : 앱의 기본 색상 값을 지정해 주세요. 지정한 색상은 브릿지 뷰와 버튼 등에 적용돼요.
  • icon : 앱의 로고 이미지 URL을 입력해 주세요. 콘솔의 앱 정보에서 업로드한 이미지를 우클릭해 링크 복사 후 넣어 주세요.
  • bridgeColorMode : 입점 서비스의 종류에 맞게 색상 모드를 설정할 수 있어요.
    • 게임 : inverted(다크 모드)
    • 비게임 : basic(기본 모드)
  • permissions : 권한이 필요한 경우 설정해 주세요. 필요한 권한 설정하기 문서를 참고해 주세요.

typescript
interface defineConfig({
  scheme: string,            // 앱 라우팅 스킴 (intoss)
  appName: string,           // 콘솔에 등록한 앱ID
  plugins: [
    appsInToss({
      brand: {
        displayName: string,  // 사용자에게 노출될 앱 이름
        primaryColor: string, // 브랜드 기본 색상(hex)
        icon: string,         // 앱 아이콘(이미지 웹 URL)
        bridgeColorMode: 'inverted', // 다크 모드
      },
      permissions: Permission[], // 런타임 권한(필요 시 확장)
    }),
  ],
});
typescript
interface defineConfig({
  scheme: string,            // 앱 라우팅 스킴 (intoss)
  appName: string,           // 콘솔에 등록한 앱ID
  plugins: [
    appsInToss({
      brand: {
        displayName: string,  // 사용자에게 노출될 앱 이름
        primaryColor: string, // 브랜드 기본 색상(hex)
        icon: string,         // 앱 아이콘(이미지 웹 URL)
        bridgeColorMode: 'basic', // 기본 모드
      },
      permissions: Permission[], // 런타임 권한(필요 시 확장)
    }),
  ],
});
tsx
import { appsInToss } from '@apps-in-toss/framework/plugins';
import { defineConfig } from '@granite-js/react-native/config';

export default defineConfig({
  scheme: 'intoss',
  appName: 'rn-template',
  plugins: [
    appsInToss({
      brand: {
        displayName: 'rn-template', 
        primaryColor: '#3182F6', 
        icon: "https://static.toss.im/icons/png/4x/icon-person-man.png",
        bridgeColorMode: 'basic',
      },
      permissions: [
        {
          name: "clipboard",
          access: "read",
        },
        {
          name: "clipboard",
          access: "write",
        },
        {
          name: "camera",
          access: "access",
        },
        {
          name: "photos",
          access: "read",
        },
      ],
    }),
  ],
});

브릿지 뷰

브릿지 뷰는 토스 앱에서 앱인토스로 진입할 때, 앱인토스로 이동했음을 알려주는 징검다리 역할의 컴포넌트예요.
입점하는 서비스의 종류에 따라 기본 모드(basic), 다크 모드(inverted)를 설정할 수 있어요.
게임 미니앱의 경우에는 반드시 다크 모드(inverted)로 설정해 주세요.

⚠️ 브릿지 뷰 이후 과도한 로딩(20초 이상)이 발생하지 않도록 확인해 주세요.

내비게이션 바 (게임)

화면 상단에 고정되는 영역으로, 앱인토스 전용 컴포넌트가 제공돼요.
게임용 내비게이션 바는 투명한 배경더보기 버튼닫기(X) 버튼으로 구성돼요.

주의해주세요

  • X 버튼이 게임 화면의 다른 버튼과 겹치지 않도록 개발해 주세요.
  • X 버튼을 눌렀을 때는 종료 확인 모달을 반드시 표시해 주세요.
    • 텍스트 : $서비스명$을 종료할까요?
    • 버튼 : 취소 / 종료하기 (브랜드 컬러 적용)

내비게이션 바 (비게임)

비게임 미니앱에서는 흰색 배경의 내비게이션 바가 기본으로 제공돼요.
좌측에는 미니앱 로고와 이름이, 우측에는 더보기 버튼과 X 버튼이 위치해요.

또한, 더보기 버튼 왼쪽에 아이콘을 한 개 추가할 수 있어요.
자세한 내용은 내비게이션 바 설정 문서를 참고해 주세요.

내비게이션 바 기능

내비게이션 바의 더보기 버튼을 통해 공유하기, 신고하기 등의 기능을 쉽게 사용할 수 있어요.
별도 서버 연동이나 추가 구현 없이, SDK만 적용하면 바로 사용할 수 있어요.
게임, 비게임 구분 없이 WebView와 React Native 환경 모두 동일하게 동작해요.

문의하기 / 신고하기

지원환경: React NativeReact Native SDKv1.0.3WebViewWebView SDKv1.0.3
실행환경: Toss App

콘솔에 등록한 고객센터 링크와 홈페이지 주소가 자동으로 표시돼요.
신고하기 기능을 통해 사용자가 제보를 보낼 수 있고, 파트너사는 콘솔을 통해 제보 내용을 확인할 수 있어요.

공유하기

지원환경: React NativeReact Native SDKv1.2.0WebViewWebView SDKv1.2.0
실행환경: Toss App최소버전v5.230.0

공유하기 기능을 통해 사용자는 미니앱을 다른 사람에게 쉽게 공유할 수 있어요.
공유 시 미니앱 이름딥링크 주소가 함께 전송돼요.

권한 설정

지원환경: React NativeReact Native SDKv1.5.0WebViewWebView SDKv1.5.0
실행환경: Toss App

권한 설정 기능을 통해 사용자는 미니앱이 요청하는 권한을 확인하고, 언제든지 ON/OFF로 제어할 수 있어요.