Skip to content

Android: Opening a webpage in your app using Intents

by mat on January 25th, 2010

Opening up a website from an application in android is very simple thanks to “Intents”. An Intent is a request to android use an application to preform a task. The code below shows a very simple example of launching a browser to go to the wordcube website.

Context context = getApplicationContext();
String url = "http://www.stealthcopter.com/wordcube";
Intent i = new Intent(Intent.ACTION_VIEW); 
Uri u = Uri.parse(url); 
i.setData(u); 
try {
  // Start the activity
  startActivity(i);
} catch (ActivityNotFoundException e) {
  // Raise on activity not found
  Toast toast = Toast.makeText(context, "Browser not found.", Toast.LENGTH_SHORT);
}

As pointed out in the comments, the context can be replaced by the activity itself, such as TestApp.this. eg:

Toast toast = Toast.makeText(TestApp.this, "Browser not found.", Toast.LENGTH_SHORT);

We have surrounded the activity with a try/catch which will be raised if android cannot find an application that will accept this intent, in this case a web-browser. It is highly unlikely that an android phone will not have a web-browser installed but it is a good practise to get into.

3 Comments
  1. You don’t need the getApplicationContext() line. Just use whatever Activity, Service, etc. your code is running in, as they are all subclasses of Context. Also, you can put the Uri in the Intent constructor rather than in a separate setData() call: new Intent(Intent.ACTION_VIEW, Uri.parse(“http://www.stealthcopter.com/wordcube”))

  2. Yes I usually use TestApp.this or whatever to call this function, I just wanted to show an example that would work independently.

  3. Android permalink

    You need to show your Toast messages or they don’t show up.

    Toast.makeText(TestApp.this, “Browser not found.”, Toast.LENGTH_SHORT).show();

    And of course in production code, your using resource strings, right? ;)

Leave a Reply

Note: I am currently writing my thesis so probably wont have time to reply to your comment
Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS