使用上次访问的网址打开浏览器

时间:2013-01-10 13:30:16

标签: android browser browser-history

这是我用来打开具有给定 URI

的浏览器的方法
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com/"));
startActivity(browserIntent);

有没有办法可以使用之前访问过的页面打开浏览器。或者说只需打开浏览器,即可显示上次查看的页面。

目的:

在应用程序中,系统要求用户提交URL,因此,它不是键入,而是选项打开浏览器,以便他/她可以复制URL,返回并提交。最后一个URL很可能是他/她想要提交的内容

修改

我可以使用

从浏览器历史记录中获取最后访问过的页面
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS" />

但在安装应用程序时,它说:

此应用程序将读取您的浏览器历史记录

在看到时,没有人安装。

任何方式更改浏览器设置,例如,打开继续我离开的地方 ??

5 个答案:

答案 0 :(得分:1)

我相信您正在开发此应用,因此您知道何时触发打开Web浏览器的意图。只需将该URL保存为共享首选项变量中的字符串,并在每次打开新URL时将其值替换为新打开的URL。

这样,您将始终拥有共享pref变量中的最后一个URL地址。现在,无论何时需要,只需从共享首选项中获取它。

您可以在此处找到有关共享偏好的详细信息:

http://developer.android.com/reference/android/content/SharedPreferences.html

答案 1 :(得分:0)

如果您想提交网址,最简单的解决方案是能够将浏览器中的网址分享到您的应用。浏览器有一个分享按钮。

如果你有正确的Intent过滤器,你的应用程序将显示在该列表中。

答案 2 :(得分:0)

我认为保持开放www.google.com是可以的。如果您的用户即将插入一个剪辑好的链接,他几乎不想离开他当前打开的标签。所以他必须创建一个新选项卡并插入链接。现在,如果您已经打开此新标签并投放到www.google.com,该怎么办? 如果保持不变,他只需要做一步。

答案 3 :(得分:0)

以下是代码:

// create an intent to describe what app you wanna open
Intent browserIntent = new Intent("android.intent.action.VIEW", Uri.parse("http://"));

// and then get the default package name and start this app by yourself with a flag which allow it restore from history
ResolveInfo resolveInfo = getPackageManager().resolveActivity(browserIntent,PackageManager.MATCH_DEFAULT_ONLY);
Intent startIntent = getPackageManager().getLaunchIntentForPackage(resolveInfo.activityInfo.packageName);
startIntent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);
startActivity(startIntent);

答案 4 :(得分:0)

此代码可能有所帮助:

Intent browserIntent = getPackageManager().getLaunchIntentForPackage("com.android.chrome");
startActivity(browserIntent);

很可能用户没有Chrome,那么您就可以获得默认浏览器的软件包名称并打开该意图。