【问题标题】:Android app opening browser in the same tab?Android应用程序在同一个选项卡中打开浏览器?
【发布时间】:2016-08-17 20:29:58
【问题描述】:

我觉得这很难解释,但我会尽力而为。 我有一个应用程序可以打开浏览器(firefox)并将信息从该应用程序作为 php 变量发送到网页,我遇到的问题是我经常这样做,每次打开浏览器都会打开一个新标签.

我知道没有办法使用 javascript 等关闭选项卡,所以有没有办法确保它始终打开到同一个当前选项卡,这样我就不会一次打开多个选项卡。

我不想在应用启动浏览器时一直关闭 firefox 选项卡。

对不起,如果它难以理解。 谢谢。

【问题讨论】:

    标签: android firefox android-browser


    【解决方案1】:

    这可能有点晚了,但我已经成功地完成了你想要的只使用 Chrome 应用程序。

    String url = "http://www.mypage.com";
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    intent.putExtra(Browser.EXTRA_APPLICATION_ID, "com.android.chrome");
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent);
    

    这允许您重新使用 Chrome 上当前打开的标签,并将该标签中的当前 URL 更改为您在意图中提供的 URL。

    我也在 Firefox 上尝试过,但没有成功。

    我希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      为 Firefox android 应用替换当前标签的现有 url。

      String package = "org.mozilla.firefox";
      String url = "http://www.test.com";
      Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
      intent.setPackage(package);
      intent.putExtra(Browser.EXTRA_APPLICATION_ID, package);
      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      context.startActivity(intent);
      

      对于 chrome 或其他浏览器,只需更改包名称即可。希望它能解决问题。

      【讨论】:

        【解决方案3】:

        答案用于在同一选项卡中打开“sample.html”文件,而不是创建 Google Chrome 浏览器的新选项卡。

               btnClickMe.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
        
                    File file = new File(Environment.getExternalStorageDirectory(), "sample.html");
                    Uri uri2 = Uri.fromFile(file);
                    Intent intent = new Intent(Intent.ACTION_VIEW, uri2);
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    intent.setClassName("com.android.chrome", "com.google.android.apps.chrome.Main");
                    intent.putExtra(Browser.EXTRA_APPLICATION_ID, "com.android.chrome");
                    try {
                        startActivity(intent);
                    } catch (Exception e) {
                        Log.e("Exception ", e.getLocalizedMessage());
                    }
                }
            });
        

        注意:请在继续之前检查您的存储权限。

        【讨论】:

          猜你喜欢
          • 2012-06-20
          • 2016-10-18
          • 1970-01-01
          • 2020-06-04
          • 2018-10-30
          • 1970-01-01
          • 2021-07-28
          • 2013-12-28
          • 1970-01-01
          相关资源
          最近更新 更多