2021-09-27 17:07:03 +02:00

119 lines
2.8 KiB
TypeScript

import { Cordova, IonicNativePlugin, Plugin } from '@awesome-cordova-plugins/core';
import { Injectable } from '@angular/core';
export interface DocumentViewerOptions {
title?: string;
documentView?: {
closeLabel: string;
};
navigationView?: {
closeLabel: string;
};
email?: {
enabled: boolean;
};
print?: {
enabled: boolean;
};
openWith?: {
enabled: boolean;
};
bookmarks?: {
enabled: boolean;
};
search?: {
enabled: boolean;
};
autoClose?: {
onPause: boolean;
};
}
/**
* @name Document Viewer
* @description
* This plugin offers a slim API to view PDF files which are either stored in the apps assets folder (/www/*) or in any other file system directory available via the cordova file plugin.
*
* @usage
* ```typescript
* import { DocumentViewer } from '@awesome-cordova-plugins/document-viewer/ngx';
*
*
* constructor(private document: DocumentViewer) { }
*
* ...
* const options: DocumentViewerOptions = {
* title: 'My PDF'
* }
*
* this.document.viewDocument('assets/myFile.pdf', 'application/pdf', options)
*
* ```
*
* @interfaces
* DocumentViewerOptions
*/
@Plugin({
pluginName: 'Document Viewer',
plugin: 'cordova-plugin-document-viewer',
pluginRef: 'SitewaertsDocumentViewer',
repo: 'https://github.com/sitewaerts/cordova-plugin-document-viewer',
platforms: ['Android', 'iOS', 'Windows'],
})
@Injectable()
export class DocumentViewer extends IonicNativePlugin {
/**
* Displays the email composer pre-filled with data.
*
* @returns {Promise<any>} Resolves promise when the EmailComposer has been opened
*/
@Cordova()
getSupportInfo(): Promise<any> {
return;
}
/**
* Check if the document can be shown
*
* @param url {string} Url to the file
* @param contentType {string} Content type of the file
* @param options {DocumentViewerOptions} options
* @param [onPossible] {Function}
* @param [onMissingApp] {Function}
* @param [onImpossible] {Function}
* @param [onError] {Function}
*/
@Cordova({ sync: true })
canViewDocument(
url: string,
contentType: string,
options: DocumentViewerOptions,
onPossible?: Function,
onMissingApp?: Function,
onImpossible?: Function,
onError?: Function
): void {}
/**
* Opens the file
*
* @param url {string} Url to the file
* @param contentType {string} Content type of the file
* @param options {DocumentViewerOptions} options
* @param [onShow] {Function}
* @param [onClose] {Function}
* @param [onMissingApp] {Function}
* @param [onError] {Function}
*/
@Cordova({ sync: true })
viewDocument(
url: string,
contentType: string,
options: DocumentViewerOptions,
onShow?: Function,
onClose?: Function,
onMissingApp?: Function,
onError?: Function
): void {}
}