Las cadenas universales en iOS y las Cadenas de Aplicación en Android permiten a los usuarios ser llevados directamente a tu 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, caminaremos por el proceso de configurar estas cadenas profundas para una aplicación Next.js utilizando Capacitor. Para la atribución y las cadenas profundas diferidas, @capgo/capacitor-appsflyer puedes enviar campañas de instalación a la pantalla correcta en la aplicación.
Configurar las cadenas profundas 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 que tu aplicación esté abierta a la página correcta si está instalada.
Configuración de enlaces profundos de Next.js
Primero, crearemos una nueva aplicación de 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
Asegúrate de que tu identificador de paquete esté configurado correctamente en el archivo capacitor.config.json ya que es crucial para la configuración:
{
"appId": "com.capgo.deeplinks",
"appName": "capgoLinks",
"webDir": "out",
"bundledWebRuntime": false
}
Para la navegación, Next.js utiliza la navegación basada en archivos, por lo que al crear un archivo en pages/details/[id].jsya hemos configurado nuestra ruta wildcard.
En pages/details/[id].jspodemos 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, maneje el appUrlOpen evento con Capacitor. Este evento se desencadena cuando la aplicación se abre mediante un esquema de URL personalizado. Agregue un oyente 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 a la ruta adecuada dentro de su aplicación Next.js.
Configuración de iOS
Para iOS, necesitará 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 su ID de equipo y ID de paquete reales:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "YOURTEAMID.com.your.bundleid",
"paths": ["*"]
}
]
}
}
Suba este archivo a .well-known directorio 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 enlaces de aplicaciones de Android, sigue estos pasos:
- Genera un archivo de keystore si no lo tienes.
- Obtén la huella SHA256 del keystore.
- Crea un archivo de assetlinks.json con tu nombre de paquete y huella SHA256. Sube este archivo al
- directorio en tu dominio.
.well-knownEn tu
directory on your domain, making it accessible at __CAPGO_KEEP_0__ AndroidManifest.xmlagrega un intent-filter al elemento que maneja enlaces profundos: activity Después de subir el archivo, puedes verificarlo utilizando la herramienta de enlaces digitales de Google. Si todo está configurado correctamente, verás un marcador de verificación verde.
<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>
Para compilar y firmar tu aplicación, utiliza los siguientes comandos: assetlinks.json Esto instalará la aplicación firmada en tu dispositivo Android conectado.
__CAPGO_KEEP_0__ Configura para Configuración de Proyecto Nativo
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
Para automatizar la configuración de proyecto nativo, considera utilizar el
Capacitor paquete de configuración
. Instálalo en tu proyecto: Capacitor configure packageCrear un proyecto
npm install @capacitor/configure
Crear un proyecto 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
Configurar enlaces profundos con Capacitor para una aplicación Next.js implica configurar tu 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úrate de que los archivos de verificación de dominio se estén sirviendo correctamente y revisalos con las herramientas de plataforma correspondientes. Una vez configurado, tu aplicación se abrirá de manera fluida desde enlaces web, proporcionando una transición suave para tus usuarios desde la web a la aplicación.
Sigue adelante desde Cómo Integrar Enlaces Universales en Next.js con Capacitor
Si estás utilizando Cómo Integrar Enlaces Universales en Next.js con Capacitor para planificar el trabajo de plugin nativo, conectalo con Capgo Directorio de Plugins para el flujo de trabajo del producto en Capgo Directorio de Plugins, Capacitor Plugins por Capgo para los detalles de implementación en Capacitor Plugins por Capgo, Agregar o Actualizar Plugins para los detalles de implementación en Agregar o Actualizar Plugins, Alternativas de Plugins de Ionic Enterprise para el flujo de trabajo del producto en Alternativas de Plugins de Ionic Enterprise, y Capgo Builds Nativos para el flujo de trabajo del producto en Capgo Builds Nativos.