Home > Android > Android: Opening a webpage in your app using Intents

Android: Opening a webpage in your app using Intents

January 25th, 2010 mat Leave a comment Go to comments

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.

Bookmark and Share
Categories: Android Tags: , ,
  1. January 25th, 2010 at 22:15 | #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. January 25th, 2010 at 22:21 | #2

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

  1. No trackbacks yet.
// unused langs // // // //