comment créer des liens depuis mon site Web pour les diriger vers mon application si elle est installée

Dec 24 2020

Ce que j'aimerais réaliser

Lorsqu'un utilisateur clique sur un lien de mon site Web, j'aimerais qu'il dirige le lien spécifique à l'utilisateur dans mon application (s'il est installé). S'il n'est pas installé, demandez à l'utilisateur de créer un lien dans le navigateur.

Exemple:

L'utilisateur reçoit un e-mail avec un lien appelé: www.myapp.com/someplaceinmyapp Il accède à cette page de mon application si elle est installée. Sinon, accédez à cette page dans le navigateur.

Gardez à l'esprit que ce sera pour toutes les pages de mon application. Cela s'applique donc à tout lien de ma page Web.

Mes questions

Y a-t-il un nom spécifique pour cela? Je connais les liens profonds et les liens d'applications, mais je ne sais pas lequel est pour moi. 

Est-ce seulement possible? Je ne sais même pas si c'est possible pour le moment. 

Le code pour cela sera-t-il dans le webage ou dans l'application? par exemple: Javascript ou Kotlin ou quelque chose dans le fichier manifeste.

Comment puis-je faire cela? C'est probablement ce dont j'ai le plus besoin.

Remarques

J'ai quelque chose dans ma page Web qui montre une fenêtre contextuelle (uniquement dans le navigateur) qui dit "Utiliser l'application". S'il n'est pas installé, puis va au Play Store. S'il est installé, il accède à la page d'accueil de mon site Web dans mon application. J'ai trouvé comment le faire à partir d' ici en utilisant la réponse avec le plus de votes (pas celle acceptée) donc dans mon manifeste, j'ai:

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="http"
                android:host="www.myapp.com"
                android:pathPrefix="/install.html" />
        </intent-filter>

Si vous avez quelque chose à ajouter à mes questions, je l’ajouterai avec plaisir.

Réponses

SamChen Dec 25 2020 at 02:55

Pour entrer des informations spécifiques Activityou Fragmentde votre application à partir d'une URL, il est recommandé d' utiliser des liens profonds à partir du composant de navigation.

1. Ajoutez un lien profond d'URL dans le fichier de ressources de navigation (à partir du panneau Attributs):

<fragment
    android:id="@+id/studentEditorFragment"
    android:name="com.example.roomtest.studentEditor.StudentEditorFragment"
    android:label="StudentEditorFragment"
    tools:layout="@layout/fragment_student_editor">

    <argument
        android:name="studentId"
        app:argType="long" />

    <deepLink
        android:id="@+id/deepLink"
        app:uri="www.example.com/roomTest/{studentId}" />       //here, company domain name followed by application path or argument

</fragment>

2. Ajoutez l'attribut de navigation dans le AndroidManifestfichier:

<activity android:name=".MainActivity">                 //【inside the "<activity>" tag】
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

    <nav-graph android:value="@navigation/navigation" />        //here
</activity>

3. Utilisez le lien dans le navigateur Web ou le message texte: "www.example.com/roomTest/-1"

  • Pour passer plusieurs arguments, connectez-les simplement par "&" comme: "www.example.com/roomText/-1&true" (reformatez "&" en xml comme demandé).

  • Vidéo utile: https://www.youtube.com/watch?v=hEJ78_KLcfA

  • Lecture utile: https://developer.android.com/guide/navigation/navigation-deep-link

  • Comportement de la pile arrière de Deep Link: https://stackoverflow.com/a/50359375/3466808

Amy Jan 06 2021 at 07:01

J'ai trouvé que le moyen de le faire consistait à utiliser l'assistant App Links, que vous pouvez trouver dans le studio Android sous Outils -> Assistant App Links. Voici ce que vous devriez voir sur le côté une fois que vous l'ouvrez:

Étape 1

Cliquez sur "Ouvrir l'éditeur de mappage d'URL", puis ajoutez un mappage d'URL (cliquez sur le "+"). Dans l'hébergeur, mettez le lien de votre site Web par exemple:https://www.example.com. Pour Chemin, dans la zone de sélection, sélectionnez simplement "chemin" et ne mettez rien dans la zone de type.

Étape 2

Le bouton Sélectionner une activité ne fonctionne pas pour Kotlin, voici donc le code que vous devez insérer manuellement.

    override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)
    handleIntent(intent)
}

private fun handleIntent(intent: Intent) {
    val wbWebView = findViewById<View>(R.id.your_webview) as WebView
    val appLinkAction = intent.action
    val appLinkData = intent.data
    if (Intent.ACTION_VIEW == appLinkAction && appLinkData != null) {
            wbWebView.loadUrl(appLinkData.toString())
    } else {
        // default link that it goes to when opening app
        wbWebView.loadUrl("https://www.example.com")
    }
}

et dans votre onCreate ajouter handleIntent(intent)

Étape 3

Cliquez sur «Ouvrir le générateur de fichiers de liens d'actifs numériques». La plupart des informations seront déjà renseignées, vous pouvez donc continuer en cliquant sur «Générer un fichier de liens d'actifs numériques». Créez un dossier appelé ".well-known" dans votre site Web, puis placez-y un fichier appelé "assetlinks.json", collez-y l'aperçu. Alors quand tu vas àhttps://www.yourwebsite.com/.well-known/assetlinks.jsonvous devriez pouvoir voir le fichier de liens d'actifs numériques. Vous pouvez également voir d'autres sites Web Fichier de liens d'actifs numériques. Comme pour google,https://www.google.com/.well-known/assetlinks.json.

Ensuite, cliquez sur le bouton "Lier et vérifier". Si tout se passe bien, vous devriez voir ceci apparaître sous le bouton:

Étape 4

Il est temps de tester! Allez-y, cliquez sur "Tester les liens de l'application" et insérez une URL à partir de votre site Web. Si tout se passe bien, vous ne devriez pas voir de dialogue de désambiguïsation.

J'aime aussi faire des tests supplémentaires en m'envoyant un e-mail avec le lien.

Remarques

Vous ne pouvez utiliser l'assistant de liens d'application que si votre site Web utilise https au lieu de http.

J'ai ajouté android:launchMode="singleTask"à mon tag d'activité dans le manifeste, cela signifie que si vous cliquez sur un lien de votre site Web dans un e-mail, il s'ouvrira dans une nouvelle fenêtre.

Ils ont un document à ce sujet ici qui comprend une vidéo (gardez à l'esprit qu'ils utilisent java)

AlphaOne Dec 24 2020 at 10:43

Utilisez les liens de l'application Android dans votre application. S'il est mis en œuvre correctement, l'utilisateur sera déplacé directement vers la destination spécifiée dans l'application.

Plus d'informations à ce sujet dans ces documents:

Vérifier les liens des applications Android

Créer un lien profond implicite