【问题标题】:An android application keeps opening new browser tab every time it's launched一个android应用程序每次启动时都会打开新的浏览器选项卡
【发布时间】:2016-06-17 20:59:54
【问题描述】:

我创建了一个简单的 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 以避免多个选项卡。我只需要帮助我如何使用它来获得我需要的结果? 感谢您的宝贵时间。

【问题讨论】:

    标签: android android-intent


    【解决方案1】:

    我不相信这样做是可能的,因为您必须有权访问浏览器应用程序的内部表示,这很可能被 android 沙箱禁止。如果有人认为这是不正确的,请纠正我,我过去曾尝试做类似的事情。

    【讨论】:

      【解决方案2】:

      在搜索相关内容时发现了这个。 你完全可以这样做:

      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,但在不同的浏览器中可能会有不同的行为。

      【讨论】:

        猜你喜欢
        • 2016-08-17
        • 2017-01-10
        • 2011-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-29
        • 2023-02-11
        相关资源
        最近更新 更多