androidurlandroid-intentandroid-browser

How can I open a URL in Android's web browser from my application?


How to open a URL from code in the built-in web browser rather than within my application?

I tried this:

try {
    Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(download_link));
    startActivity(myIntent);
} catch (ActivityNotFoundException e) {
    Toast.makeText(this, "No application can handle this request."
        + " Please install a webbrowser",  Toast.LENGTH_LONG).show();
    e.printStackTrace();
}

but I got an Exception:

No activity found to handle Intent{action=android.intent.action.VIEW data =www.google.com

Solution

  • Try this:

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

    That works fine for me.

    As for the missing "http://" I'd just do something like this:

    if (!url.startsWith("http://") && !url.startsWith("https://"))
       url = "http://" + url;
    

    I would also probably pre-populate your EditText that the user is typing a URL in with "http://".



    In Kotlin:

    if (!url.startsWith("http://") && !url.startsWith("https://")) {
        url = "http://$url"
    }
    
    val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
    startActivity(browserIntent)