Android应用程序是否在同一选项卡中打开浏览器?

Android应用程序是否在同一选项卡中打开浏览器?,android,firefox,android-browser,Android,Firefox,Android Browser,我觉得这很难解释,但我会尽力的。 我有一个应用程序可以打开浏览器(firefox),并将该应用程序中的信息作为php变量发送到网页,问题是我经常这样做,每次它打开浏览器时都会打开一个新选项卡 我知道没有办法用javascript等关闭一个选项卡,所以有没有办法确保它总是打开到同一个当前选项卡中,这样我就不会同时打开多个选项卡 我不想在应用启动浏览器时一直关闭firefox标签 btnClickMe.setOnClickListener(new View.OnClickListene

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

我知道没有办法用javascript等关闭一个选项卡,所以有没有办法确保它总是打开到同一个当前选项卡中,这样我就不会同时打开多个选项卡

我不想在应用启动浏览器时一直关闭firefox标签

       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());
            }
        }
    });
对不起,如果这很难理解。
谢谢。

这可能有点晚了,但我只使用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更改为您在intent中提供的URL

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


我希望这能有所帮助。

可能有点晚了,但我已经成功地通过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更改为您在intent中提供的URL

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


我希望这会有所帮助。

让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或其他浏览器,只需更改包名即可。希望它能解决这个问题。

让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或其他浏览器,只需更改包名即可。希望它能解决这个问题。

答案用于在同一选项卡中打开一个“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());
            }
        }
    });
注意:请在继续之前检查您的存储权限。

答案用于在同一选项卡中打开“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());
            }
        }
    });
注意:请在继续之前检查您的存储权限