How to Integrate Universal Links in Next.js with __CAPGO_KEEP_0__
Universal Linking

How to Integrate Universal Links in Next.js with Capacitor

Learn step by step how to set up universal links for your Next.js app with Capacitor on both iOS and Android platforms.

マーティン・ドナディエ

マーティン・ドナディエ

コンテンツマーケター

How to Integrate Universal Links in Next.js with Capacitor

Universal links on iOS and App Links on Android allow users to be taken directly into your app from a link, bypassing the browser. This is particularly useful for improving user experience and maintaining the context from a web page to an app. In this guide, we’ll walk through the process of setting up these deep links for a Next.js app using Capacitor. For attribution and deferred deep links, @capgo/capacitor-appsflyer インストールキャンペーンを正しいインアプリ画面にルーティングすることができます。

Setting up deep links doesn’t require a lot of code, but it does involve some configuration. By the end of this guide, you’ll be able to click a link like https://www.capgo.app/details/22 とインストールされている場合は、正しいページを開くようにアプリを設定します。

最初に、Next.js アプリとテスト用の詳細ページを作成します:

npx create-next-app@latest capgoLinks
cd capgoLinks
mkdir pages/details
touch pages/details/[id].js
npm run build
npx cap add ios
npx cap add android

__CAPGO_KEEP_0__.config.json ファイル内の bundle ID capacitor.config.json 設定はこのファイルに依存しているためです:

{
  "appId": "com.capgo.deeplinks",
  "appName": "capgoLinks",
  "webDir": "out",
  "bundledWebRuntime": false
}

ルーティングの場合、Next.js はファイルベースのルーティングを使用しているため、 pages/details/[id].jsファイルを作成することで、ワイルドカード ルートをすでに設定済みです。

ここで、URL から ID を取得できます。 pages/details/[id].jsNext.js の組み込みルーターを使用します:

import { useRouter } from 'next/router'

function DetailsPage() {
  const router = useRouter()
  const { id } = router.query

  return (
    <div>
      <p>My ID: {id}</p>
    </div>
  )
}

export default DetailsPage

今度は、 appUrlOpen Capacitor pages/_app.js このイベントは、カスタムURLスキームを介してアプリが開かれたときにトリガーされます。

import { useEffect } from 'react'
import { App } from '@capacitor/app'

function MyApp({ Component, pageProps }) {
  useEffect(() => {
    App.addListener('appUrlOpen', (event) => {
      const slug = event.url.split('.app').pop()
      if (slug)
        window.location.href = slug

    })
  }, [])

  return <Component {...pageProps} />
}

export default MyApp

This code listens for the appUrlOpen __CAPGO_KEEP_0__

この

イベントを待ち受け、Next.jsアプリケーション内で適切なルートに移動します。 iOSの設定 iOSの場合、アプリIDにAssociated Domains機能が有効になっている必要があります。 YOURTEAMID apple-app-site-association com.your.bundleid 以下の内容でファイルを作成し、

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "YOURTEAMID.com.your.bundleid",
        "paths": ["*"]
      }
    ]
  }
}

.well-known ドメイン内にディレクトリを作成し、ドメイン内にアクセス可能にする https://www.capgo.app/.well-known/apple-app-site-association.

Xcodeで、ドメインをアプリの特権に追加する。形式は applinks:capgo.app.

Android設定

Androidアプリのリンクの場合、以下の手順に従ってください。

  1. キーストアファイルを生成する必要がある場合は、キーストアファイルを生成してください。
  2. キーストアファイルからSHA256の指紋を取得する。
  3. __CAPGO_KEEP_0__ パッケージ名とSHA256の指紋を含むassetlinks.jsonファイルを作成する。 このファイルをドメイン内の
  4. ドメイン内にディレクトリを作成し、ドメイン内にアクセス可能にする .well-known ドメイン

ドメイン AndroidManifest.xml, add an intent-filteractivity element that handles deep links:

<activity ...>
  <intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="https" android:host="capgo.app" />
  </intent-filter>
</activity>

ファイルをアップロードした後、GoogleのDigital Asset Linksツールを使用して確認できます。設定が正しくされている場合、緑のチェックマークが表示されます。 assetlinks.json アプリをビルドして署名するには、以下のコマンドを使用してください:

このコマンドは、接続されているAndroidデバイスに署名済みのアプリをインストールします。

cd android
./gradlew assembleRelease
cd ..
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore android/app/build/outputs/apk/release/app-release-unsigned.apk alias_name
zipalign -v 4 android/app/build/outputs/apk/release/app-release-unsigned.apk capgo.apk
adb install capgo.apk

__CAPGO_KEEP_0__ Native Project Settingsを設定する

Capacitor Configure for Native Project Settings

__CAPGO_KEEP_0__ configureパッケージ Capacitor configure package作成

npm install @capacitor/configure

Create a capacitor.config.yaml プロジェクトのルートディレクトリにあるファイル:

vars:
  BUNDLE_ID: com.capgo.deeplinks
  PACKAGE_NAME: com.capgo.deeplinks
platforms:
  ios:
    targets:
      App:
        bundleId: $BUNDLE_ID
    entitlements:
      - com.apple.developer.associated-domains: ['applinks:capgo.app']
  android:
    packageName: $PACKAGE_NAME

この設定ファイルでconfigureツールを実行してください:

npx cap-config run capacitor.config.yaml

__CAPGO_KEEP_0__のYAMLファイルに記載されている設定を、ネイティブプロジェクトに適用します。

まとめ

CapacitorのNext.jsアプリにデープリンクを設定するには、iOSとAndroidの両方のドメインとプロジェクト設定を構成する必要があります。プロセスには細かい注意が必要ですが、古い方法と比べると簡素化されており、追加のプラグインが必要ありません。ドメインの検証ファイルが正しく配信されていることを確認し、各プラットフォームのツールで確認してください。設定が完了すると、アプリはウェブからアプリへの移行をスムーズに実現するようになります。

__CAPGO_KEEP_2__を使用している場合 Capacitorの「How to Integrate Universal Links in Next.js」 __CAPGO_KEEP_0__を「__CAPGO_KEEP_0__ Plugin Directory」に接続してください。 「Capgo Plugin Directory」で「Capgo」の製品ワークフローを設定してください。 Capgo「__CAPGO_KEEP_1__」によって提供されている「Capgo」プラグイン Capacitor Plugins by Capgo 実装詳細については Capacitor プラグインの Capgo を参照してください。 プラグインの追加または更新 実装詳細についてはプラグインの追加または更新を参照してください。 Ionic Enterprise プラグインの代替 Ionic Enterprise プラグインの代替の製品ワークフローについては、 Capgo ネイティブ ビルド 製品ワークフローについては、Capgo ネイティブ ビルドを参照してください。

Capacitor アプリのリアルタイム更新

ウェブ層のバグが生じた場合、Capgo を使用して修正を配信するのではなく、数日間待ってアプリストアの承認を待つのではなく、ユーザーはバックグラウンドで更新を受け取り、ネイティブの変更は通常のレビュー経路で残る。

今すぐ始める

最新のブログ記事

Capgo を使用すると、プロフェッショナルなモバイルアプリを作成するために必要な最良の洞察を得ることができます。