はじめに
このプラグインのインストール手順とマークダウンガイドを含むセットアップのコピー用テキストをコピーします。
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.
インストール
「インストール」のセクションAI-Assisted セットアップを使用してプラグインをインストールできます。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'; -
ルーティングされたページをラップ
<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 セットアップ
「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」のセクションインポート @capgo/capacitor-transitions/react JSX の型定義を含む cap-router-outlet, cap-page, cap-header, cap-content、 cap-footer. React プロジェクトの多くでは、その import は TSX でカスタム要素を有効にします。
TypeScript がまだ報告する場合 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 カスタムの TypeScript または webpack の設定を使用する場合、そのフォルダを含めてください:
{ "include": ["src", "src/capgo-transitions.d.ts"]}For custom TypeScript or webpack setups that use a separate types/ folder, include that folder instead:
{ "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 ネイティブがトップとボトムバーを管理し、ウェブコンテンツがアイオニックスタイルのページ動作を維持する場合に使用します。
-
ネイティブナビゲーション パッケージをインストールして同期する:
ターミナル画面 npm install @capgo/native-navigationnpx cap sync -
ネイティブの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' },});}
ネイティブのトップバーを再度動的にレンダリングしないようにします。 <cap-header>. Let @capgo/native-navigation ネイティブのバーを維持し、WebView ページの下にあるコンテンツに使用してください。 @capgo/capacitor-transitions コンポーネント
「コンポーネント」セクション
「<cap-router-outlet>」セクション<cap-router-outlet>
属性| タイプ | デフォルト | 説明 | Components |
|---|---|---|---|
platform | 'ios' | 'android' | 'auto' | 'auto' | アニメーションスタイル |
duration | number | プラットフォームのデフォルト | アニメーション時間(ミリ秒) |
keep-in-dom | boolean | true | 非アクティブページをDOMに保持する |
max-cached | number | 10 | キャッシュされたページの最大数 |
swipe-gesture | boolean | 'auto' | 'auto' | iOSのエッジジェスチャーを有効、無効、またはネイティブ検出する |
メソッド:
push(element, config?)pop(config?)setRoot(element, config?)setSwipeGesture(true | false | 'auto')
<cap-page>
<cap-page>というセクション<cap-page>というセクション内のページを1つ包み、ライフサイクルイベントを発行する:
cap-will-entercap-did-entercap-will-leavecap-did-leave
<cap-content>
<cap-content>というセクション| 属性 | 型 | デフォルト | 説明 |
|---|---|---|---|
fullscreen | boolean | false | ヘッダーに表示されるコンテンツをスクロールできるようにします |
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
__CAPGO_KEEP_0__
Getting Startedから続きますCapgoを使用している場合 はじめに 企業の移行とエンタープライズオペレーションを計画するには、 Capgoの@capgo/capacitor-transitionsを使用 Capgoの@capgo/capacitor-transitionsのネイティブ機能 Capgo エンタープライズ for the product workflow in Capgo Enterprise, Capgoの@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-transitionsの製品ワークフロー イオニックエンタープライズプラグインの代替 Capgo Alternatives for the product workflow in Capgo Alternatives, and Capgo Consulting for the product workflow in Capgo Consulting.