A cross-platform plugin for Xamarin apps to download files in the background across iOS, Android, and UWP.
CrossDownloadManager is a plugin for Xamarin-based mobile applications that handles file downloads in the background across iOS, Android, and UWP. It solves the problem of managing downloads reliably, even when the app is suspended or crashes, by leveraging native platform download managers.
Xamarin developers building cross-platform mobile apps that require robust file downloading capabilities, such as media apps, document viewers, or offline content managers.
Developers choose it for its simple, unified API that abstracts complex native download implementations, ensuring consistent behavior and background download persistence across all supported platforms.
A cross platform download manager for Xamarin
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Ensures downloads continue even when the app is backgrounded or crashes, leveraging native platform managers for reliability, as shown in iOS session handling and Android persistence.
Provides a consistent interface for iOS, Android, and UWP, simplifying code with methods like CrossDownloadManager.Current.Start() and queue management.
Allows restricting downloads to Wi-Fi only by setting a parameter in the Start method, helping manage cellular data costs effectively.
Enables monitoring and control of multiple downloads through IDownloadManager.Queue, allowing real-time status updates and abort functionality.
Requires implementing a platform-specific method to reconstruct file paths early in the app lifecycle, which is error-prone and adds boilerplate code, as detailed in the recommended option.
Files appear in the native Downloads UI by default and can cause exceptions if the system Download Manager is disabled, necessitating extra code for mitigation, as noted in issues #17 and #82.
The plugin overwrites existing files without warning if not checked, potentially leading to data loss, as warned in the storage section of the README.