web-dev-qa-db-fra.com

Android Schémas d'URI vs App Links

Android App Links fonctionne uniquement à partir de Android 6.0, contrairement aux liens profonds de Android 4.2 mais quelle est la différence de comportement et de codage?

J'ai lu la documentation mais je n'ai pas vu la différence.

Liens profonds: https://developer.Android.com/training/app-indexing/deep-linking.html

Liens d'application: https://developer.Android.com/training/app-links/index.html

15
Igor Kostenko

Lien profond du schéma URI (Android 4.2)

Le lien profond du schéma URI standard (Android 4.2) a permis aux développeurs d'enregistrer une application pour le schéma URI, c'est-à-dire pinterest: // et lorsqu'un utilisateur a cliqué sur ce lien et a fait installer l'application, l'application s'ouvrait. Si l'application n'était pas installée, elle produirait une erreur "Page non trouvée".

Cela fonctionne en enregistrant une application pour répondre à un URI donné via le filtre d'intention dans le manifeste.

<intent-filter>
    <data Android:scheme="your_uri_scheme" />
    <action Android:name="Android.intent.action.VIEW" />
    <category Android:name="Android.intent.category.DEFAULT" />
    <category Android:name="Android.intent.category.BROWSABLE" />
</intent-filter>

Vous devez ensuite gérer le lien en saisissant la chaîne d'intention de l'activité donnée.

Uri data = this.getIntent().getData();
if (data != null && data.isHierarchical()) {
    String uri = this.getIntent().getDataString();
    Log.i("MyApp", "Deep link clicked " + uri);
}

REMARQUE: Si l'utilisateur venait de Chrome vous devrez inclure une gestion distincte. Chrome ne générera pas d'erreur si l'application n'est pas installé, il vous amènera au Play Store ou (en option) vous fournira une URL de secours

Liens d'application (Android 6.0)

Les liens d'application ont été introduits pour reproduire la fonctionnalité des liens universels iOS. Les liens d'application sont un moyen simple de transformer des liens de site Web en liens d'application. Par conséquent, si un lien HTTP/HTTPS normal est cliqué et que l'application correspondante est installée, elle s'ouvrira immédiatement. Si l'application n'est pas installée, un lien Web de secours est fourni.

Exigences

  • vous devez avoir un site Web fonctionnel
  • l'utilisateur doit être sur Android 6.0

Configuration

Dans le cas des liens d'application, votre manifeste sera légèrement différent.

<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="http" Android:Host="yoursite.com" />
    <data Android:scheme="https" Android:Host="yoursite.com" />
</intent-filter>

Vous devez ensuite enregistrer votre site Web pour gérer les liens d'application. Vous devez créer un fichier assetlinks.json et l'héberger sur votre site Web à yoursite.com/.well-known/assetlinks.com

/. bien connu/assetlinks.com

[{
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
         "namespace": "Android_app",
         "package_name": "io.branch.branchster",
         "sha256_cert_fingerprints": 
        ["14:6D:E9:..."]
    }
}]

Liens profonds différés

Malheureusement, aucune de ces méthodes ne prend en charge le lien profond différé, qui est la possibilité de créer un lien profond vers le contenu à l'intérieur de l'application lorsque l'application n'a pas encore été installée. Il s'agit d'une expérience utilisateur importante pour l'intégration de nouveaux utilisateurs, j'ai donc suggéré d'utiliser un tiers comme Branch (divulgation complète, je travaille pour Branch) ou Firebase. Ils gèreront toutes les fonctionnalités et les cas Edge, ainsi que d'autres fonctionnalités telles que les vues approfondies et les bannières d'application si cela vous intéresse.

15
clayjones94