Szukam sposobu na uzyskanie bieżącego adresu URL użytkownika odwiedzanego w aplikacji przeglądarki na Androida. Pomyślałem, że mogę dostać ostatni odwiedził URL z bazy Browser.BOOKMARKS_URI
stosując następujące techniki:Uzyskiwanie bieżącego adresu URL w przeglądarce Androida
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();
Problem z tym jest to, że Browser.BOOKMARKS_URI
db nie zostanie zaktualizowany, gdy użytkownik naciska w kolejności aby przejść do poprzedniej strony w przeglądarce, a zapytanie zwraca nieprawidłowe wyniki.
Zobacz poniższy przykład:
- użytkownik nawiguje do www.google.com ->zwrotów zapytania "www.google.com"
- użytkownik nawiguje do www.imdb.com ->powraca zapytania "www.imdb.com"
- użytkownik naciśnie z powrotem wrócić do www.google.com ->powraca zapytania "www.imdb.com" (!!)
Czy ktoś ma pomysł, jak zwrócić poprawny adres URL, który przegląda użytkownik?
Program rozpoznawania zawartości działa zgodnie z oczekiwaniami: prasy z powrotem nie przeładować 'stronę www.google.com', ale czyta go z pamięci podręcznej. To samo dzieje się, gdy użytkownik przełącza zakładkę: historia pokazuje ostatnio załadowany adres URL, niekoniecznie ten, który jest wyświetlany. Możesz śledzić bieżący adres URL w WebView wbudowanym w Twoją aplikację. –
Nie pracuję z WebView osadzonym w mojej aplikacji. Próbuję znaleźć aktualną stronę przeglądarki aplikacji na Androida. –
Myślę, że poza zwykłą funkcją aplikacji, zazwyczaj nie można uzyskać dostępu do danych innej aplikacji, chyba że dostarczą ją w jakiś sposób, wydawanie historii przeglądarki wydaje się jedyną rzeczą, którą możesz zrobić. – Nanoc