我创建了一个简单的Android应用程序,在单击它时启动浏览器。但是,应用程序每次启动时都会打开一个新选项卡。这是我编写的用于启动浏览器活动的示例代码。我只需要我的代码来避免打开多个标签而不是打开已经打开的标签。
super.onCreate(savedInstanceState);
String url = "http://www.google.com";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
我知道我必须在某些时候使用EXTRA_APPLICATION_ID来避免多个标签。我只是需要帮助我如何使用它来获得我需要的结果? 谢谢你的时间。
答案 0 :(得分:0)
我认为不可能这样做,因为您必须能够访问浏览器应用程序的内部表示,这很可能是由android沙箱禁止的。如果有人认为这是不正确的,请纠正我,我过去曾试图做类似的事情。
答案 1 :(得分:0)
在搜索相关内容时发现了这个。 你完全可以这样做:
super.onCreate(savedInstanceState);
String url = "http://www.google.com";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
intent.putExtra(Browser.EXTRA_APPLICATION_ID,getPackageName() );
startActivity(i);
EXTRA_APPLICATION_ID 告诉浏览器您要重复使用同一个标签页。因此,如果没有打开的选项卡,它将打开另一个选项卡,但如果您使用此选项卡打开的选项卡之一已经打开,它将重用它。
我知道这在 Chrome 中肯定有效,但在不同的浏览器中可能会有不同的行为。