如何从我的应用程序在 Android 的网络浏览器中打开 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

原文由 Arutha 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

尝试这个:

 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;

我也可能会预先填充用户正在使用“http://”输入 URL 的 EditText。

原文由 Mark B 发布,翻译遵循 CC BY-SA 3.0 许可协议

科林扩展功能。

  fun Activity.openWebPage(url: String?) = url?.let {
    val intent = Intent(Intent.ACTION_VIEW, Uri.parse(it))
    if (intent.resolveActivity(packageManager) != null) startActivity(intent)
}

原文由 Shivanand Darur 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题