nwa-client
Version:
Native WebApp client library
88 lines (81 loc) • 2.96 kB
text/typescript
export interface IApp {
isWeb: boolean;
on(channel: string, callback: any): void;
getInitialData(): Promise<any>;
getDeviceId(): Promise<string | null>;
getDeviceInfos(): Promise<DeviceInfos>;
download(options: { url: string, filename?: string, directory?: string, isDefaultFilename?: boolean, headers?: any }): Promise<string | null>;
shareFile(path: string): Promise<void>;
openFile(path: string): Promise<void>;
openUrl(url: string | URL | undefined, name?: string): null;
load(url: string): Promise<void>;
copy(data: string): Promise<void>;
paste(): Promise<string>;
share(data: any): Promise<void>;
setAppBadge(data: number | undefined): Promise<void>;
clearAppBadge(): Promise<void>;
vibrate(data: any): boolean;
printHtml(content: string): Promise<void>;
print(): Promise<void>;
hasPermission(permissionDesc: PermissionDescriptor): Promise<PermissionStatus>;
isLocationGranted(): Promise<boolean>;
getCurrentPosition(options: PositionOptions | undefined): Promise<any>;
watchPosition(enable: boolean, options?: PositionOptions | undefined): Promise<any>;
isNotificationGranted(): Promise<boolean>;
requestNotificationPermission(): Promise<boolean>;
getRegistrationToken(): Promise<string>;
canCheckBiometrics(): Promise<boolean>;
getAvailableBiometrics(): Promise<Array<string>>;
authenticate(message: string, options?: any): Promise<boolean>;
openScanner(): Promise<void>;
closeScanner(): Promise<void>;
scanBarcode(): Promise<string>;
alert(message?: string): Promise<void>;
confirm(message?: string): Promise<boolean>;
setShortcutItems(items: { type: string, title: string, icon: string }[]): Promise<void>;
isNfcAvailable(): Promise<boolean>;
readNfc(message?: string): Promise<any>;
launchUrl(url?: string): Promise<any>;
updateAppStyle(params: AppStyleParams): Promise<any>;
select(params?: SelectFileParams): Promise<DataTransfer>
}
export interface AppStyleParams {
backgroundColor?: number;
appBarColor?: number;
navBarColor?: number;
appBarOffset?: boolean;
navBarOffset?: boolean;
keyboardResize?: boolean;
}
export interface SelectFileParams {
type?: 'file' | 'capture' | 'scan';
multiple?: boolean;
accept?: string[];
}
export interface DeviceInfos {
id: string;
os: string;
name: string;
version: string;
model: string;
appVersion: string;
firebaseId: string;
registrationToken: string;
}
export interface LocationData {
latitude: number;
longitude: number;
accuracy: number;
altitude: number;
speed: number;
speedAccuracy: number;
heading: number;
time: number;
isMock: boolean;
verticalAccuracy: number;
headingAccuracy: number;
elapsedRealtimeNanos: number;
elapsedRealtimeUncertaintyNanos: number;
satelliteNumber: number;
provider: string;
}