Appearance
공통 설정
지원환경: React NativeWebView
실행환경: Toss AppSandbox App
앱에서 공통으로 사용하는 브랜드/호스트/권한/빌드 출력 등의 전역 옵션을 한 곳에서 관리해요.
아래 예제는 각각 WebView 와 React Native 환경에서의 기본 설정 템플릿이에요.
WebView
typescript
interface defineConfig {
appName: string, // 콘솔에 등록한 앱ID
brand: {
displayName: string, // 사용자에게 노출될 앱 이름
primaryColor: string, // 브랜드 기본 색상(hex)
icon: string, // 앱 아이콘(이미지 웹 URL)
bridgeColorMode: 'basic' | 'inverted', // 기본 모드 | 다크 모드
},
web: {
host: string, // 개발 서버 호스트
port: number, // 개발 서버 포트
commands: {
dev: string, // 실행 명령어
build: string, // 빌드 명령어
},
},
permissions: Permission[], // 런타임 권한(필요 시 확장)
outdir: string, // 빌드 산출물 경로
webViewProps: WebViewProps // 추가 속성
}
ReactNative
typescript
interface defineConfig({
scheme: string, // 앱 라우팅 스킴 (intoss)
appName: string, // 콘솔에 등록한 앱ID
plugins: [
appsInToss({
brand: {
displayName: string, // 사용자에게 노출될 앱 이름
primaryColor: string, // 브랜드 기본 색상(hex)
icon: string, // 앱 아이콘(이미지 웹 URL)
bridgeColorMode: 'basic' | 'inverted', // 기본 모드 | 다크 모드
},
permissions: Permission[], // 런타임 권한(필요 시 확장)
}),
],
});
예시
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'
}
});
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",
},
],
}),
],
});
게임 서비스 설정
게임인 경우에는 다음과 같이 설정해야 해요.
webViewProps.type = 'game'
brand.bridgeColorMode = 'inverted'
자세한 사용 방법은 권한 가이드 와 WebView 속성 제어 가이드를 참고하세요.