mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2025-01-19 00:12:53 +08:00
feat(downloader): add plugin (#2820)
* feat(downloader): add plugin * Update index.ts
This commit is contained in:
parent
b7594e201b
commit
006570483d
124
src/@ionic-native/plugins/downloader/index.ts
Normal file
124
src/@ionic-native/plugins/downloader/index.ts
Normal file
@ -0,0 +1,124 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
|
||||
|
||||
export enum NotificationVisibility {
|
||||
Visible = 0,
|
||||
VisibleNotifyCompleted = 1,
|
||||
VisibilityHidden = 2,
|
||||
VisibleNotifyOnlyCompletion = 3
|
||||
}
|
||||
|
||||
export interface DownloadHttpHeader {
|
||||
header: string;
|
||||
value: string;
|
||||
}
|
||||
|
||||
export interface DestinationDirectory {
|
||||
dirType: string;
|
||||
subPath: string;
|
||||
}
|
||||
|
||||
export interface DownloadRequest {
|
||||
/**
|
||||
* Location of the resource to download
|
||||
*/
|
||||
uri: string;
|
||||
|
||||
/**
|
||||
* Set the title of this download, to be displayed in notifications (if enabled).
|
||||
* If no title is given, a default one will be assigned based on the download filename, once the download starts.
|
||||
*/
|
||||
title?: string;
|
||||
/**
|
||||
* Set a description of this download, to be displayed in notifications (if enabled)
|
||||
*/
|
||||
description?: string;
|
||||
/**
|
||||
* Set the MIME content type of this download. This will override the content type declared in the server's response.
|
||||
*/
|
||||
mimeType?: string;
|
||||
/**
|
||||
* Set whether this download should be displayed in the system's Downloads UI. True by default.
|
||||
*/
|
||||
visibleInDownloadsUi?: boolean;
|
||||
/**
|
||||
* Control whether a system notification is posted by the download manager while this download is running or when it is completed.
|
||||
*/
|
||||
notificationVisibility?: NotificationVisibility;
|
||||
/**
|
||||
* Set the local destination for the downloaded file to a path within the application's external files directory
|
||||
*/
|
||||
destinationInExternalFilesDir?: DestinationDirectory;
|
||||
/**
|
||||
* Set the local destination for the downloaded file to a path within the public external storage directory
|
||||
*/
|
||||
destinationInExternalPublicDir?: DestinationDirectory;
|
||||
/**
|
||||
* Set the local destination for the downloaded file.
|
||||
* Must be a file URI to a path on external storage, and the calling application must have the WRITE_EXTERNAL_STORAGE permission.
|
||||
*/
|
||||
destinationUri?: string;
|
||||
/**
|
||||
* Add an HTTP header to be included with the download request. The header will be added to the end of the list.
|
||||
*/
|
||||
headers?: DownloadHttpHeader[];
|
||||
}
|
||||
|
||||
/**
|
||||
* @name Downloader
|
||||
* @description
|
||||
* This plugin is designed to support downloading files using Android DownloadManager.
|
||||
*
|
||||
*
|
||||
* @usage
|
||||
* ```typescript
|
||||
* import { Downloader } from '@ionic-native/downloader/ngx';
|
||||
*
|
||||
*
|
||||
* constructor(private downloader: Downloader) { }
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* var request: DownloadRequest = {
|
||||
* uri: YOUR_URI,
|
||||
* title: 'MyDownload',
|
||||
* description: '',
|
||||
* mimeType: '',
|
||||
* visibleInDownloadsUi: true,
|
||||
* notificationVisibility: NotificationVisibility.VisibleNotifyCompleted,
|
||||
* destinationInExternalFilesDir: {
|
||||
* dirType: 'Downloads',
|
||||
* subPath: 'MyFile.apk'
|
||||
* }
|
||||
* };
|
||||
*
|
||||
*
|
||||
* this.downloader.download(request)
|
||||
* .then((location: string) => console.log('File downloaded at:'+location))
|
||||
* .catch((error: any) => console.error(error));
|
||||
*
|
||||
* ```
|
||||
* @interfaces
|
||||
* NotificationVisibility
|
||||
* Header
|
||||
* DestinationDirectory
|
||||
* DownloadHttpHeader
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: 'Downloader',
|
||||
plugin: 'integrator-cordova-plugin-downloader',
|
||||
pluginRef: 'cordova.plugins.Downloader',
|
||||
repo: 'https://github.com/Luka313/integrator-cordova-plugin-downloader.git',
|
||||
platforms: ['Android']
|
||||
})
|
||||
@Injectable()
|
||||
export class Downloader extends IonicNativePlugin {
|
||||
/**
|
||||
* Starts a new download and returns location of the downloaded file on completion
|
||||
* @param request {DownloadRequest}
|
||||
*/
|
||||
@Cordova()
|
||||
download(request: DownloadRequest): Promise<string> {
|
||||
return;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user