web-dev-qa-db-fra.com

Comment créer un lien pour ouvrir une page Instagram dans une application installée sur Android?

J'ai besoin de savoir comment créer un lien pour ouvrir une page Instagram dans une application si celle-ci est installée sur un smartphone.

Une méthode simple telle que www.instagram.com/example vous relie à la page par navigateur, ce qui n’est pas ce que je veux.

Comment puis-je y arriver?

4
Ardavan ZM

Lancer instagram depuis le navigateur. Pour lancer instagram sous forme de lien, il devrait suffire de fournir un lien en tant que:

<a href="http://instagram.com/p/<picture id>">look at this instagram picture</a>

exemple: regardez cette image instagram

<a href="http://instagram.com/p/0nUyKnMJw4">look at this instagram picture</a>

Essayez d'ouvrir ce lien sur un appareil Android. De plus, n'oubliez pas qu'instagram doit être installé sur l'appareil. Pour les utilisateurs, remplacez le "p" par "_u" et l'identifiant d'image par le nom d'utilisateur.

Pourquoi ça va marcher? L'application instagram a un écouteur d'intention pour les navigations http et https

<data Android:Host="instagram.com" Android:pathPrefix="/p/" Android:scheme="http"/>
<data Android:Host="instagram.com" Android:pathPrefix="/p/" Android:scheme="https"/>
<data Android:Host="instagram.com" Android:pathPrefix="/_u/" Android:scheme="http"/>
<data Android:Host="instagram.com" Android:pathPrefix="/_u/" Android:scheme="https"/>
<data Android:Host="instagram.com" Android:pathPrefix="/_uid/" Android:scheme="http"/>
<data Android:Host="instagram.com" Android:pathPrefix="/_uid/" Android:scheme="https"/>
<data Android:Host="instagram.com" Android:pathPrefix="/_n/" Android:scheme="http"/>
<data Android:Host="instagram.com" Android:pathPrefix="/_n/" Android:scheme="https"/>

Edit: Il semble que j'avais un vieux fichier manifeste.

7
Robbe Roels

Essaye ça :

Fonctionne à 100% <a href="instagram://user?username=untitled.tiff">untitled.tiff</a>

3
undefinedtoken

Cela a fonctionné pour moi.

try {
    // mediaLink is something like "https://instagram.com/p/6GgFE9JKzm/" or 
    // "https://instagram.com/_u/sembozdemir"
    Uri uri = Uri.parse(mediaLink);
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);

    intent.setPackage("com.instagram.Android");
    startActivity(intent);
} catch (ActivityNotFoundException e) {
        Log.e(TAG, e.getMessage());
}
2
sembozdemir

Vous pouvez ouvrir par intention Android sur le lien d'ancrage du navigateur. Vous pouvez obtenir des informations détaillées ici

<a href="intent://instagram.com/#Intent;package=com.instagram.Android;scheme=https;end">Open Instagram</a>

2
Krrish Yadav

Je pense que votre meilleur choix est d’utiliser Intent, vous pouvez utiliser Intent pour envoyer des données, une intention (en d’absence d’intention) est utilisée pour "diffuser" un message et les applications qui l’écoutent répondent. 

Voyez-le comme un email que j'ai envoyé à un groupe d'amis avec qui j'ai demandé à Mark de faire quelque chose, Mark répondra mais le reste ignorera l'email.

Vous pouvez envoyer une intention en utilisant ce code (celui-ci est spécifique à votre question mais peut facilement être modifié pour répondre à d'autres besoins):

Intent insta_intent = getPackageManager().getLaunchIntentForPackage("com.instagram.Android");
insta_intent.setComponent(new ComponentName("com.instagram.Android", "com.instagram.Android.activity.UrlHandlerActivity"));

//use this if you want to open an image
insta_intent.setData(Uri.parse("http://instagram.com/p/gjfLqSBQTJ/"));

//And if you want to open a user's profile use this
insta_intent.setData(Uri.parse("http://instagram.com/_u/USER"));

startActivity(insta_intent);
0
Maarten Peels