iOSのユニバーサルリンクとAndroidのアプリリンクにより、ユーザーはリンクから直接アプリにアクセスでき、ブラウザをバイパスすることができます。これは、ユーザーエクスペリエンスの向上や、ウェブページからアプリへのコンテキストの維持に特に役立ちます。このガイドでは、Capacitorを使用してNextjsアプリのディープリンクを設定するプロセスについて説明します。
ディープリンクの設定には多くのコードは必要ありませんが、いくつかの構成が関与します。このガイドの終わりには、https://www.capgoapp/details/22
のようなリンクをクリックし、アプリがインストールされている場合は正しいページが開く状態にすることができます。
Nextjsディープリンク設定
まず、新しいNextjsアプリとテスト用の詳細ページを作成します。
capacitorconfigjsonファイルにバンドルIDが正しく設定されていることを確認してください。これは設定にとって重要です。
ルーティングに関して、Nextjsはファイルベースのルーティングを使用しているため、pages/details/[id].js
というファイルを作成することで、既にワイルドカードルートが設定されています。
pages/details/[id].js
では、Nextjsの組み込みルーターを使用してURLからIDを取得できます。
次に、Capacitorを使ってappUrlOpen
イベントを処理します。このイベントは、カスタムURLスキームを介してアプリが開かれたときにトリガーされます。pages/_app.js
ファイルにリスナーを追加します。
このコードはappUrlOpen
イベントをリッスンし、Nextjsアプリ内の適切なルートにナビゲートします。
iOS設定
iOSの場合、関連ドメインが有効なアプリIDが必要です。次の内容でapple-app-site-associationファイルを作成し、YOURTEAMID
とcom.your.bundle.id
を実際のチームIDとバンドルIDに置き換えます。
このファイルをドメインのwell-known
ディレクトリにアップロードし、https://www.capgoapp/well-known/apple-app-site-association
でアクセスできるようにします。
Xcodeで、applinks:capgoapp
の形式を使用してアプリの権限にドメインを追加します。
Android設定
Androidアプリリンクについては、以下の手順に従ってください。
- もしキーストアファイルを持っていない場合は生成してください。
- キーストアからSHA256フィンガープリントを取得します。
- パッケージ名とSHA256フィンガープリントを持つassetlinks.jsonファイルを作成します。
- このファイルをドメインの
well-known
ディレクトリにアップロードします。
AndroidManifest.xml
で、ディープリンクを処理するactivity
要素にintent-filter
を追加します。
assetlinks.json
ファイルをアップロードした後、GoogleのDigital Asset Linksツールを使用して確認できます。すべてが正しく設定されていれば、緑のチェックマークが表示されます。
アプリをビルドし、署名するには、以下のコマンドを使用します。
これにより、接続されたAndroidデバイスに署名されたアプリがインストールされます。
Capacitorのネイティブプロジェクト設定の構成
ネイティブプロジェクト設定を自動化するために、Capacitor configureパッケージの使用を検討してください。プロジェクトにインストールします。
プロジェクトのルートにcapacitorconfig.yaml
ファイルを作成します。
この構成で構成ツールを実行します。
これにより、YAMLファイルに指定された設定がネイティブプロジェクトに適用されます。
結論
Nextjsアプリ用にCapacitorでディープリンクを設定するには、iOSおよびAndroidの両方についてドメインとプロジェクト設定の構成が必要です。このプロセスは細部に注意を必要としますが、古い方法と比べて効率的であり、追加のプラグインは必要ありません。ドメイン検証ファイルが正しく提供されていることを確認し、それらを各プラットフォームのツールでチェックしてください。設定が完了すると、ユーザーはウェブからアプリに移行する際にスムーズでシームレスな体験が得られます。