Skip to content

[Discussion] Using this library together with WebViews #19

@michael-rapp

Description

@michael-rapp

It seems like a lot of people try to use this library together with WebViews in order to implement custom web browsers. However, it seems to be non-trivial to properly use WebView's together with the library's recycling mechanism that reuses previously inflated views to display the contents of different tabs when they are not visible anymore. The following issues are related to this problem:

I don't have enough experience with the WebView class to give good advices on this issue. I even hadn't WebViews in mind when I implemented this library. Therefore this issue is meant to be a platform for discussing this problem. It would be great, if those that are interested in using this library together with WebView's could share their experiences here. Even better, if someone would create a simple example project at Github different people would be able to enhance it, which will hopefully result in a satisfying solution to be used by everyone. I will do my best to comment on issues and give advices about how to use this library properly.

I think that the recycling mechanism of the library works great as it is and there is no need to add any workarounds to get it to work together with WebView's. Of course there is a chance that there might be any bugs related to it. If that's the case, I will do my best to fix them.

In my opinion the following things must be tackled:

  • It is necessary to save the state of a WebView in memory or on the local storage. This includes the visited URL, the history and the content of the displayed website.
  • If the WebView class does not provide a suitable way to store/restore its full state out of the box, it is necessary to implement this by ourselves.
  • For displaying the previews of tabs it might be helpful to display a "screenshot" of the website rather than actually using the WebView to render the website.
  • Frequently reloading the URL of the WebView is no option as this will result in a bad user experience due to the fact that network requests are time consuming.

I hope that some people will contribute to this issue and share their opinions and experiences in order to solve this problem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions