Android从服务开放浏览器避免多个标签

Ait*_*tee 8 java android

我正在尝试使用在浏览器的当前选项卡中打开的链接从我的服务打开浏览器窗口.我用的时候

Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.google.com"));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

如果在我的服务启动意图之前浏览器已打开并位于前台,浏览器将在同一窗口/选项卡中打开链接.如果浏览器已最小化并且服务启动了意图,则浏览器将在新窗口/选项卡中打开网页.

我不能使用Web视图,因为它需要在Web浏览器中,它只会处理默认浏览器.我已经检查了在Android浏览器打开网址的线程,避免多个标签,但它没有答案.我也试过强制关闭浏览器,但这也行不通.

感谢您的任何帮助!

Mah*_*raa 1

如果您想使用您的应用程序来触发该意图..因此请直接通过包名称调用您的应用程序,请检查以下代码:

Intent in = getPackageManager().getLaunchIntentForPackage("com.package.myappweb");
in.putExtra("myURL","http://www.google.com");
in.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity( in );
Run Code Online (Sandbox Code Playgroud)

您可以通过意图传递 URL 并通过以下方式将其获取到您的应用程序中:

String url=getIntent().getStringExtra("myURL");
if(url!=null){
/// launch app and use one tab for showing the webpage
}else{
//launch app normally.
}
Run Code Online (Sandbox Code Playgroud)

您提到的代码用于将应用程序用作网络应用程序..将显示弹出窗口,用于选择任何浏览器来处理链接..不适用于任何想要打开链接的应用程序

祝你好运,