[Enhancement]: internal browser #1160

Closed
opened 2026-04-24 23:51:32 +02:00 by adam · 5 comments
Owner

Originally created by @noticons on GitHub (Feb 25, 2025).

Describe the Feature/Enhancement

Instead of audiobookshelf relying on the system implementation of android webview, inlcude a properly configured internal browser. I request this having recently moved from GrapheneOS, which uses a chromium (vandium) browser for webview functionality, to CalyxOS, which uses a standard Android Webview, which does not allow websocket.

Why would this be helpful?

At the moment, I'm working around this problem by using the webclient but I would much rather use the app's full features, since the webclient is imperfect by comparison.

Future Implementation (Screenshot)

I couldn't screenshot this idea, but I think you'd understand it.

Audiobookshelf App Version

Android App - 0.9.78

Current Implementation (Screenshot)

No response

Originally created by @noticons on GitHub (Feb 25, 2025). ### Describe the Feature/Enhancement Instead of audiobookshelf relying on the system implementation of android webview, inlcude a properly configured internal browser. I request this having recently moved from GrapheneOS, which uses a chromium (vandium) browser for webview functionality, to CalyxOS, which uses a standard Android Webview, which does not allow websocket. ### Why would this be helpful? At the moment, I'm working around this problem by using the webclient but I would much rather use the app's full features, since the webclient is imperfect by comparison. ### Future Implementation (Screenshot) I couldn't screenshot this idea, but I think you'd understand it. ### Audiobookshelf App Version Android App - 0.9.78 ### Current Implementation (Screenshot) _No response_
adam added the enhancement label 2026-04-24 23:51:32 +02:00
adam closed this issue 2026-04-24 23:51:32 +02:00
Author
Owner

@nichwall commented on GitHub (Feb 25, 2025):

I'm confused by what you're asking. Can you clarify what you mean by "a properly configured internal browser" and provide some resources to learn more about that? The ABS app uses Capacitor to allow reuse of the frontend between Android and iOS.

@nichwall commented on GitHub (Feb 25, 2025): I'm confused by what you're asking. Can you clarify what you mean by "a properly configured internal browser" and provide some resources to learn more about that? The ABS app uses Capacitor to allow reuse of the frontend between Android and iOS.
Author
Owner

@noticons commented on GitHub (Feb 25, 2025):

I apologize for being unclear. I'm referring to the fact that ABS uses webview on the backend to interact with the ABS server. That means that it is limited, in some cases, if the webview implemented in Android (in my case) is deficient. For instance, standard Android Webview does not have websockets enabled. This makes the ABS app limited even if the server is configured correctly. In my own case, since I moved to CalyxOS, which uses a very standard webview implementation, the ABS app starts fine, can download and stream audiobooks, but is unable to switch to a different library (such as podcasts) because it reports that websockets cannot connect. This isn't a problem with the server, its just a limitation of Android webview.
Therefore, what I'm requesting--if possible--is that ABS would bundle its own browser inside the app that utilizes all the necessary functions (such as websockets) instead of relying on the standard webview. Is this not possible or have I entirely misunderstood something?

@noticons commented on GitHub (Feb 25, 2025): I apologize for being unclear. I'm referring to the fact that ABS uses webview on the backend to interact with the ABS server. That means that it is limited, in some cases, if the webview implemented in Android (in my case) is deficient. For instance, standard Android Webview does not have websockets enabled. This makes the ABS app limited even if the server is configured correctly. In my own case, since I moved to CalyxOS, which uses a very standard webview implementation, the ABS app starts fine, can download and stream audiobooks, but is unable to switch to a different library (such as podcasts) because it reports that websockets cannot connect. This isn't a problem with the server, its just a limitation of Android webview. Therefore, what I'm requesting--if possible--is that ABS would bundle its own browser inside the app that utilizes all the necessary functions (such as websockets) instead of relying on the standard webview. Is this not possible or have I entirely misunderstood something?
Author
Owner

@nichwall commented on GitHub (Feb 25, 2025):

Thanks for helping clarify. I'm not sure exactly what needs to be done for bundling a custom web view or if/how that works with Capacitor

@nichwall commented on GitHub (Feb 25, 2025): Thanks for helping clarify. I'm not sure exactly what needs to be done for bundling a custom web view or if/how that works with Capacitor
Author
Owner

@github-actions[bot] commented on GitHub (Apr 26, 2025):

Fixed in v0.9.81-beta.

@github-actions[bot] commented on GitHub (Apr 26, 2025): Fixed in [v0.9.81-beta](https://github.com/advplyr/audiobookshelf-app/releases/tag/v0.9.81-beta).
Author
Owner

@advplyr commented on GitHub (Apr 26, 2025):

The library dropdown was getting hidden when the socket wasn't connected but I don't think that was necessary so I removed it.

The mobile apps should be fully functional without a socket connection. The only downside is going to be getting real-time updates from the server. For example, if an item is added/updated on the server those updates come in from the socket connection. Or if you're using the web client to listen and you have the app open, you won't get the real-time progress updates so make sure to close the app when you're done.

Let me know if there are other issues you come across without a socket connection.

@advplyr commented on GitHub (Apr 26, 2025): The library dropdown was getting hidden when the socket wasn't connected but I don't think that was necessary so I removed it. The mobile apps should be fully functional without a socket connection. The only downside is going to be getting real-time updates from the server. For example, if an item is added/updated on the server those updates come in from the socket connection. Or if you're using the web client to listen and you have the app open, you won't get the real-time progress updates so make sure to close the app when you're done. Let me know if there are other issues you come across without a socket connection.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf-app#1160