Tôi đang tìm cách tải URL hiện tại mà người dùng đang truy cập trên ứng dụng trình duyệt Android. tôi đã tìm ra rằng tôi có thể nhận được URL ghé thăm cuối cùng từ cơ sở dữ liệu Browser.BOOKMARKS_URI
sử dụng kỹ thuật sau:Lấy URL hiện tại trong trình duyệt Android
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();
Vấn đề ở đây, là rằng db Browser.BOOKMARKS_URI
không được cập nhật khi người dùng nhấn trở lại trật tự để điều hướng đến trang trước đó trong trình duyệt và truy vấn trả lại kết quả không chính xác.
Xem ví dụ sau:
- dùng điều hướng tới www.google.com ->lợi nhuận Query "www.google.com"
- dùng điều hướng tới www.imdb.com ->truy vấn trả về "www.imdb.com"
- dùng nhấn trở lại trở lại www.google.com ->truy vấn trả về "www.imdb.com" (!!)
Có ai có bất kỳ ý tưởng nào về cách trả về đúng url mà người dùng đang xem không?
Các phân giải nội dung được làm việc như mong đợi: báo chí lại không tải lại trang www.google.com' ', nhưng đọc nó từ bộ nhớ cache. Tương tự xảy ra khi người dùng chuyển đổi tab: lịch sử hiển thị URL được tải mới nhất, không nhất thiết phải là URL được hiển thị. Bạn có thể theo dõi URL hiện tại trong một WebView được nhúng vào ứng dụng của bạn. –
Tôi không làm việc với WebView được nhúng trong ứng dụng của mình. Tôi đang cố gắng tìm trang web hiện tại của ứng dụng trình duyệt Android. –
Tôi nghĩ rằng đó là bên ngoài của một chức năng ứng dụng bình thường, thường bạn không thể truy cập dữ liệu ứng dụng khác trừ khi nó cung cấp nó bằng cách nào đó, nhận được lịch sử trình duyệt có vẻ là điều duy nhất bạn có thể làm. – Nanoc