【问题标题】:How to Stop Multiple Tabs Opened in Browser如何停止在浏览器中打开的多个选项卡
【发布时间】:2018-08-24 16:27:22
【问题描述】:

我有一个 Intent,可以在三星平板电脑上的 FireFox 中打开一个网页,但每次都会打开一个新标签。我一直在使用带有 EXTRA_APPLICATION_ID 的 putExtra() ,它以前做到了这一点,并重新使用相同的浏览器选项卡打开了页面,但现在它坏了。我不确定它是否有区别,但下面的代码是 runOnUiThread() 因为还有其他涉及视图的处理。任何想法将不胜感激。

        String pageName = "http://google.com";

        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(pageName));
        intent.putExtra(Browser.EXTRA_APPLICATION_ID, getApplication().getPackageName());

        startActivity(intent);

【问题讨论】:

    标签: android android-intent browser tabs


    【解决方案1】:
    Use http://developer.android.com/reference/android/provider/Browser.html#EXTRA_APPLICATION_ID to ensure that the same browser tab is reused for your application. For example:
    
    Context context = widget.getContext();
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName());
    

    您还可以为您打开浏览器的意图指定 Intent.FLAG_ACTIVITY_CLEAR_TASK 标志。这将清除所有当前打开的选项卡。

    【讨论】:

    • 感谢您的回复。我宁愿避免关闭所有选项卡,但这也不起作用。您发布的代码看起来像我一直在使用的代码,以及使用应用程序包名称替代小部件上下文的代码。在您的示例中,“小部件”指的是什么?
    • 我正在运行此代码以响应 BLE 扫描仪读取,因此它在蓝牙回调线程上运行。不知道有没有问题。
    【解决方案2】:

    所以我注意到,当上述代码不起作用时,我在三星平板电脑上打开 URL 的默认应用程序被设置为三星的 Internet 浏览器。我将默认设置切换为 FireFox 或 Chrome,完全相同的代码再次运行!显然,三星互联网应用程序有一些奇怪的地方可以防止重复使用标签。

    【讨论】:

    • 更新 - S9 上最新的三星浏览器修复了这个问题。我在 S6 上进行测试,但没有尝试其他版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-23
    • 1970-01-01
    • 1970-01-01
    • 2022-12-28
    • 2021-07-28
    • 2018-08-29
    • 1970-01-01
    相关资源
    最近更新 更多