mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2025-02-22 01:19:36 +08:00
feat(build-info): add plugin (#3465)
* feat(build-info): add plugin * Update index.ts Co-authored-by: Knut Erik Langdahl <knut.erik.langdahl@bekk.no> Co-authored-by: Daniel Sogl <daniel@sogls.de>
This commit is contained in:
parent
7ae1df2489
commit
7b998b9644
330
src/@ionic-native/plugins/build-info/index.ts
Normal file
330
src/@ionic-native/plugins/build-info/index.ts
Normal file
@ -0,0 +1,330 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Plugin, CordovaProperty, IonicNativePlugin } from '@ionic-native/core';
|
||||
|
||||
/**
|
||||
* @name Build Info
|
||||
* @description
|
||||
* This plugin provides build information.
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* import { BuildInfo } from '@ionic-native/build-info/ngx';
|
||||
*
|
||||
* this.platform.ready().then(() => {
|
||||
* console.log('BuildInfo.baseUrl =' + BuildInfo.baseUrl)
|
||||
* console.log('BuildInfo.packageName =' + BuildInfo.packageName)
|
||||
* console.log('BuildInfo.basePackageName=' + BuildInfo.basePackageName)
|
||||
* console.log('BuildInfo.displayName =' + BuildInfo.displayName)
|
||||
* console.log('BuildInfo.name =' + BuildInfo.name)
|
||||
* console.log('BuildInfo.version =' + BuildInfo.version)
|
||||
* console.log('BuildInfo.versionCode =' + BuildInfo.versionCode)
|
||||
* console.log('BuildInfo.debug =' + BuildInfo.debug)
|
||||
* console.log('BuildInfo.buildType =' + BuildInfo.buildType)
|
||||
* console.log('BuildInfo.flavor =' + BuildInfo.flavor)
|
||||
* console.log('BuildInfo.buildDate =' + BuildInfo.buildDate)
|
||||
* console.log('BuildInfo.installDate =' + BuildInfo.installDate)
|
||||
* })
|
||||
* ```
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: 'BuildInfo',
|
||||
plugin: 'cordova-plugin-buildinfo',
|
||||
pluginRef: 'BuildInfo',
|
||||
repo: 'https://github.com/lynrin/cordova-plugin-buildinfo',
|
||||
platforms: ['Android', 'iOS', 'Windows', 'macOS', 'browser', 'Electron'],
|
||||
})
|
||||
@Injectable()
|
||||
export class BuildInfo extends IonicNativePlugin {
|
||||
/**
|
||||
* The baseUrl where cordova.js was loaded.
|
||||
*/
|
||||
@CordovaProperty()
|
||||
baseUrl: string;
|
||||
|
||||
/**
|
||||
* Get the packageName of Application ID.
|
||||
*
|
||||
* |Platform|Value|Type|
|
||||
* |--------|-----|----|
|
||||
* |Android|Package Name|String|
|
||||
* |iOS|Bundle Identifier|String|
|
||||
* |Windows|Identity name|String|
|
||||
* |macOS(OS X)|Bundle Identifier|String|
|
||||
* |Browser|Get the id attribute of the widget element in config.xml file.|String|
|
||||
* |Electron|Get the id attribute of the widget element in config.xml file.|String|
|
||||
*/
|
||||
@CordovaProperty()
|
||||
packageName: string;
|
||||
|
||||
/**
|
||||
* Android only.
|
||||
*
|
||||
* Get the packageName of BuildConfig class.
|
||||
*
|
||||
* If you use the configure of "build types" or "product flavors", because you can specify a different package name is the id attribute of the widget element of config.xml, is the property to get the package name that BuildConfig class belongs.
|
||||
* (ought be the same as the id attribute of the widget element of config.xml)
|
||||
*
|
||||
*
|
||||
* |Platform|Value|Type|
|
||||
* |--------|-----|----|
|
||||
* |Android|Package name of BuildConfig class|String|
|
||||
* |iOS|Bundle Identifier(equals BuildInfo.packageName)|String|
|
||||
* |Windows|Identity name(equals BuildInfo.packageName)|String|
|
||||
* |macOS(OS X)|Bundle Identifier(equals BuildInfo.packageName)|String|
|
||||
* |Browser|equals BuildInfo.packageName|String|
|
||||
* |Electron|equals BuildInfo.packageName|String|
|
||||
*/
|
||||
@CordovaProperty()
|
||||
basePackageName: string;
|
||||
|
||||
/**
|
||||
* Get the displayName.
|
||||
*
|
||||
* |Platform|Value|Type|
|
||||
* |--------|-----|----|
|
||||
* |Android|Application Label|String|
|
||||
* |iOS|CFBundleDisplayName (CFBundleName if not present)|String|
|
||||
* |Windows|Get the DisplayName attribute of the VisualElements element in AppxManifest.xml file.|String|
|
||||
* |macOS(OS X)|CFBundleDisplayName (CFBundleName if not present)|String|
|
||||
* |Browser|Get the short attribute of the name element in config.xml file.|String|
|
||||
* |Electron|Get the short attribute of the name element in config.xml file.|String|
|
||||
*/
|
||||
@CordovaProperty()
|
||||
displayName: string;
|
||||
|
||||
/**
|
||||
* Get the name.
|
||||
*
|
||||
* |Platform|Value|Type|
|
||||
* |--------|-----|----|
|
||||
* |Android|Application Label(equal BuildInfo.displayName)|String|
|
||||
* |iOS|CFBundleName|String|
|
||||
* |Windows|Windows Store display name|String|
|
||||
* |macOS(OS X)|CFBundleName|String|
|
||||
* |Browser|Get value of the name element in config.xml file.|String|
|
||||
* |Electron|Get value of the name element in config.xml file.|String|
|
||||
*/
|
||||
@CordovaProperty()
|
||||
name: string;
|
||||
|
||||
/**
|
||||
* Get the version.
|
||||
*
|
||||
* |Platform|Value|Type|
|
||||
* |--------|-----|----|
|
||||
* |Android|BuildConfig.VERSION_NAME|String|
|
||||
* |iOS|CFBundleShortVersionString|String|
|
||||
* |Windows|Major.Minor.Build ex) "1.2.3"|String|
|
||||
* |macOS(OS X)|CFBundleShortVersionString|String|
|
||||
* |Browser|Get the version attribute of the widget element in config.xml file.|String|
|
||||
* |Electron|Get the version attribute of the widget element in config.xml file.|String|
|
||||
*/
|
||||
@CordovaProperty()
|
||||
version: string;
|
||||
|
||||
/**
|
||||
* Get the version code.
|
||||
*
|
||||
* |Platform|Value|Type|
|
||||
* |--------|-----|----|
|
||||
* |Android|BuildConfig.VERSION_CODE|integer|
|
||||
* |iOS|CFBundleVersion|String|
|
||||
* |Windows|Major.Minor.Build.Revision ex) "1.2.3.4"|String|
|
||||
* |macOS(OS X)|CFBundleVersion|String|
|
||||
* |Browser|equals BuildInfo.version|String|
|
||||
* |Electron|equals BuildInfo.version|String|
|
||||
*/
|
||||
@CordovaProperty()
|
||||
versionCode: string | number;
|
||||
|
||||
/**
|
||||
* Get the debug flag.
|
||||
*
|
||||
* |Platform|Value|Type|
|
||||
* |--------|-----|----|
|
||||
* |Android|BuildConfig.DEBUG|Boolean|
|
||||
* |iOS|defined "DEBUG" is true|Boolean|
|
||||
* |Windows|isDevelopmentMode is true|Boolean|
|
||||
* |macOS(OS X)|defined "DEBUG" is true|Boolean|
|
||||
* |Browser|Always false|Boolean|
|
||||
* |Electron|True when ```cordova build electron --debug``` is executed with the "--debug" flag.|Boolean|
|
||||
*/
|
||||
@CordovaProperty()
|
||||
debug: boolean;
|
||||
|
||||
/**
|
||||
* Android , Windows Only.
|
||||
*
|
||||
* Get the build type.
|
||||
*
|
||||
* |Platform|Value|Type|
|
||||
* |--------|-----|----|
|
||||
* |Android|BuildConfig.BUILD_TYPE|String|
|
||||
* |iOS|empty string|String|
|
||||
* |Windows|"release" or "debug"|String|
|
||||
* |macOS(OS X)|empty string|String|
|
||||
* |Browser|empty string|String|
|
||||
* |Electron|empty string|String|
|
||||
*
|
||||
*/
|
||||
@CordovaProperty()
|
||||
buildType: string;
|
||||
/**
|
||||
* Android Only.
|
||||
*
|
||||
* Get the flavor.
|
||||
*
|
||||
* |Platform|Value|Type|
|
||||
* |--------|-----|----|
|
||||
* |Android|BuildConfig.FLAVOR|String|
|
||||
* |iOS|empty string|String|
|
||||
* |Windows|empty string|String|
|
||||
* |macOS(OS X)|empty string|String|
|
||||
* |Browser|empty string|String|
|
||||
* |Electron|empty string|String|
|
||||
*/
|
||||
@CordovaProperty()
|
||||
flavor: string;
|
||||
|
||||
/**
|
||||
* Get the build date and time in the Date object returns.
|
||||
*
|
||||
* Attention:
|
||||
* - Android: Add the BuildInfo.gradle file to your Android project.
|
||||
* The BuildInfo.gradle file contains the setting to add the _BUILDINFO_TIMESTAMP field to the BuildConfig class.
|
||||
* - Windows: Add the buildinfo.resjson file to your Windows project.
|
||||
* The buildinfo.resjson file into the "strings" folder.
|
||||
* And also add a task to rewrite buildinfo.resjson in the CordovaApp.projitems file.
|
||||
* - Browser and Electron: When ```cordova prepare``` is executed Build date and time is embedded in
|
||||
* platforms/**browser**\/www/plugins/cordova-plugin-buildinfo/src/browser/BuildInfoProxy.js file.
|
||||
* (Or platforms/**electron**\/www/plugins/cordova-plugin-buildinfo/src/browser/BuildInfoProxy.js file.)
|
||||
* ```cordova prepare``` is also executed for ```cordova build```, ```cordova run``` and ```cordova platform add```.
|
||||
* (Reference: [Hooks Guide - Apache Cordova](https://cordova.apache.org/docs/en/9.x/guide/appdev/hooks/index.html))
|
||||
*
|
||||
* |Platform|Value|Type|
|
||||
* |--------|-----|----|
|
||||
* |Android|BuildConfig.\_BUILDINFO\_TIMESTAMP value|Date|
|
||||
* |iOS|Get the modification date and time of the Info.plist file acquired from the executionPath property of the main bundle.|Date|
|
||||
* |Windows|Resource value of "/buildinfo/Timestamp" string.|Date|
|
||||
* |macOS(OS X)|Get the modification date and time of the config.xml file acquired from the resource of the main bundle.|Date|
|
||||
* |Browser|The date and time when ```cordova prepare``` was executed.|Date|
|
||||
* |Electron|The date and time when ```cordova prepare``` was executed.|Date|
|
||||
*
|
||||
*/
|
||||
@CordovaProperty()
|
||||
buildDate: Date;
|
||||
|
||||
/**
|
||||
* Get the install date and time in the Date object returns.
|
||||
*
|
||||
* Attention:
|
||||
* - Browser and Electron: Installation date and time is unknown.
|
||||
*
|
||||
* |Platform|Value|Type|
|
||||
* |--------|-----|----|
|
||||
* |Android|The firstInstallTime property of PackageInfo|Date|
|
||||
* |iOS|Get the creation date and time of the document directory.|Date|
|
||||
* |Windows|The installedDate property of Windows.ApplicatinoModel.Package.current|Date|
|
||||
* |macOS(OS X)|Date and time of kMDItemDateAdded recorded in File Metadata of application package.|Date|
|
||||
* |Browser|Not available.|null|
|
||||
* |Electron|Not available.|null|
|
||||
*/
|
||||
@CordovaProperty()
|
||||
installDate: Date | null;
|
||||
|
||||
/**
|
||||
* Windows Only.
|
||||
*
|
||||
* Get the windows extra information.
|
||||
*/
|
||||
@CordovaProperty()
|
||||
windows?: {
|
||||
/**
|
||||
* indows.ApplicationModel.Package.current.id.architecture|
|
||||
*/
|
||||
architecture: number;
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.current.description|
|
||||
*/
|
||||
description: string;
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.current.displayName|
|
||||
*/
|
||||
displayName: string;
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.current.id.familyName|
|
||||
*/
|
||||
familyName: string;
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.current.id.fullName|
|
||||
*/
|
||||
fullName: string;
|
||||
logo: WindowsLogo;
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.current.id.publisher|
|
||||
*/
|
||||
publisher: string;
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.current.id.publisherId|
|
||||
*/
|
||||
publisherId: string;
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.current.publisherDisplayName|
|
||||
*/
|
||||
publisherDisplayName: string;
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.current.id.resourceId|
|
||||
*/
|
||||
resourceId: string;
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.current.id.version|
|
||||
*/
|
||||
version: WindowsVersionInfo;
|
||||
};
|
||||
}
|
||||
|
||||
export interface WindowsLogo {
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.logo.absoluteCanonicalUri
|
||||
*/
|
||||
absoluteCannonicalUri: string;
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.logo.absoluteUri
|
||||
*/
|
||||
absoluteUri: string;
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.logo.displayIri
|
||||
*/
|
||||
displayIri: string;
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.logo.displayUri
|
||||
*/
|
||||
displayUri: string;
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.logo.path
|
||||
*/
|
||||
path: string;
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.logo.rawUri
|
||||
*/
|
||||
rawUri: string;
|
||||
}
|
||||
|
||||
export interface WindowsVersionInfo {
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.current.id.version.major
|
||||
*/
|
||||
major: number;
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.current.id.version.minor
|
||||
*/
|
||||
minor: number;
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.current.id.version.build
|
||||
*/
|
||||
build: number;
|
||||
/**
|
||||
* Windows.ApplicationModel.Package.current.id.version.revision
|
||||
*/
|
||||
revision: number;
|
||||
}
|
Loading…
Reference in New Issue
Block a user