본문으로 건너뛰기

partner

상단 네비게이션 바에 악세서리 버튼을 추가하거나 제거하는 네임스페이스입니다. 버튼을 눌렀을 때의 콜백은 tdsEvent.addEventListener("navigationAccessoryEvent", callback)를 통해 등록합니다.

메서드

메서드반환 타입용도
partner.addAccessoryButtonPromise<void>상단 네비게이션에 악세서리 버튼을 추가합니다.
partner.removeAccessoryButtonPromise<void>상단 네비게이션에서 악세서리 버튼을 제거합니다.

권한

권한이 필요하지 않습니다 — partner 네임스페이스의 메서드는 별도의 PermissionName에 바인딩되지 않으며, getPermission() / openPermissionDialog() 유틸을 노출하지 않습니다. 다른 네임스페이스에서 권한을 처리하는 방식은 Guides — 권한 처리 패턴을 참고하세요.

이벤트 연동

addAccessoryButton으로 버튼을 추가한 뒤 사용자가 해당 버튼을 누르면 tdsEventnavigationAccessoryEvent가 발화됩니다. 이벤트 수신은 tdsEvent.addEventListener로 등록합니다.

import { partner, tdsEvent } from '@apps-in-toss/web-framework';

// 버튼 추가
await partner.addAccessoryButton({
id: 'my-button',
title: '즐겨찾기',
icon: { name: 'icon-star-mono' },
});

// 클릭 이벤트 수신
tdsEvent.addEventListener('navigationAccessoryEvent', (event) => {
if (event.id === 'my-button') {
console.log('악세서리 버튼이 눌렸습니다');
}
});

UX 가이드

  • 버튼 ID는 고유하게 유지하세요. 같은 ID로 addAccessoryButton을 반복 호출하면 이전 버튼이 덮어써질 수 있습니다.
  • 화면을 떠날 때 제거하세요. removeAccessoryButton을 호출하지 않으면 다른 화면에서도 버튼이 잔류할 수 있습니다. cleanup은 useEffect 반환 함수에서 처리하는 것을 권장합니다.
  • 아이콘 이름은 디자인 시스템 토큰을 사용하세요. 유효하지 않은 이름은 빈 아이콘으로 표시될 수 있습니다.

직접 실행해 보기

sdk-example의 Partner 페이지에서 메서드를 직접 실행해 볼 수 있습니다.

sdk-example에서 실행해 보기

외부 참조