コンテンツにスキップ

__CAPGO_KEEP_0__

  1. パッケージをインストールしてください

    ターミナルウィンドウ
    npm install @capgo/capacitor-transitions
  2. ウェブコンポーネントを登録

    import '@capgo/capacitor-transitions';
  3. ルーティングされたページをラップ

    <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();

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

インポート @capgo/capacitor-transitions/react __CAPGO_KEEP_0__のJSXの型定義を含みます。 cap-router-outlet, cap-page, cap-header, cap-contentcap-footer。ほとんどのReactプロジェクトでは、そのインポートはTSXでカスタム要素を有効にします。

TypeScriptがまだ Property 'cap-router-outlet' does not exist on type 'JSX.IntrinsicElements'を報告している場合、プロジェクトの宣言ファイルを追加してください。

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

Vite、Create React App、およびほとんどのwebpack Reactアプリでは、そのファイルを src/ に置くだけで十分です。Next.jsの場合は、 src/ またはプロジェクトのルートに置いて、 tsconfig.json を含むようにしてください:

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

カスタムのTypeScriptまたはwebpack設定が別の types/ フォルダを使用する場合、そのフォルダを含めてください:

{
"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 __CAPGO_KEEP_0__がネイティブがトップとボトムバーを所有し、Webコンテンツがイオニックスタイルのページモーションを維持する場合に使用します。

  1. ネイティブナビゲーションパッケージをインストールして同期する:

    ターミナル画面
    npm install @capgo/native-navigation
    npx cap sync
  2. ネイティブのChromeを設定:

    import { NativeNavigation } from '@capgo/native-navigation';
    await NativeNavigation.configure({
    contentInsetMode: 'css',
    });
    await NativeNavigation.setNavbar({
    title: 'Inbox',
    backButton: { visible: false },
    });
  3. __CAPGO_KEEP_0__のWebトランジションアウトレットは、ページのみを責任を持つようにしてください。

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

ネイティブのトップバーはもう一度動かさないでください。 . Let <cap-header>ネイティブのバーを維持し、WebViewのページコンテンツの下に使用してください。 @capgo/native-navigation 両方のシステムを同じルーターエベントからドライブする: これにより、両方のシステムが同じイベントを共有し、開発者が両方のシステムを同期させることができます。 @capgo/capacitor-transitions ネイティブのトップバーはもう一度動かさないでください。 . Let

属性タイプデフォルト説明
platform'ios' | 'android' | 'auto''auto'アニメーションスタイル
durationnumberプラットフォームデフォルト__CAPGO_KEEP_0__
keep-in-dombooleantrue__CAPGO_KEEP_1__
max-cachednumber10最大キャッシュページ数
swipe-gestureboolean | 'auto''auto'iOS エッジ ゲストを有効、無効、またはネイティブ検出

メソッド:

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

<cap-page>タグは1つのページを囲み、ライフサイクルイベントを発行します。

  • cap-will-enter
  • cap-did-enter
  • cap-will-leave
  • cap-did-leave
属性デフォルトヘッダー後ろにコンテンツをスクロールさせる
fullscreenbooleanfalse水平方向のスクロールを有効にする
scroll-xbooleantrue垂直方向のスクロールを有効にする
scroll-ybooleantrue__CAPGO_KEEP_0__

フレームワーク ヘルパー

フレームワーク ヘルパー

フレームワークのエントリポイントは、同じコア ヘルパーを公開しています:

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を使用している場合 Getting Startedを使用して、移行とエンタープライズ オペレーションの計画に接続します。 Using @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-transitions Using @capgo/capacitor-transitions Using @capgo/capacitor-transitions Capgo Enterprise Capgoの製品ワークフローについて Ionic Enterprise Plugin Alternatives Ionic Enterprise Plugin Alternativesの製品ワークフローについて Capgo Alternatives Capgo Alternativesの製品ワークフローについて Capgo Consulting Capgo Consultingの製品ワークフローについて