我的项目主要是一个web应用程序。现在我有一个带有主屏幕小部件的android应用程序,并希望在内置浏览器中打开一些用户操作的网页。这很容易。在MyAppWidgetProvider.onUpdate我创建了一个新的意图:在android浏览器中打开一个url,避免多个标签
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);
不幸的是,新的浏览器窗口/标签打开每次用户点击小工具的时间。我的页面包含一些花哨的AJAX/JavaScript在后台运行,并定期发送http请求。所以我最终有8个选项卡包含相同的页面,并不断发送8倍数量的http请求。
有没有什么办法,例如不同的动作或额外的参数,以避免打开新的标签?
作为一种解决方法,我现在正在考虑创建一个包含WebView的新活动,但希望避免这种复杂性。
谢谢!从API级别3(Android 1.5)开始,EXTRA_APPLICATION_ID甚至已经可用! – geekQ 2012-10-23 12:06:48
'getPackageName()'部分只适用于我的情况(平板电脑Android 4.1.1)。它确实使用相同的标签启动浏览器,但按下BACK,浏览器不会返回上一页,只是完成它。通过[this](http://stackoverflow.com/questions/9902225/browser-extra-application-id-do-not-work-in-the-tablet-do-you-know-other-work-a/9917548 #9917548),它的作品! – Yeung 2014-05-20 08:50:07
完美工作。我用intent.putExtra(Browser.EXTRA_APPLICATION_ID,getApplicationContext()。getPackageName()); – zappullae 2017-01-31 14:38:51