컨텐츠로 건너뛰기

Getting Started

GitHub

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을 선호한다면, 다음 명령어를 실행하고 아래의 플랫폼별 지침을 따르세요:

  1. 패키지 설치

    터미널 창
    npm install @capgo/capacitor-transitions
  2. 웹 컴포넌트 등록

    import '@capgo/capacitor-transitions';
  3. 라우팅된 페이지 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>
  4. 라우터가 경로를 변경하기 전에 방향을 설정하세요

    import { setDirection } from '@capgo/capacitor-transitions/react';
    setDirection('forward');
    router.push('/message/42');
    setDirection('back');
    router.back();

리액트 설정

리액트 설정
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>
);
}

리액트 JSX TypeScript

리액트 JSX TypeScript

import @capgo/capacitor-transitions/react JSX를 위한 cap-router-outlet, cap-page, cap-header, cap-content, 그리고 cap-footer. React 프로젝트에서 대부분의 경우, 그 임포트는 TSX에서 자동으로 커스텀 엘리먼트를 유효하게 만듭니다.

TypeScript가 여전히 보고한다면 Property 'cap-router-outlet' does not exist on type 'JSX.IntrinsicElements'프로젝트 선언 파일을 추가하세요:

capgo-transitions.d.ts
import '@capgo/capacitor-transitions/react';

Vite, Create React App, 그리고 대부분의 webpack React 앱의 경우, 그 파일을 넣으면 충분합니다. Next.js의 경우, src/ 또는 프로젝트 루트에 넣고 src/ 를 포함하도록 하세요: tsconfig.json 클립보드에 복사

{
"include": ["src", "src/capgo-transitions.d.ts"]
}

폴더를 포함하세요: types/ Copy to clipboard

{
"include": ["src", "types"]
}

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 런타임을 보고할 때만 제스처를 활성화합니다. 제스처 중 페이지 전환은 손가락에 따라 움직입니다. 사용자가 손가락을 놓으면 전환은 완료되고 브라우저 히스토리에게 뒤로 가기를 요청하거나 취소하고 현재 페이지를 복원합니다.

제스처를 시작하지 않도록 하려면: data-swipe-gesture-ignore:

<button data-swipe-gesture-ignore>Open drawer</button>

네이티브 네비게이션과 함께

‘네이티브 네비게이션과 함께’ 섹션

사용 @capgo/capacitor-transitions@capgo/native-navigation 자연적인 UI를 위해 native가 상단 및 하단 바를 소유하고 Ionic-style 페이지 동작을 유지하는 웹 콘텐츠를 사용할 때.

  1. native 네비게이션 패키지를 설치하고 동기화하세요:

    터미널 창
    npm install @capgo/native-navigation
    npx cap sync
  2. 자연적인 UI를 위해 native chrome을 구성하세요:

    import { NativeNavigation } from '@capgo/native-navigation';
    await NativeNavigation.configure({
    contentInsetMode: 'css',
    });
    await NativeNavigation.setNavbar({
    title: 'Inbox',
    backButton: { visible: false },
    });
  3. 페이지만 관리하는 웹 전환 아웃렛을 유지하세요:

    <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);
    }
  4. 같은 라우터 이벤트에서 두 시스템을 제어하세요:

    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' },
    });
    }

원래 네이티브 상단 바를 다시 움직이는 <cap-header>로 렌더링하지 마십시오. @capgo/native-navigation . @capgo/capacitor-transitions 바를 네이티브로 유지하고

아래에 있는 WebView 페이지 콘텐츠를 사용하십시오.

컴포넌트

<cap-router-outlet>

컴포넌트
섹션속성타입기본값
platform'ios' | 'android' | 'auto''auto'애니메이션 스타일
durationnumber플랫폼 기본밀리초 단위 애니메이션 지속 시간
keep-in-dombooleantrue비활성 페이지 DOM에 유지
max-cachednumber10캐시된 페이지 최대 수
swipe-gestureboolean | 'auto''auto'iOS 에지 제스처를 iOS 기본, 비활성화, 또는 네이티브 감지로 활성화/비활성화합니다.

메서드:

  • push(element, config?)
  • pop(config?)
  • setRoot(element, config?)
  • setSwipeGesture(true | false | 'auto')

페이지를 감싸고 라이프 사이클 이벤트를 내뱉습니다.

  • cap-will-enter
  • cap-did-enter
  • cap-will-leave
  • cap-did-leave
속성타입기본값설명
fullscreenbooleanfalse헤더 뒤에 콘텐츠가 스크롤되는 것을 허용합니다.
scroll-xbooleantrue가로 스크롤을 허용합니다.
scroll-ybooleantrue세로 스크롤을 허용합니다.

프레임워크 헬퍼

프레임워크 헬퍼 섹션

프레임워크 엔트리 포인트는 동일한 핵심 헬퍼를 노출합니다:

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에서 계속 진행하세요 섹션

이 기능을 사용 중이라면 Getting Started 기업 운영 및 마이그레이션 계획을 세우기 위해 사용하는 경우 Capacitor-전환을 사용하여 @capgo/capacitor-transitions Capacitor-전환을 사용하여 @capgo/capacitor-transitions의 원시 기능 Capgo Enterprise Capacitor-전환을 사용하여 @Capgo/__CAPGO_KEEP_1__-transitions의 제품 워크플로우 Ionic Enterprise Plugin Alternatives Ionic Enterprise Plugin Alternatives의 제품 워크플로우 Capgo Alternatives Capacitor-전환을 사용하여 @Capgo/__CAPGO_KEEP_1__-transitions의 제품 워크플로우 Capgo Consulting Capgo 제품 워크플로우에 대한 Capgo 컨설팅을 위한 것입니다.