downloadFromUrl method

  1. @override
Future<void> downloadFromUrl(
  1. String url, {
  2. String? fileName,
  3. DownloadProgressCallback? onProgress,
  4. DownloadCompleteCallback? onComplete,
  5. DownloadErrorCallback? onError,
})
override

Implementation

@override
Future<void> downloadFromUrl(
  String url, {
  String? fileName,
  DownloadProgressCallback? onProgress,
  DownloadCompleteCallback? onComplete,
  DownloadErrorCallback? onError,
}) async {
  methodChannel.setMethodCallHandler((call) async {
    switch (call.method) {
      case 'onProgressCallback':
        final bytes = call.arguments['bytes'] as int;
        final total = call.arguments['total'] as int;
        onProgress?.call(bytes, total);
        break;
      case 'onCompleteCallback':
        final downloadPath = call.arguments['downloadPath'] as String;
        onComplete?.call(downloadPath);
        break;
      case 'onErrorCallback':
        final error = call.arguments['error'] as String;
        onError?.call(error);
        break;
    }
  });

  await _invokeMethod('downloadFile', {
    'url': url,
    'fileName': fileName,
  });
}