시작하기
설치 단계와 이 플러그인의 전체 마크다운 가이드를 포함한 설정 지시를 복사하세요.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-transitions`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/transitions/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Capgo의 AI-Assisted Setup을 사용하여 플러그인을 설치할 수 있습니다. AI 도구에 Capgo 스킬을 추가하려면 다음 명령어를 사용하세요.
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins다음 명령어를 사용하여 다음 프롬프트를 사용하세요.
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-transitions` plugin in my project.만약 Manual Setup을 선호한다면, 다음 명령어를 실행하여 플러그인을 설치하고 아래의 플랫폼별 지침을 따르시오:
-
패키지 설치
터미널 창 npm install @capgo/capacitor-transitions -
웹 컴포넌트 등록
import '@capgo/capacitor-transitions'; -
라우팅된 페이지 wrapping
<cap-router-outlet platform="auto" swipe-gesture="auto"><cap-page><cap-header slot="header"><h1>Inbox</h1></cap-header><cap-content slot="content"><button>Open message</button></cap-content><cap-footer slot="footer"><nav>Tabs</nav></cap-footer></cap-page></cap-router-outlet> -
라우터가 경로를 변경하기 전에 방향을 설정하시오
import { setDirection } from '@capgo/capacitor-transitions/react';setDirection('forward');router.push('/message/42');setDirection('back');router.back();
React Setup
React 설정import { useEffect, useRef } from 'react';import { useNavigate } from 'react-router-dom';import { initTransitions, setDirection, setupPage, setupRouterOutlet } from '@capgo/capacitor-transitions/react';import '@capgo/capacitor-transitions';
initTransitions({ platform: 'auto' });
export function AppShell() { const outletRef = useRef<HTMLElement>(null);
useEffect(() => { if (!outletRef.current) return;
setupRouterOutlet(outletRef.current, { platform: 'auto', swipeGesture: 'auto', }); }, []);
return ( <cap-router-outlet ref={outletRef}> {/* Your router renders cap-page children here. */} </cap-router-outlet> );}
export function InboxPage() { const navigate = useNavigate(); const pageRef = useRef<HTMLElement>(null);
useEffect(() => { if (!pageRef.current) return;
return setupPage(pageRef.current, { onDidEnter: () => console.log('Inbox visible'), }); }, []);
return ( <cap-page ref={pageRef}> <cap-header slot="header"> <h1>Inbox</h1> </cap-header>
<cap-content slot="content"> <button onClick={() => { setDirection('forward'); navigate('/message/42'); }} > Open message </button> </cap-content> </cap-page> );}React JSX TypeScript
React JSX TypeScript 설정Importing from @capgo/capacitor-transitions/react JSX 형식의 타입 정의가 포함되어 있으며 cap-router-outlet, cap-page, cap-header, cap-content, 및 cap-footer. 대부분의 React 프로젝트에서 이 임포트를 사용하면 TSX에서 사용할 수 있는 커스텀 엘리먼트가 자동으로 유효해집니다.
If TypeScript still reports Property 'cap-router-outlet' does not exist on type 'JSX.IntrinsicElements'프로젝트 선언 파일을 추가하세요:
import '@capgo/capacitor-transitions/react';Vite, Create React App, 및 대부분의 webpack React 앱의 경우, 그 파일을 src/ 에 넣으면 됩니다. Next.js의 경우 src/ 또는 프로젝트 루트에 넣고 tsconfig.json 를 포함하도록 하세요:
{ "include": ["src", "src/capgo-transitions.d.ts"]}사용하는 별도의 types/ 폴더를 포함하세요:
{ "include": ["src", "types"]}스와이프 백
Swipe Back 섹션iOS 에지 제스처를 마크업에서 사용하거나 비활성화하세요.
<cap-router-outlet swipe-gesture="auto"></cap-router-outlet><cap-router-outlet swipe-gesture="true"></cap-router-outlet><cap-router-outlet swipe-gesture="false"></cap-router-outlet>또는 JavaScript에서:
const outlet = document.querySelector('cap-router-outlet');
outlet?.setSwipeGesture('auto');outlet?.setSwipeGesture(true);outlet?.setSwipeGesture(false);auto Capacitor이 네이티브 iOS 런타임을 보고할 때만 제스처를 활성화합니다. 제스처 중 페이지 전환은 손가락에 따라 진행됩니다. 사용자가 손가락을 놓으면, 전환은 완료되어 브라우저 히스토리에게 뒤로가기를 요청하거나 취소되어 현재 페이지를 복원합니다.
Swipe Back 제스처를 시작하지 않도록 하려면 data-swipe-gesture-ignore:
<button data-swipe-gesture-ignore>Open drawer</button>Native Navigation을 사용하세요.
With Native NavigationNative Navigation을 사용하여 @capgo/capacitor-transitions with @capgo/native-navigation native가 최상단과 최하단 바를 소유하고 Ionic-style 페이지 이동을 유지하는 웹 콘텐츠를 유지해야 합니다.
-
native 네비게이션 패키지를 설치하고 동기화하세요.
터미널 창 npm install @capgo/native-navigationnpx cap sync -
native chrome을 구성하세요.
import { NativeNavigation } from '@capgo/native-navigation';await NativeNavigation.configure({contentInsetMode: 'css',});await NativeNavigation.setNavbar({title: 'Inbox',backButton: { visible: false },}); -
페이지만 책임지는 웹 전환 출구를 유지하세요.
<cap-router-outlet platform="auto" swipe-gesture="auto"><cap-page><cap-content slot="content" fullscreen><main class="native-page">Inbox content</main></cap-content></cap-page></cap-router-outlet>.native-page {padding-top: var(--cap-native-navigation-top);padding-bottom: var(--cap-native-navigation-bottom);} -
같은 라우터 이벤트에서 두 시스템을 제어하세요.
import { NativeNavigation } from '@capgo/native-navigation';import { setDirection } from '@capgo/capacitor-transitions/react';import { router } from './router';await NativeNavigation.addListener('navbarBack', () => {setDirection('back');router.back();});async function openMessage(id: string) {setDirection('forward');router.push(`/message/${id}`);await NativeNavigation.setNavbar({title: 'Message',backButton: { visible: true, title: 'Inbox' },});}
native 최상단 바를 다시 움직이는 것으로 렌더링하지 마세요. <cap-header>. Let @capgo/native-navigation 바를 원본으로 유지하고 WebView 페이지 콘텐츠 아래에 사용하세요. @capgo/capacitor-transitions Components
제목 ‘Components’
제목 ‘<cap-router-outlet>’<cap-router-outlet>
속성| 형식 | 기본값 | 설명 | 애니메이션 스타일 |
|---|---|---|---|
platform | 'ios' | 'android' | 'auto' | 'auto' | 플랫폼 기본값 |
duration | number | __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ 시간 (밀리초) |
keep-in-dom | boolean | true | 비활성 페이지 DOM에 유지 |
max-cached | number | 10 | 캐시된 페이지 최대 수 |
swipe-gesture | boolean | 'auto' | 'auto' | iOS 에지 제스처를 iOS 기본 제스처, 비활성화 또는 탐지 |
메서드:
push(element, config?)pop(config?)setRoot(element, config?)setSwipeGesture(true | false | 'auto')
<cap-page>
페이지 제목 “<cap-page>”페이지 하나를 감싸고 라이프 사이클 이벤트를 내뱉습니다:
cap-will-entercap-did-entercap-will-leavecap-did-leave
<cap-content>
페이지 제목 “<cap-content>”| 속성 | 타입 | 기본값 | 설명 |
|---|---|---|---|
fullscreen | boolean | false | Let content scroll behind the header |
scroll-x | boolean | true | 가로 스크롤을 활성화하세요 |
scroll-y | boolean | true | 세로 스크롤을 활성화하세요 |
프레임워크 도우미
프레임워크 도우미프레임워크 엔트리 포인트는 동일한 핵심 도우미를 노출합니다.
import { initTransitions, setDirection, setupPage, setupRouterOutlet } from '@capgo/capacitor-transitions/react';
initTransitions({ platform: 'auto' });setDirection('forward');setupRouterOutlet(element, { platform: 'auto', swipeGesture: 'auto' });setupPage(element, { onWillEnter, onDidEnter, onWillLeave, onDidLeave });사용 가능한 엔트리 포인트:
@capgo/capacitor-transitions/react@capgo/capacitor-transitions/vue@capgo/capacitor-transitions/angular@capgo/capacitor-transitions/svelte@capgo/capacitor-transitions/solid
Getting Started에서 계속하세요
Getting Started에서 계속하세요Capgo를 사용 중이라면 Getting Started 이동 및 기업 운영을 계획하고 연결하세요. Using @capgo/capacitor-transitions Using @capgo/capacitor-transitions Capgo Enterprise Capgo Enterprise Ionic Enterprise Plugin Alternatives Ionic Enterprise Plugin Alternatives Capgo Alternatives Capgo Alternatives Capgo Consulting Capgo Consulting