在我们的应用中,通过单击按钮,我们需要在浏览器中打开一个网站
Intent openBrowserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(openBrowserIntent);
我们发现浏览器需要花一些时间才能打开,也许是因为该链接包含一些重定向?
意图中是否包含任何参数,以迫使我们在单击后立即打开浏览器?否则,用户将在2-3秒内看不到任何变化
答案 0 :(得分:0)
我们发现浏览器需要花一些时间才能打开,也许是因为该链接包含一些重定向?
您可以通过尝试访问一个不涉及重定向的URL来测试此问题,该站点不涉及重定向,并查看其打开速度。您也可以通过将Intent
替换为刚启动某个其他应用程序中的普通活动(例如“设置”)的测试。这将帮助您缩小范围:
是否启动其他任何应用程序都很慢?如果是,则问题与设备有关(可用的系统RAM,CPU等)
启动浏览器是否很慢?如果是,那么您几乎无能为力,尽管请注意性能会因浏览器而异,并且有许多适用于Android的Web浏览器
让浏览器显示此特定URL的速度很慢吗?如果是这样,请将该站点修复为较慢。在许多情况下,这不仅会带来Android浏览器显示页面的速度所带来的好处,例如帮助通过其他方式访问该页面的用户。
意图中是否包含任何参数,以迫使我们在单击后立即打开浏览器?
否,没有EXTRA_COULD_YOU_PLEASE_OPEN_QUICKLY_KTHXBYE
或类似内容。同样,也没有FLAG_ACTIVITY_AW_COME_ON_GET_MOVING_ALREADY
标志。您可以尝试用android.intent.action.VIEW_NOW_NOW_NOW
替换当前操作,但是我怀疑这只会导致ActivityNotFoundException
。 :-)
答案 1 :(得分:0)
Chrome浏览器的直接意图
String urlString="URL_HERE";
Intent intent=new Intent(Intent.ACTION_VIEW,Uri.parse(urlString));
intent.setPackage("com.android.chrome");
try {
context.startActivity(intent);
} catch (ActivityNotFoundException ex) {
// Chrome browser app not installed
intent.setPackage(null);
context.startActivity(intent);
}
这是您要先选择浏览器,然后在选择时加载页面的意图
Intent openBrowserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(openBrowserIntent);
请同时在不同设备上测试案例