【问题标题】: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());
}
}
});
注意:请在继续之前检查您的存储权限。