Pasar al contenido principal
Enlaces Profundos

Cómo integrar enlaces universales en Next.js con Capacitor

Aprende paso a paso cómo configurar enlaces universales para tu aplicación de Next.js con Capacitor en ambas plataformas iOS y Android.

Martin Donadieu

Martin Donadieu

Gerente de Contenido

Cómo Integrar Enlaces Universales en Next.js con Capacitor

Los enlaces universales en iOS y los enlaces de la aplicación en Android permiten a los usuarios ser llevados directamente a su aplicación desde un enlace, evitando el navegador. Esto es particularmente útil para mejorar la experiencia del usuario y mantener el contexto desde una página web a una aplicación. En este guía, recorreremos el proceso de configuración de estos enlaces profundos para una aplicación Next.js utilizando Capacitor. Para la atribución y los enlaces profundos diferidos, @capgo/capacitor-appsflyer puede enviar campañas de instalación a la pantalla correcta de la aplicación.

Configurar enlaces profundos no requiere mucho code, pero sí implica algunas configuraciones. Al final de esta guía, podrás hacer clic en un enlace como https://www.capgo.app/details/22 y tener tu aplicación abierta a la página correcta si está instalada.

Primero, crearemos una nueva aplicación Next.js y una página de detalles para probar:

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

Verifica que tu ID de paquete está correctamente configurado en el capacitor.config.json archivo, ya que es crucial para la configuración:

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

Para la ruta, Next.js utiliza la ruta basada en archivos, por lo que al crear un archivo en pages/details/[id].js, ya hemos configurado nuestra ruta wildcard.

En pages/details/[id].js, podemos recuperar el ID desde la URL utilizando el router integrado de Next.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

Ahora, manipulemos el appUrlOpen evento con Capacitor. Este evento se desencadena cuando la aplicación se abre mediante un esquema de URL personalizado. Agregue un escuchador en el pages/_app.js archivo:

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

Este code escucha el appUrlOpen evento y navega hacia la ruta adecuada dentro de tu aplicación Next.js.

Configuración de iOS

Para iOS, necesitarás un ID de aplicación con Dominios Asociados habilitados. Crea un archivo apple-app-site-association con el siguiente contenido, reemplazando YOURTEAMID y com.your.bundleid con tu ID de equipo y ID de paquete real:

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

Sube este archivo a la .well-known carpeta en tu dominio, haciéndolo accesible en https://www.capgo.app/.well-known/apple-app-site-association.

En Xcode, agrega el dominio a las autorizaciones de tu aplicación utilizando el formato applinks:capgo.app.

Configuración de Android

Para Android App Links, sigue estos pasos:

  1. Genera un archivo de keystore si no lo tienes.
  2. Obtén la huella SHA256 del keystore.
  3. Crear un archivo de assetlinks.json con tu nombre de paquete y huella SHA256. Sube este archivo a la
  4. carpeta en tu dominio. .well-known En tu

, agrega un AndroidManifest.xmla la intent-filter elemento que maneja los enlaces profundos: activity Después de subir el

<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>

archivo a assetlinks.json Puedes verificarlo utilizando la herramienta de enlaces de activos digitales de Google. Si todo está configurado correctamente, verás un signo de verificación verde.

Para compilar y firmar tu aplicación, utiliza los siguientes comandos:

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

Esto instalará la aplicación firmada en tu dispositivo Android conectado.

Capacitor Configura para Configuración de Proyecto Nativo

Para automatizar la configuración de proyectos nativos, considera utilizar el Capacitor paquete de configuración. Instálalo en tu proyecto:

npm install @capacitor/configure

Crea un capacitor.config.yaml archivo en la raíz de tu proyecto:

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

Ejecuta la herramienta de configuración con esta configuración:

npx cap-config run capacitor.config.yaml

Esto aplicará los ajustes especificados en el archivo YAML a tus proyectos nativos.

Conclusión

Configurando enlaces profundos con Capacitor para una aplicación Next.js implica configurar su dominio y ajustes de proyecto tanto para iOS como para Android. Si bien el proceso requiere atención a los detalles, se ha simplificado en comparación con métodos anteriores y no requiere plugins adicionales. Asegúrese de que los archivos de verificación de dominio se sirvan correctamente y los verifique con las herramientas de plataforma correspondientes. Una vez configurado, su aplicación se abrirá de manera fluida desde enlaces web, proporcionando una transición suave para sus usuarios desde la web a la aplicación.

Si está utilizando Cómo Integrar Enlaces Universales en Next.js con Capacitor para planificar el trabajo de plugin nativo, conecte con Directorio de Plugins de Capgo para el flujo de trabajo del producto en Directorio de Plugins de Capgo Plugins de Capacitor por Capgo para el detalle de implementación en Plugins de Capacitor por Capgo Agregar o Actualizar Plugins para el detalle de implementación en Agregar o Actualizar Plugins Alternativas de Plugins de Empresa de Ionic para el flujo de trabajo del producto en Ionic Enterprise Plugin Alternatives, y Capgo Construcción Nativa para el flujo de trabajo del producto en Capgo Construcción Nativa.

Actualizaciones en vivo para aplicaciones Capacitor

Cuando un error en la capa web está activo, envía la corrección a través de Capgo en lugar de esperar días para la aprobación de la tienda. Los usuarios reciben la actualización en segundo plano mientras los cambios nativos siguen en el camino de revisión normal.

Iniciar Ahora

Últimas noticias de nuestro Blog

Capgo te da las mejores perspectivas que necesitas para crear una aplicación móvil verdaderamente profesional.