如何从我的应用程序中打开Android Web浏览器中的URL?

如何从内置Web浏览器中的代码而不是在我的应用程序中打开URL?

我试过这个:

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

但我有一个例外:

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

尝试这个:

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

这对我来说很好。

至于失踪的“http://”我只是做这样的事情:

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

我也可能预先填充你的EditText,用户使用“http://”键入一个URL。


实现这一目标的常用方法是使用下一个代码:

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

可以更改为短代码版本...

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

要么 :

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

最短的! :

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

快乐的编码!


在2.3中,我的运气更好

final Intent intent = new Intent(Intent.ACTION_VIEW).setData(Uri.parse(url));
activity.startActivity(intent);

区别在于使用Intent.ACTION_VIEW而不是字符串"android.intent.action.VIEW"

链接地址: http://www.djcxy.com/p/7237.html

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

下一篇: How do you deal with Internet Explorer?