Les liens universels sur iOS et les liens d'application sur Android permettent aux utilisateurs d'être redirigés directement dans votre application à partir d'un lien, en évitant le navigateur. Cela est particulièrement utile pour améliorer l'expérience utilisateur et maintenir le contexte d'une page web vers une application. Dans ce guide, nous passerons en revue le processus de configuration de ces liens profonds pour une application Next.js à l'aide de Capacitor. Pour l'attribution et les liens profonds différés, @capgo/capacitor-appsflyer peut router les campagnes d'installation vers l'écran approprié de l'application.
La configuration des liens profonds ne nécessite pas beaucoup de code, mais elle implique une configuration. À la fin de ce guide, vous serez en mesure de cliquer sur un lien comme https://www.capgo.app/details/22 et avoir votre application ouverte sur la page correcte si elle est installée.
Configuration des liens profonds Next.js
Premièrement, nous allons créer une nouvelle application Next.js et une page de détails pour tester :
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
Assurez-vous que votre identifiant de bundle est correctement configuré dans le capacitor.config.json fichier, car il est crucial pour la configuration :
{
"appId": "com.capgo.deeplinks",
"appName": "capgoLinks",
"webDir": "out",
"bundledWebRuntime": false
}
Pour la navigation, Next.js utilise la navigation basée sur les fichiers, donc en créant un fichier à pages/details/[id].jsnous avons déjà configuré notre route sauvage.
Dans pages/details/[id].jsnous pouvons récupérer l'ID à partir de l'URL en utilisant le routeur intégré 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
Now, voyons comment gérer le appUrlOpen l'événement avec Capacitor. Cet événement est déclenché lorsque l'application est ouverte via un schéma de URL personnalisé. Ajoutez un écouteur dans le pages/_app.js fichier :
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
Cet code écoute l'événement et navigue vers la route appropriée dans votre application Next.js. appUrlOpen Configuration iOS
Pour iOS, vous aurez besoin d'un ID d'application avec les domaines associés activés. Créez un fichier
apple-app-site-association avec le contenu suivant, en remplaçant et YOURTEAMID context : Page/zone : Site web de marketing Capgo. Rôle : Étiquette de navigation ou élément de l'interface utilisateur court. Vu dans : page trust.astro. Clé de message `et` (Et). com.your.bundleid par vos identifiants et ID de bundle réels :
{
"applinks": {
"apps": [],
"details": [
{
"appID": "YOURTEAMID.com.your.bundleid",
"paths": ["*"]
}
]
}
}
Envoyez ce fichier vers le .well-known répertoire sur votre domaine, le rendant accessible à https://www.capgo.app/.well-known/apple-app-site-association.
Dans Xcode, ajoutez le domaine à vos autorisations d'application en utilisant le format applinks:capgo.app.
Configuration Android
Pour les liens d'application Android, suivez ces étapes :
- Générez un fichier de clé de coffre si vous n'en avez pas déjà un.
- Obtenez l’empreinte SHA256 du coffre.
- Créez un fichier assetlinks.json contenant votre nom de package et l'empreinte SHA256.
- Envoyez ce fichier dans le
.well-knownrépertoire sur votre domaine.
Dans votre AndroidManifest.xml, ajoutez un intent-filter à l'élément qui gère les liens profonds : activity Après avoir téléchargé le
<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>
fichier, vous pouvez le vérifier à l'aide de l'outil de liens numériques d'actifs de Google. Si tout est correctement configuré, vous verrez une coche verte. assetlinks.json Pour construire et signer votre application, utilisez les commandes suivantes :
Cela installera l'application signée sur votre appareil Android connecté.
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__ Configurez les paramètres du projet natif
Capacitor Configure for Native Project Settings
__CAPGO_KEEP_0__ package de configuration Capacitor configure packageCréez un
npm install @capacitor/configure
package capacitor.config.yaml le fichier au niveau de votre projet :
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
Exécutez l'outil de configuration avec cette configuration :
npx cap-config run capacitor.config.yaml
Cela appliquera les paramètres spécifiés dans le fichier YAML à vos projets natifs.
Conclusion
La mise en place des liens profonds avec Capacitor pour une application Next.js implique la configuration de votre domaine et des paramètres de projet pour les deux iOS et Android. Bien que le processus nécessite une attention aux détails, il est cependant plus fluide que les méthodes plus anciennes et ne nécessite pas d'extensions supplémentaires. Vérifiez que vos fichiers de vérification de domaine sont correctement servis et vérifiez-les avec les outils de plateforme correspondants. Une fois configuré, votre application s'ouvrira de manière fluide à partir de liens web, offrant une transition smooth pour vos utilisateurs de la web à l'application.
Continuez de la section suivante : Comment intégrer les liens universels dans Next.js avec Capacitor
Si vous utilisez Comment intégrer les liens universels dans Next.js avec Capacitor pour planifier le travail de plugin natif, connectez-l’avec Capgo Répertoire des plugins pour le flux de travail du produit dans Capgo Répertoire des plugins, Capacitor Plugins par Capgo pour les détails d'implémentation dans Capacitor Plugins par Capgo Ajouter ou Mettre à Jour les Plugins pour les détails d'implémentation dans Ajouter ou Mettre à Jour les Plugins Alternatives aux Plugins Ionic Enterprise pour le flux de travail du produit dans Alternatives aux Plugins Ionic Enterprise, et Capgo Builds Natives pour le flux de travail du produit dans Capgo Builds Natives.