Question Envoi d'une intention au navigateur pour ouvrir une URL spécifique [en double]


Cette question a déjà une réponse ici:

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

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


628
2018-06-09 09:21


origine


Réponses:


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);

Ici se trouve le documentation de Intent.ACTION_VIEW.


La source: Ouvrir une URL dans le navigateur Web d'Android à partir de l'application


1503
2018-06-09 09:26



La version courte

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

devrait fonctionner aussi bien ...


165
2017-08-04 20:21



La version la plus courte

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

135
2018-05-10 10:33



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);

76
2018-04-12 09:10



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

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

pourrait être changé en une version de code court ...

Intent intent = new Intent(Intent.ACTION_VIEW).setData(Uri.parse("http://www.stackoverflow.com"));      
startActivity(intent); 

ou

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

ou même plus court!

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

Plus d'info sur Intention

=)


34
2017-10-10 22:35



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

Vous pouvez utiliser le géo  URI préfixe:

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

24
2017-12-21 01:52



De XML

Dans le cas où vous avez l'adresse Web / URL affichée sur votre affichage et que vous voulez qu'il soit clikable et diriger l'utilisateur vers un site Web particulier Vous pouvez utiliser:

android:autoLink="web"

De la même manière, vous pouvez utiliser différents attributs d'autoLink (email, téléphone, carte, tout) pour accomplir votre tâche ...


10
2017-07-19 13:14



"Y a-t-il aussi un moyen de transmettre les coordonnées directement à Google Maps pour les afficher?"

J'ai trouvé que si je transmets une URL contenant les coordonnées au navigateur, Android me demande si je veux le navigateur ou l'application Maps, tant que l'utilisateur n'a pas choisi le navigateur par défaut. Voir ma réponse ici pour plus d'informations sur la mise en forme de l'URL.

Je suppose que si vous utilisiez l'intention de lancer l'application Google Maps avec les coeurs, cela fonctionnerait également.


6
2018-05-31 06:13