Y.S*_*Y.S 5 firefox android webkit android-intent android-browser
我有一个非常具体的要求:我需要在浏览器中打开一个 URL 链接(不是在 a 中WebView),我需要它在当前打开的选项卡中打开,即打开的页面应该是一个“重定向”(意思相同标签)。
基于多个 SO 帖子的共识(见下文),这样做的方法如下:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(uri);
intent.putExtra(Browser.EXTRA_APPLICATION_ID, packageName);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
具体来说是Browser.EXTRA_APPLICATION_ID指示浏览器在同一选项卡中打开链接:
现在理论上,这应该适用于所有浏览器。
这里
packageName需要注意的是,上面需要是你希望打开的浏览器的包名(例如com.android.chrome或org.mozilla.firefox),而不是你的应用程序的包名。即使文档要求您使用自己应用程序的包名称,如果您使用自己应用程序的包名称,它也不会在当前打开的选项卡中打开链接。Chrome 和 Firefox 都会在新标签页中打开链接。
因此,让它工作的诀窍是设置packageName为com.android.chrome,瞧,Chrome 在当前打开的选项卡中打开链接。好极了!
同样的技巧不适用于 Firefox。
我怎样才能使这项工作在任何/所有浏览器上都能正常工作?
显然,这是 Firefox 的一个已知问题:
一个。Firefox 不处理Browser.EXTRA_APPLICATION_ID来自 Intent的标志。
乙。Android Mozilla FireFox 未在新选项卡中打开页面。
这个bug修复了吗?有没有一种已知的方法可以让 Firefox 在同一个选项卡中打开链接?
我怎样才能使这项工作适用于任何/所有浏览器?
参考资料:
1 . Android 中是否有任何方法可以强制打开要在 Chrome 中打开的链接?.
2 . Android 从服务中打开浏览器,避免使用多个选项卡。
3 . 在android浏览器中打开一个url,避免多个标签。
4 . 在 chrome 中最后一个打开的选项卡中打开 url。
5 . 使用 android 代码(不使用 webview)在浏览器中的同一选项卡中打开 url。
6 . Android 应用程序在同一选项卡中打开浏览器?.
7 . Browser.EXTRA_APPLICATION_ID 在 ICS 中不起作用。
8 . 如何停止在浏览器中打开的多个标签。
9 . 如何避免在默认 Android 浏览器的新标签页中加载本地页面。
10 . 使用 Browser.EXTRA_APPLICATION_ID 处理选项卡队列。
11 . 允许加载 URI Intents。
好像不支持;AndroidManifest.xml显示intent-filter... 和newTab = session == null以及newTab = true是硬编码的。除非这被提交为功能请求 - 或最终的 PR,这使得这将被合并,否则这种情况不会发生(即使如此,它也只会在更高版本中得到支持)。
| 归档时间: |
|
| 查看次数: |
1298 次 |
| 最近记录: |