646 votes

Android: Envoi d'une intention au navigateur pour ouvrir une URL spécifique

Je me demande simplement comment lancer une intention sur le navigateur du téléphone pour ouvrir une URL spécifique et l'afficher.

Quelqu'un peut-il s'il vous plaît donner un indice?

Existe-t-il également un moyen de transmettre les coordonnées directement à Google Maps pour les afficher?

1541voto

aioobe Points 158466

Pour ouvrir une URL / un site Web, procédez comme suit:

 String url = "http://www.example.com";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
 

Voici la documentation de Intent.ACTION_VIEW .

169voto

Juri Points 14330

La version courte

 Intent i = new Intent(Intent.ACTION_VIEW, 
       Uri.parse("http://almondmendoza.com/android-applications/"));
startActivity(i);
 

devrait fonctionner aussi bien ...

138voto

Gianluca Points 581

version la plus courte: P

 startActivity(new Intent(Intent.ACTION_VIEW, 
    Uri.parse("http://www.google.com")));
 

78voto

Bakyt Points 489

Dans certains cas, l'URL peut commencer par "www". Dans ce cas, vous obtiendrez une exception:

 android.content.ActivityNotFoundException: No Activity found to handle Intent
 

L'URL doit toujours commencer par "http: //" ou "https: //" donc j'utilise ce code extrait de:

 if (!url.startsWith("https://") && !url.startsWith("http://")){
    url = "http://" + url;
}
Intent openUrlIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(openUrlIntent);
 

24voto

Phil Points 11964

Existe-t-il également un moyen de transmettre les coordonnées directement à Google Maps pour les afficher?

Vous pouvez utiliser le préfixe geo URI :

 Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("geo:" + latitude + "," + longitude));
startActivity(intent);
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: