我目前正在测试使用大量jQuery动画开发的webapp,我们注意到内置Web浏览器的性能非常差.在Chrome中进行测试时,Web应用程序的性能速度令人难以置信.我只是想知道是否有任何类型的脚本会强制在Chrome for Android中打开一个链接,类似于在iOS中完成的操作.
我的项目主要是一个Web应用程序.现在我有一个带有主屏幕小部件的Android应用程序,并希望在内置浏览器中打开某些用户操作的网页.这很容易.在MyAppWidgetProvider.onUpdate中,我创建了一个新的intent:
Intent intent = new Intent("android.intent.action.VIEW",
Uri.parse("http://my.example.com/"));
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
views.setOnClickPendingIntent(R.id.text, pendingIntent);
Run Code Online (Sandbox Code Playgroud)
不幸的是,每次用户点击小部件时都会打开一个新的浏览器窗口/标签.我的页面包含一些在后台运行的花哨的AJAX/javascript并定期发送http请求.所以我最终得到8个包含相同页面的标签,并不断发送8倍数量的http请求.
是否有任何方法,例如不同的操作或其他参数,以避免打开新标签?
作为一种解决方法,我现在正在考虑创建一个包含WebView的新活动,但希望避免这种复杂性.
我正在尝试使用在浏览器的当前选项卡中打开的链接从我的服务打开浏览器窗口.我用的时候
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浏览器中打开网址的线程,避免多个标签,但它没有答案.我也试过强制关闭浏览器,但这也行不通.
感谢您的任何帮助!