我在寻找一种获取Android浏览器应用程序用户正在访问的当前URL的方法。我发现可以使用以下技术从
这样做的问题在于,当用户按返回按钮以导航到浏览器中的上一页时,
请看下面的例子:
1. 用户导航到 www.google.com -> 查询返回 "www.google.com" 2. 用户导航到 www.imdb.com -> 查询返回 "www.imdb.com" 3. 用户按返回按钮返回到 www.google.com -> 查询返回 "www.imdb.com" (!!) 有没有人知道如何返回用户正在查看的正确网址?
Browser.BOOKMARKS_URI
数据库中获取最近访问的URL:Cursor cursor = context.getContentResolver().query(Browser.BOOKMARKS_URI,
Browser.HISTORY_PROJECTION, null, null,
Browser.BookmarkColumns.DATE + " DESC");
cursor.moveToNext();
String url = cursor.getString(Browser.HISTORY_PROJECTION_URL_INDEX);
cursor.close();
这样做的问题在于,当用户按返回按钮以导航到浏览器中的上一页时,
Browser.BOOKMARKS_URI
数据库不会得到更新,因此查询会返回不正确的结果。请看下面的例子:
1. 用户导航到 www.google.com -> 查询返回 "www.google.com" 2. 用户导航到 www.imdb.com -> 查询返回 "www.imdb.com" 3. 用户按返回按钮返回到 www.google.com -> 查询返回 "www.imdb.com" (!!) 有没有人知道如何返回用户正在查看的正确网址?
www.google.com
页面,而是从缓存中读取。当用户切换选项卡时也是同样的情况:历史记录显示最新加载的URL,而不一定是当前显示的URL。您可以在嵌入到应用程序中的WebView中跟踪当前URL。 - Alex Cohn