cordova.plugins.diagnostic@5.0.0 introduced breaking change moving from `DENIED` to `DENIED_ONCE` and make the statuses semantically equal for iOS and Android. For backward compatibility `DENIED` is untouched in this PR but marked as deprecated
solves #3050
while diagnostic plugin docs may be confusing, the `requestRemoteNotificationsAuthorization(successCallback, errorCallback, types, omitRegistration)` signature is available in the sources:
0fac4a59d1/www/ios/diagnostic.notifications.js (L162)
* Adding missing functions to index.ts file
The functions were missing, Please refer to the issue #2909https://github.com/ionic-team/ionic-native/issues/2909
* Updated comments
Updated comments which were failing tslint test
* removed trailing whitespace
removed trailing whitespace
* feat: updating device account wrapper with maintained fork with android 8.0 compatibility
* updating func to include getPermission for email permissions on android 8.0+
* revert package-lock as per feedback
* fix conflicts in package-lock.json, revert back to commit 49d7ca7375
Adds missing sendRequest feature that has been implemented to cordova-plugin-advanced
which allows overriding global options for single request being sent via this method
Closes#2824
* Change for new 'headers' option
As of 1.1.19 of PhotoViewer, a new PhotoViewer option was added called 'headers' which allows for HTTP headers to be used when requesting the image. This is useful for authenticated sites.
* Typo in example
* Added new PhotoViewerOptions
There are several other new PhotoViewerOptions besides 'headers' that need to be imported into the latest version. I was selfishly only concerned about the one I needed, but the build really needs them all.
* Change guide color to string|number type
When the platform is Android, the cordova plugin wait for an Int value to set the guide color.
* Update index.ts
* fix(contacts plugin): add the rawId parameter
This adds the rawId parameter to the contact class which allows the rawId value to be passed to Android which is required for saving contacts.
* Update index.ts
The newly added wrapper for Admob __Plus__ had Admob __Free__ as its name.
This resulted in a broken docs-Page, _Admob Free_ occurred twice, both showing infos for _Admob Plus_
* Work on NFC reader-mode
* Remove dist files, not needed in plugin development folder
* Revert package changes
This reverts part of commit 24a893fdcf.
* Update index.ts
* Correct the flags and return types for the wrapper
* Add reader flags.
Thanks @sfaizanh
* feat(plugins): add web-server plugin
Add support of the cordova-plugin-webserver plugin, to start a
a dynamic content web server on iOS and android devices.
* Update index.ts
* Update createAuthenticationContext
Update createAuthenticationContext to include validateAuthority flag since it is throwing Error: Fail to valid authority with errors: [50049].
Without the flag it is throwing Error: Fail to valid authority with errors: [50049].
* Update index.ts
* feat(bluetooth-le): implemented all available methods and refactored existing ones
* fix(bluetooth-le): Removed @memberof jsdoc annotations to avoid ci check failure
* fix(bluetooth-le): Fixed multiple jsdocs typos/misformats preventing CI to pass checks while generating readmes
* fix(bluetooth-le): Removed package-lock.json
* Update index.ts
* fix(bluetooth-le): Fixed stringToBytes method, now properly takes a string as arg and return an Uint8Array
* fix(bluetooth-le): getAdapterInfo now returns an Observable for easier tracking of adapter states
* fix(bluetooth-le): Fixed missing cordova param (observable: true) in initializePeripheral method, fixed getAdapterInfo method, now return an adapterInfo object
* chore(bluetooth-le): Removed @description markup to allow a proper doc auto-format
* fix(bluetooth-le): Reverted getAdapterInfo method to a Promise return
We noticed that in some cases network state listeners are stopped triggering, but `navigator.onLine` still reflects the state correctly. I used the following code to debug and found out an issue with `window` and `document` difference:
```js
window.addEventListener("online", ()=>console.warn('WINDOW ONLINE'), false); // won't be triggered
window.addEventListener("online", ()=>console.warn('WINDOW ONLINE'), false); // won't be triggered
document.addEventListener("online", ()=>console.warn('DOCUMENT ONLINE'), false); // triggered
document.addEventListener("online", ()=>console.warn('DOCUMENT ONLINE'), false); // triggered
```
Also, according to plugin documentation, listeners should be bound to `document`: https://github.com/apache/cordova-plugin-network-information#offline
- Explicitly spell out that this is coming from "Ionic Native", instead of just "Native"
- Improve sentence that explains 2 most common reasons for missing Cordova
The transaction callback function argument is currently typed as `any`, however this isn't very helpful so I have added a base interface which contains only the `executeSql` function. This function is all that is available on the object returned by WebSQL, but is also available on the full SQLite implementation.
* fix(app-version): fix getVersionCode to return number
as is in the actual implementation. Also update and clarify the method docs
* fix(app-version): fix getVersionCode for compatibility
with Android and iOS at the same time
As documented in the image picker plugin, it also supports a data url, just like the camera does. However, this option is not documented in Ionic Native currently. I've added this documentation, and have also added an enum with a naming pattern that matches the DestinationType in Camera.
Docs from the image picker plugin:
```
...
// output type, defaults to FILE_URIs.
// available options are
// window.imagePicker.OutputType.FILE_URI (0) or
// window.imagePicker.OutputType.BASE64_STRING (1)
outputType: int
};
```
Made all properties in OSNotification optional because when you create a push notification the type is OSNotification but it does not have all the same properties required as the OSNotification as a response from a received notification. For example, you don't pass in isAppInFocus when you create a notification but it was causing issues when trying to post a notification because it was showing as required because OSNotification as a response will always have isAppInFocus.
* Correcting format of registerBroadcastReceiver, current implementation provides no way to receive the registered broadcasts.
Usage is as follows:
webintent.registerBroadcastReceiver({
filterActions: [
'com.example.ACTION'
],
filterCategories: [
'android.intent.category.DEFAULT'
]
}).subscribe((intent) => {console.log('Received Intent: ' + JSON.stringify(intent.extras));});
* Resolving linting errors
* Resolving additional linting error
In order to enable background mode data collection we used the cordova-plugin-background-mode plugin in a new Cordova plugin repo, cordova-plugin-jins-meme (vs. cordova-plugin-jins-meme-es.) We opted to maintain the old repository for backwards-compatibility as we have multiple apps using various versions; this is simplest.
Another unrelated change was made to silence unnecessary console logging.
* Update index.ts
* Update index.ts
* Add missing features, and bug fix of methods
* update: classname must be in pascal case
* remove: duplicated class definition
* export encode and spherical static classes
* Add comma
* Fix Encoding and Spherical
* Add convenience methods
* Fix decorators for Encoding and Spherical
* Update: getMap() methods return the instance of the wrapper plugin
* Update: getMap() methods return the instance of the wrapper plugin
* Remove `@CordovaInstance` decorators from getMap()
* Update: GoogleMapOptions (all fields are not optional).
* Follow up: version `2.0.0-beta2-20170719-2226` of cordova-plugin-googlemaps
* Fix: tslint error
* Fix: tslint error
* No more isAvailable() method.
* Bug fix: description is incorrect
* Bug fix: example code was wrong.
* Bug fix: HtmlInfoWindow does not work
https://github.com/ionic-team/ionic-native/pull/1815#issuecomment-318909795
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* It seems the ionViewDidLoad() is enough delayed after platform.ready()
* Bug fix: map.setDiv()
* Bug fix: HtmlInfoWindow does not work
* Bug fix: BaseArrayClass definition is incorrect
* Bug fix: BaseArrayClass constructor is wrong
* Bug fix: Geocoder class does not work
* Bug fix: LatLngBounds constructor is wrong
* update: noNotify option is not declared
* Bug fix: Geocoder.geocode() returns array of GeocoderResult
* Update: clarify acceptable parameters of BaseArrayClass
* Add: AnimateCameraOption.padding is missing
* Revert: BaseClass.empty() method does not have the noNotify option
* Add `destruct` option to the CordovaOption.
- This allows BaseClass.on() is able to pass multiple retuned values from the cordova plugin side to the event lister.
* A semicolon is mixing
* update: event names
* Update: BaseClass.addEventListener(), addEventListenerOnce(), on(), and one()
* Add: destruct option for otherPromise
Change: inside event names (must use the version 2.0.0-beta3-20170808-1950 or higher)
* Build for working group
* Bug fix: map.getCameraTarget() definition is incorrect
* Bug fix: The definition of VisibleRegion interface is incorrect
* Fix: LatLng, LatLngBounds, and PolylineOptions classes
Update: map.getVisibleRegion()
Add: VisibleRegion class
* Bug fix: the definition of map.clear() method is incorrect
* Fix: map.fromLatLngToPoint()
* Ignore the dist directory on the master branch
* Remove the dist folder on the master branch
* fixes and tweaks
* use union types for CameraPosition
fixes issue mentioned on slack by @wf9a5m75
* fix types
* update AnimateCameraOptions interface
* remove AnimateCameraOptions interface
* add MarkerCluster class
* Bug fix: Can not create an instance of BaseArrayClass
* Bug fix: the icons property of MarkerClusterOptions
* Bug fix: the zoom option is missing
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1712
* Update index.ts
* fix: need to convert instance type from the JS class to the wrapper class
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1706
* remove test file
* fix: Error: Illegal use of "@private" tag.
* fix: The Environment, Encode, and Spherical are static class
* fix: convert JS instance to the ionic instance
add: BaseClass.destroy()
add: getId() method for all instance classes
* Documentation Error https://github.com/ionic-team/ionic-native/issues/1994
* Need to create another way to convert the instance for marker cluster
* save
* Remove the instance of wrapper class if the JS instance is removed.
* Bug fix: HtmlInfoWindow missing .on and .one methods
https://github.com/ionic-team/ionic-native/issues/2034
* Bug fix: HtmlInfoWindow constructor cause the error
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1661
* Fix: Error when removing map
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1823
* Add: the cssOptions argument for HtmlInfoWindow.setContent() method
* Bug fix: Polyline.getPoints(), Polygon.getPoints() and Polygon.getHoles()
Those methods need to create new instance of BaseArrayClass of wrapper plugin.
* Add: forEachAsync(), mapAsync(), and filterAsync() methods into BaseArray class
* update: use document.querySelector() instead of document.getElementById() if the passed element is string
update: map.setDiv()
Bug fix: can not create empty GoogleMap (pure JS version is available way)
* Fix: wait until the page is fully ready
* Fix: missing `clickable` option for PolygonOptions and PolylineOptions
* Add: accept own properties for `addMarker()` and others #2087
Fix: some properties are required, but specified as optional.
Add: descriptions for properties
* Bug fix: Static classes are defined as non static class
https://stackoverflow.com/questions/47083289/ionic-native-google-maps-plugin-set-app-background-color/47165721#47165721
* Add: poly class (plugin.google.maps.geometory.poly namespace)
* Bug fix: Ionic native googlemaps decodePath() returns undefined
https://forum.ionicframework.com/t/ionic-native-googlemaps-decodepath-returns-undefined/118624/
* PR #2254https://github.com/ionic-team/ionic-native/pull/2254
* PR #2199https://github.com/ionic-team/ionic-native/pull/2199
* Change defined event names for the cordova-plugin-googlemaps v2.0
* Change defined event names for the cordova-plugin-googlemaps v2.2.0
* Add Geolocation class
* Implement the `setMyLocationButtonEnabled()` method
* add: baseArrayClass.mapSeries() method
update: change internal methods
* update: implementation of the LocationService
* Implement the map.addKmlOverlay() method
* Update for the cordova-plugin-googlemaps v2.2.x
The current example in the docs is incomplete and thus quite useless. Just on its own won't manipulate the CSS of a loaded page. It requires the InAppBrowserEvent, and using it in the callback.
As stated in the plugin repo, the options field is optional. Also, the plugin returns a `iana_timezone` property such as 'America/New_York' which was not included.
In line 20, "this.navigationBar.hide(autoHide);". But there is no such a function .hide(). It shoud be correct as "this.navigationBar.setUp(autoHide);".
* Added missing methods beginSession and invalidateSession for iOS support
* Removed invalidateSession function and package-lock.json
* added current package-lock again
trueflywood's fork is currently used for this plugin. I'm changing it back to the original which contains the current changes and also includes type definitions and methods for the new version as well as documentation updates
Add hasScrubbing variable to options - used to enable or disable scrubbing from the iOS control center or lockscreen progress bar
Make optional items actually optional...
* feat(nfc): Add interfaces and missing references to UriHelper and TextHelper
This commit adds the missing references to UriHelper and TextHeler.
There were missing references to some methods of nfc and ndef modules.
The constants for ndef has ben added.
* feat(nfc): add NfcUtil class.
The most important change here is to point to the BlyncSync version of the plugin, which is actively maintained. The jins-meme version lacks a package.json, which causes issues on some platforms that will result in an inability to build.
The BlyncSync plugin uses standard naming convention for cordova plugins (cordova-plugin-jins-meme-es)
The plugin name should be JINS MEME ES (ES for Eye-Sensing,) as this is how the product is actually named: not "Jins Meme."
* Update index.ts
* Update index.ts
* Add missing features, and bug fix of methods
* update: classname must be in pascal case
* remove: duplicated class definition
* export encode and spherical static classes
* Add comma
* Fix Encoding and Spherical
* Add convenience methods
* Fix decorators for Encoding and Spherical
* Update: getMap() methods return the instance of the wrapper plugin
* Update: getMap() methods return the instance of the wrapper plugin
* Remove `@CordovaInstance` decorators from getMap()
* Update: GoogleMapOptions (all fields are not optional).
* Follow up: version `2.0.0-beta2-20170719-2226` of cordova-plugin-googlemaps
* Fix: tslint error
* Fix: tslint error
* No more isAvailable() method.
* Bug fix: description is incorrect
* Bug fix: example code was wrong.
* Bug fix: HtmlInfoWindow does not work
https://github.com/ionic-team/ionic-native/pull/1815#issuecomment-318909795
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* It seems the ionViewDidLoad() is enough delayed after platform.ready()
* Bug fix: map.setDiv()
* Bug fix: HtmlInfoWindow does not work
* Bug fix: BaseArrayClass definition is incorrect
* Bug fix: BaseArrayClass constructor is wrong
* Bug fix: Geocoder class does not work
* Bug fix: LatLngBounds constructor is wrong
* update: noNotify option is not declared
* Bug fix: Geocoder.geocode() returns array of GeocoderResult
* Update: clarify acceptable parameters of BaseArrayClass
* Add: AnimateCameraOption.padding is missing
* Revert: BaseClass.empty() method does not have the noNotify option
* Add `destruct` option to the CordovaOption.
- This allows BaseClass.on() is able to pass multiple retuned values from the cordova plugin side to the event lister.
* A semicolon is mixing
* update: event names
* Update: BaseClass.addEventListener(), addEventListenerOnce(), on(), and one()
* Add: destruct option for otherPromise
Change: inside event names (must use the version 2.0.0-beta3-20170808-1950 or higher)
* Build for working group
* Bug fix: map.getCameraTarget() definition is incorrect
* Bug fix: The definition of VisibleRegion interface is incorrect
* Fix: LatLng, LatLngBounds, and PolylineOptions classes
Update: map.getVisibleRegion()
Add: VisibleRegion class
* Bug fix: the definition of map.clear() method is incorrect
* Fix: map.fromLatLngToPoint()
* Ignore the dist directory on the master branch
* Remove the dist folder on the master branch
* fixes and tweaks
* use union types for CameraPosition
fixes issue mentioned on slack by @wf9a5m75
* fix types
* update AnimateCameraOptions interface
* remove AnimateCameraOptions interface
* add MarkerCluster class
* Bug fix: Can not create an instance of BaseArrayClass
* Bug fix: the icons property of MarkerClusterOptions
* Bug fix: the zoom option is missing
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1712
* Update index.ts
* fix: need to convert instance type from the JS class to the wrapper class
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1706
* remove test file
* fix: Error: Illegal use of "@private" tag.
* fix: The Environment, Encode, and Spherical are static class
* fix: convert JS instance to the ionic instance
add: BaseClass.destroy()
add: getId() method for all instance classes
* Documentation Error https://github.com/ionic-team/ionic-native/issues/1994
* Need to create another way to convert the instance for marker cluster
* save
* Remove the instance of wrapper class if the JS instance is removed.
* Bug fix: HtmlInfoWindow missing .on and .one methods
https://github.com/ionic-team/ionic-native/issues/2034
* Bug fix: HtmlInfoWindow constructor cause the error
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1661
* Fix: Error when removing map
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1823
* Add: the cssOptions argument for HtmlInfoWindow.setContent() method
* Bug fix: Polyline.getPoints(), Polygon.getPoints() and Polygon.getHoles()
Those methods need to create new instance of BaseArrayClass of wrapper plugin.
* Add: forEachAsync(), mapAsync(), and filterAsync() methods into BaseArray class
* update: use document.querySelector() instead of document.getElementById() if the passed element is string
update: map.setDiv()
Bug fix: can not create empty GoogleMap (pure JS version is available way)
* Fix: wait until the page is fully ready
* Fix: missing `clickable` option for PolygonOptions and PolylineOptions
* Add: accept own properties for `addMarker()` and others #2087
Fix: some properties are required, but specified as optional.
Add: descriptions for properties
* Bug fix: Static classes are defined as non static class
https://stackoverflow.com/questions/47083289/ionic-native-google-maps-plugin-set-app-background-color/47165721#47165721
* Add: poly class (plugin.google.maps.geometory.poly namespace)
* Update index.ts
* Update index.ts
* Add missing features, and bug fix of methods
* update: classname must be in pascal case
* remove: duplicated class definition
* export encode and spherical static classes
* Add comma
* Fix Encoding and Spherical
* Add convenience methods
* Fix decorators for Encoding and Spherical
* Update: getMap() methods return the instance of the wrapper plugin
* Update: getMap() methods return the instance of the wrapper plugin
* Remove `@CordovaInstance` decorators from getMap()
* Update: GoogleMapOptions (all fields are not optional).
* Follow up: version `2.0.0-beta2-20170719-2226` of cordova-plugin-googlemaps
* Fix: tslint error
* Fix: tslint error
* No more isAvailable() method.
* Bug fix: description is incorrect
* Bug fix: example code was wrong.
* Bug fix: HtmlInfoWindow does not work
https://github.com/ionic-team/ionic-native/pull/1815#issuecomment-318909795
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* It seems the ionViewDidLoad() is enough delayed after platform.ready()
* Bug fix: map.setDiv()
* Bug fix: HtmlInfoWindow does not work
* Bug fix: BaseArrayClass definition is incorrect
* Bug fix: BaseArrayClass constructor is wrong
* Bug fix: Geocoder class does not work
* Bug fix: LatLngBounds constructor is wrong
* update: noNotify option is not declared
* Bug fix: Geocoder.geocode() returns array of GeocoderResult
* Update: clarify acceptable parameters of BaseArrayClass
* Add: AnimateCameraOption.padding is missing
* Revert: BaseClass.empty() method does not have the noNotify option
* Add `destruct` option to the CordovaOption.
- This allows BaseClass.on() is able to pass multiple retuned values from the cordova plugin side to the event lister.
* A semicolon is mixing
* update: event names
* Update: BaseClass.addEventListener(), addEventListenerOnce(), on(), and one()
* Add: destruct option for otherPromise
Change: inside event names (must use the version 2.0.0-beta3-20170808-1950 or higher)
* Build for working group
* Bug fix: map.getCameraTarget() definition is incorrect
* Bug fix: The definition of VisibleRegion interface is incorrect
* Fix: LatLng, LatLngBounds, and PolylineOptions classes
Update: map.getVisibleRegion()
Add: VisibleRegion class
* Bug fix: the definition of map.clear() method is incorrect
* Fix: map.fromLatLngToPoint()
* Ignore the dist directory on the master branch
* Remove the dist folder on the master branch
* fixes and tweaks
* use union types for CameraPosition
fixes issue mentioned on slack by @wf9a5m75
* fix types
* update AnimateCameraOptions interface
* remove AnimateCameraOptions interface
* add MarkerCluster class
* Bug fix: Can not create an instance of BaseArrayClass
* Bug fix: the icons property of MarkerClusterOptions
* Bug fix: the zoom option is missing
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1712
* Update index.ts
* fix: need to convert instance type from the JS class to the wrapper class
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1706
* remove test file
* fix: Error: Illegal use of "@private" tag.
* fix: The Environment, Encode, and Spherical are static class
* fix: convert JS instance to the ionic instance
add: BaseClass.destroy()
add: getId() method for all instance classes
* Documentation Error https://github.com/ionic-team/ionic-native/issues/1994
* Need to create another way to convert the instance for marker cluster
* save
* Remove the instance of wrapper class if the JS instance is removed.
* Bug fix: HtmlInfoWindow missing .on and .one methods
https://github.com/ionic-team/ionic-native/issues/2034
* Bug fix: HtmlInfoWindow constructor cause the error
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1661
* Fix: Error when removing map
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1823
* Add: the cssOptions argument for HtmlInfoWindow.setContent() method
* Bug fix: Polyline.getPoints(), Polygon.getPoints() and Polygon.getHoles()
Those methods need to create new instance of BaseArrayClass of wrapper plugin.
* Add: forEachAsync(), mapAsync(), and filterAsync() methods into BaseArray class
* update: use document.querySelector() instead of document.getElementById() if the passed element is string
update: map.setDiv()
Bug fix: can not create empty GoogleMap (pure JS version is available way)
* Fix: wait until the page is fully ready
* Fix: missing `clickable` option for PolygonOptions and PolylineOptions
Hello guys,
I make this pull request to add the installation variable `GEOLOCATION_USAGE_DESCRIPTION` needed on iOS, since version 10.
Without this variable, using `getCurrentPosition` do nothing on iOS because phone wait user authorization. But that authorization is not display because there is no message defined.
This variable make this part of code in `info.plist` :
```
<key>NSLocationWhenInUseUsageDescription</key>
<string>To allow locate you</string>
```
Source : https://github.com/apache/cordova-plugin-geolocation#ios-quirks
Have a good coding day :)
* Update index.ts
* Update index.ts
* Add missing features, and bug fix of methods
* update: classname must be in pascal case
* remove: duplicated class definition
* export encode and spherical static classes
* Add comma
* Fix Encoding and Spherical
* Add convenience methods
* Fix decorators for Encoding and Spherical
* Update: getMap() methods return the instance of the wrapper plugin
* Update: getMap() methods return the instance of the wrapper plugin
* Remove `@CordovaInstance` decorators from getMap()
* Update: GoogleMapOptions (all fields are not optional).
* Follow up: version `2.0.0-beta2-20170719-2226` of cordova-plugin-googlemaps
* Fix: tslint error
* Fix: tslint error
* No more isAvailable() method.
* Bug fix: description is incorrect
* Bug fix: example code was wrong.
* Bug fix: HtmlInfoWindow does not work
https://github.com/ionic-team/ionic-native/pull/1815#issuecomment-318909795
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* It seems the ionViewDidLoad() is enough delayed after platform.ready()
* Bug fix: map.setDiv()
* Bug fix: HtmlInfoWindow does not work
* Bug fix: BaseArrayClass definition is incorrect
* Bug fix: BaseArrayClass constructor is wrong
* Bug fix: Geocoder class does not work
* Bug fix: LatLngBounds constructor is wrong
* update: noNotify option is not declared
* Bug fix: Geocoder.geocode() returns array of GeocoderResult
* Update: clarify acceptable parameters of BaseArrayClass
* Add: AnimateCameraOption.padding is missing
* Revert: BaseClass.empty() method does not have the noNotify option
* Add `destruct` option to the CordovaOption.
- This allows BaseClass.on() is able to pass multiple retuned values from the cordova plugin side to the event lister.
* A semicolon is mixing
* update: event names
* Update: BaseClass.addEventListener(), addEventListenerOnce(), on(), and one()
* Add: destruct option for otherPromise
Change: inside event names (must use the version 2.0.0-beta3-20170808-1950 or higher)
* Build for working group
* Bug fix: map.getCameraTarget() definition is incorrect
* Bug fix: The definition of VisibleRegion interface is incorrect
* Fix: LatLng, LatLngBounds, and PolylineOptions classes
Update: map.getVisibleRegion()
Add: VisibleRegion class
* Bug fix: the definition of map.clear() method is incorrect
* Fix: map.fromLatLngToPoint()
* Ignore the dist directory on the master branch
* Remove the dist folder on the master branch
* fixes and tweaks
* use union types for CameraPosition
fixes issue mentioned on slack by @wf9a5m75
* fix types
* update AnimateCameraOptions interface
* remove AnimateCameraOptions interface
* add MarkerCluster class
* Bug fix: Can not create an instance of BaseArrayClass
* Bug fix: the icons property of MarkerClusterOptions
* Bug fix: the zoom option is missing
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1712
* Update index.ts
* fix: need to convert instance type from the JS class to the wrapper class
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1706
* remove test file
* fix: Error: Illegal use of "@private" tag.
* fix: The Environment, Encode, and Spherical are static class
* fix: convert JS instance to the ionic instance
add: BaseClass.destroy()
add: getId() method for all instance classes
* Documentation Error https://github.com/ionic-team/ionic-native/issues/1994
* Need to create another way to convert the instance for marker cluster
* save
* Remove the instance of wrapper class if the JS instance is removed.
Variable REVERSED_CLIENT_ID can be found in your GoogleService-Info.plist under the same key name.
Variable PHOTO_LIBRARY_USAGE_DESCRIPTION specifies required value for NSPhotoLibraryUsageDescription on iOS.
See: https://github.com/chemerisuk/cordova-plugin-firebase-dynamiclinks
This now includes the value 'resolved', as it is a valid action passed by the service browser on iOS (at least) when IP addresses for the chosen service have been resolved.
* Update index.ts
* Update index.ts
* Add missing features, and bug fix of methods
* update: classname must be in pascal case
* remove: duplicated class definition
* export encode and spherical static classes
* Add comma
* Fix Encoding and Spherical
* Add convenience methods
* Fix decorators for Encoding and Spherical
* Update: getMap() methods return the instance of the wrapper plugin
* Update: getMap() methods return the instance of the wrapper plugin
* Remove `@CordovaInstance` decorators from getMap()
* Update: GoogleMapOptions (all fields are not optional).
* Follow up: version `2.0.0-beta2-20170719-2226` of cordova-plugin-googlemaps
* Fix: tslint error
* Fix: tslint error
* No more isAvailable() method.
* Bug fix: description is incorrect
* Bug fix: example code was wrong.
* Bug fix: HtmlInfoWindow does not work
https://github.com/ionic-team/ionic-native/pull/1815#issuecomment-318909795
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* It seems the ionViewDidLoad() is enough delayed after platform.ready()
* Bug fix: map.setDiv()
* Bug fix: HtmlInfoWindow does not work
* Bug fix: BaseArrayClass definition is incorrect
* Bug fix: BaseArrayClass constructor is wrong
* Bug fix: Geocoder class does not work
* Bug fix: LatLngBounds constructor is wrong
* update: noNotify option is not declared
* Bug fix: Geocoder.geocode() returns array of GeocoderResult
* Update: clarify acceptable parameters of BaseArrayClass
* Add: AnimateCameraOption.padding is missing
* Revert: BaseClass.empty() method does not have the noNotify option
* Add `destruct` option to the CordovaOption.
- This allows BaseClass.on() is able to pass multiple retuned values from the cordova plugin side to the event lister.
* A semicolon is mixing
* update: event names
* Update: BaseClass.addEventListener(), addEventListenerOnce(), on(), and one()
* Add: destruct option for otherPromise
Change: inside event names (must use the version 2.0.0-beta3-20170808-1950 or higher)
* Build for working group
* Bug fix: map.getCameraTarget() definition is incorrect
* Bug fix: The definition of VisibleRegion interface is incorrect
* Fix: LatLng, LatLngBounds, and PolylineOptions classes
Update: map.getVisibleRegion()
Add: VisibleRegion class
* Bug fix: the definition of map.clear() method is incorrect
* Fix: map.fromLatLngToPoint()
* Ignore the dist directory on the master branch
* Remove the dist folder on the master branch
* fixes and tweaks
* use union types for CameraPosition
fixes issue mentioned on slack by @wf9a5m75
* fix types
* update AnimateCameraOptions interface
* remove AnimateCameraOptions interface
* add MarkerCluster class
* Bug fix: Can not create an instance of BaseArrayClass
* Bug fix: the icons property of MarkerClusterOptions
* Bug fix: the zoom option is missing
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1712
* Update index.ts
* fix: need to convert instance type from the JS class to the wrapper class
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1706
* remove test file
* fix: Error: Illegal use of "@private" tag.
* fix: The Environment, Encode, and Spherical are static class
* fix: convert JS instance to the ionic instance
add: BaseClass.destroy()
add: getId() method for all instance classes
* Update index.ts
* Update index.ts
* Add missing features, and bug fix of methods
* update: classname must be in pascal case
* remove: duplicated class definition
* export encode and spherical static classes
* Add comma
* Fix Encoding and Spherical
* Add convenience methods
* Fix decorators for Encoding and Spherical
* Update: getMap() methods return the instance of the wrapper plugin
* Update: getMap() methods return the instance of the wrapper plugin
* Remove `@CordovaInstance` decorators from getMap()
* Update: GoogleMapOptions (all fields are not optional).
* Follow up: version `2.0.0-beta2-20170719-2226` of cordova-plugin-googlemaps
* Fix: tslint error
* Fix: tslint error
* No more isAvailable() method.
* Bug fix: description is incorrect
* Bug fix: example code was wrong.
* Bug fix: HtmlInfoWindow does not work
https://github.com/ionic-team/ionic-native/pull/1815#issuecomment-318909795
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* It seems the ionViewDidLoad() is enough delayed after platform.ready()
* Bug fix: map.setDiv()
* Bug fix: HtmlInfoWindow does not work
* Bug fix: BaseArrayClass definition is incorrect
* Bug fix: BaseArrayClass constructor is wrong
* Bug fix: Geocoder class does not work
* Bug fix: LatLngBounds constructor is wrong
* update: noNotify option is not declared
* Bug fix: Geocoder.geocode() returns array of GeocoderResult
* Update: clarify acceptable parameters of BaseArrayClass
* Add: AnimateCameraOption.padding is missing
* Revert: BaseClass.empty() method does not have the noNotify option
* Add `destruct` option to the CordovaOption.
- This allows BaseClass.on() is able to pass multiple retuned values from the cordova plugin side to the event lister.
* A semicolon is mixing
* update: event names
* Update: BaseClass.addEventListener(), addEventListenerOnce(), on(), and one()
* Add: destruct option for otherPromise
Change: inside event names (must use the version 2.0.0-beta3-20170808-1950 or higher)
* Build for working group
* Bug fix: map.getCameraTarget() definition is incorrect
* Bug fix: The definition of VisibleRegion interface is incorrect
* Fix: LatLng, LatLngBounds, and PolylineOptions classes
Update: map.getVisibleRegion()
Add: VisibleRegion class
* Bug fix: the definition of map.clear() method is incorrect
* Fix: map.fromLatLngToPoint()
* Ignore the dist directory on the master branch
* Remove the dist folder on the master branch
* fixes and tweaks
* use union types for CameraPosition
fixes issue mentioned on slack by @wf9a5m75
* fix types
* update AnimateCameraOptions interface
* remove AnimateCameraOptions interface
* add MarkerCluster class
* Bug fix: Can not create an instance of BaseArrayClass
* Bug fix: the icons property of MarkerClusterOptions
* Bug fix: the zoom option is missing
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/1712
* Update index.ts
* Update index.ts
* Update index.ts
* Add missing features, and bug fix of methods
* update: classname must be in pascal case
* remove: duplicated class definition
* export encode and spherical static classes
* Add comma
* Fix Encoding and Spherical
* Add convenience methods
* Fix decorators for Encoding and Spherical
* Update: getMap() methods return the instance of the wrapper plugin
* Update: getMap() methods return the instance of the wrapper plugin
* Remove `@CordovaInstance` decorators from getMap()
* Update: GoogleMapOptions (all fields are not optional).
* Follow up: version `2.0.0-beta2-20170719-2226` of cordova-plugin-googlemaps
* Fix: tslint error
* Fix: tslint error
* No more isAvailable() method.
* Bug fix: description is incorrect
* Bug fix: example code was wrong.
* Bug fix: HtmlInfoWindow does not work
https://github.com/ionic-team/ionic-native/pull/1815#issuecomment-318909795
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* It seems the ionViewDidLoad() is enough delayed after platform.ready()
* Bug fix: map.setDiv()
* Bug fix: HtmlInfoWindow does not work
* Bug fix: BaseArrayClass definition is incorrect
* Bug fix: BaseArrayClass constructor is wrong
* Bug fix: Geocoder class does not work
* Bug fix: LatLngBounds constructor is wrong
* update: noNotify option is not declared
* Bug fix: Geocoder.geocode() returns array of GeocoderResult
* Update: clarify acceptable parameters of BaseArrayClass
* Add: AnimateCameraOption.padding is missing
* Revert: BaseClass.empty() method does not have the noNotify option
* Add `destruct` option to the CordovaOption.
- This allows BaseClass.on() is able to pass multiple retuned values from the cordova plugin side to the event lister.
* A semicolon is mixing
* update: event names
* Update: BaseClass.addEventListener(), addEventListenerOnce(), on(), and one()
* Add: destruct option for otherPromise
Change: inside event names (must use the version 2.0.0-beta3-20170808-1950 or higher)
* Build for working group
* Bug fix: map.getCameraTarget() definition is incorrect
* Bug fix: The definition of VisibleRegion interface is incorrect
* Fix: LatLng, LatLngBounds, and PolylineOptions classes
Update: map.getVisibleRegion()
Add: VisibleRegion class
* Bug fix: the definition of map.clear() method is incorrect
* Fix: map.fromLatLngToPoint()
* Ignore the dist directory on the master branch
* Remove the dist folder on the master branch
* fixes and tweaks
* use union types for CameraPosition
fixes issue mentioned on slack by @wf9a5m75
* fix types
* update AnimateCameraOptions interface
* remove AnimateCameraOptions interface
* add MarkerCluster class
* Bug fix: Can not create an instance of BaseArrayClass
* Bug fix: the icons property of MarkerClusterOptions
* Update index.ts
* Update index.ts
* Add missing features, and bug fix of methods
* update: classname must be in pascal case
* remove: duplicated class definition
* export encode and spherical static classes
* Add comma
* Fix Encoding and Spherical
* Add convenience methods
* Fix decorators for Encoding and Spherical
* Update: getMap() methods return the instance of the wrapper plugin
* Update: getMap() methods return the instance of the wrapper plugin
* Remove `@CordovaInstance` decorators from getMap()
* Update: GoogleMapOptions (all fields are not optional).
* Follow up: version `2.0.0-beta2-20170719-2226` of cordova-plugin-googlemaps
* Fix: tslint error
* Fix: tslint error
* No more isAvailable() method.
* Bug fix: description is incorrect
* Bug fix: example code was wrong.
* Bug fix: HtmlInfoWindow does not work
https://github.com/ionic-team/ionic-native/pull/1815#issuecomment-318909795
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* It seems the ionViewDidLoad() is enough delayed after platform.ready()
* Bug fix: map.setDiv()
* Bug fix: HtmlInfoWindow does not work
* Bug fix: BaseArrayClass definition is incorrect
* Bug fix: BaseArrayClass constructor is wrong
* Bug fix: Geocoder class does not work
* Bug fix: LatLngBounds constructor is wrong
* update: noNotify option is not declared
* Bug fix: Geocoder.geocode() returns array of GeocoderResult
* Update: clarify acceptable parameters of BaseArrayClass
* Add: AnimateCameraOption.padding is missing
* Revert: BaseClass.empty() method does not have the noNotify option
* Add `destruct` option to the CordovaOption.
- This allows BaseClass.on() is able to pass multiple retuned values from the cordova plugin side to the event lister.
* A semicolon is mixing
* update: event names
* Update: BaseClass.addEventListener(), addEventListenerOnce(), on(), and one()
* Add: destruct option for otherPromise
Change: inside event names (must use the version 2.0.0-beta3-20170808-1950 or higher)
* Build for working group
* Bug fix: map.getCameraTarget() definition is incorrect
* Bug fix: The definition of VisibleRegion interface is incorrect
* Fix: LatLng, LatLngBounds, and PolylineOptions classes
Update: map.getVisibleRegion()
Add: VisibleRegion class
* Bug fix: the definition of map.clear() method is incorrect
* Fix: map.fromLatLngToPoint()
* Ignore the dist directory on the master branch
* Remove the dist folder on the master branch
* fixes and tweaks
* use union types for CameraPosition
fixes issue mentioned on slack by @wf9a5m75
* fix types
* update AnimateCameraOptions interface
* remove AnimateCameraOptions interface
* add MarkerCluster class
* Bug fix: Can not create an instance of BaseArrayClass
* Update index.ts
* Update index.ts
* Add missing features, and bug fix of methods
* update: classname must be in pascal case
* remove: duplicated class definition
* export encode and spherical static classes
* Add comma
* Fix Encoding and Spherical
* Add convenience methods
* Fix decorators for Encoding and Spherical
* Update: getMap() methods return the instance of the wrapper plugin
* Update: getMap() methods return the instance of the wrapper plugin
* Remove `@CordovaInstance` decorators from getMap()
* Update: GoogleMapOptions (all fields are not optional).
* Follow up: version `2.0.0-beta2-20170719-2226` of cordova-plugin-googlemaps
* Fix: tslint error
* Fix: tslint error
* No more isAvailable() method.
* Bug fix: description is incorrect
* Bug fix: example code was wrong.
* Bug fix: HtmlInfoWindow does not work
https://github.com/ionic-team/ionic-native/pull/1815#issuecomment-318909795
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* Bug fix: HtmlInfoWindow does not work
* It seems the ionViewDidLoad() is enough delayed after platform.ready()
* Bug fix: map.setDiv()
* Bug fix: HtmlInfoWindow does not work
* Bug fix: BaseArrayClass definition is incorrect
* Bug fix: BaseArrayClass constructor is wrong
* Bug fix: Geocoder class does not work
* Bug fix: LatLngBounds constructor is wrong
* update: noNotify option is not declared
* Bug fix: Geocoder.geocode() returns array of GeocoderResult
* Update: clarify acceptable parameters of BaseArrayClass
* Add: AnimateCameraOption.padding is missing
* Revert: BaseClass.empty() method does not have the noNotify option
* Add `destruct` option to the CordovaOption.
- This allows BaseClass.on() is able to pass multiple retuned values from the cordova plugin side to the event lister.
* A semicolon is mixing
* update: event names
* Update: BaseClass.addEventListener(), addEventListenerOnce(), on(), and one()
* Add: destruct option for otherPromise
Change: inside event names (must use the version 2.0.0-beta3-20170808-1950 or higher)
* Build for working group
* Bug fix: map.getCameraTarget() definition is incorrect
* Bug fix: The definition of VisibleRegion interface is incorrect
* Fix: LatLng, LatLngBounds, and PolylineOptions classes
Update: map.getVisibleRegion()
Add: VisibleRegion class
* Bug fix: the definition of map.clear() method is incorrect
* Fix: map.fromLatLngToPoint()
* Ignore the dist directory on the master branch
* Remove the dist folder on the master branch
* fixes and tweaks
* use union types for CameraPosition
fixes issue mentioned on slack by @wf9a5m75
* fix types
* update AnimateCameraOptions interface
* remove AnimateCameraOptions interface
* add MarkerCluster class
Wrong pluginRef causes errors:
Native: tried calling SpinnerDialog.show, but the SpinnerDialog plugin is not installed.
Install the SpinnerDialog plugin: 'ionic cordova plugin add cordova-plugin-native-spinner'
Fix pluginRef to work properly.
* docs(nfc): update usage doc of the nfc plugin
show an example of how the event listeners work with observable subscription and implement an nfc share within the event listener.
* docs(AndroidPermissions): requestPermissions->requestPermission
* Update index.ts
* Update index.ts
* Add missing features, and bug fix of methods
* update: classname must be in pascal case
* remove: duplicated class definition
* export encode and spherical static classes
* Add comma
* Fix Encoding and Spherical
* Add convenience methods
* Fix decorators for Encoding and Spherical
* Update: getMap() methods return the instance of the wrapper plugin
* Update: getMap() methods return the instance of the wrapper plugin
* Remove `@CordovaInstance` decorators from getMap()
* Update: GoogleMapOptions (all fields are not optional).
* Follow up: version `2.0.0-beta2-20170719-2226` of cordova-plugin-googlemaps
* Fix: tslint error
* Fix: tslint error
* No more isAvailable() method.
BREAKING CHANGE: the plugin's `create` method no longer takes callback functions. You must use the
observables provided by the `MediaObject` instance. Refer to the updated documentation for more
information.
closes#1591
* change source and document interface
* document addAlias example
* feat(email-composer): add requestPermission and hasPermission methods
* refactor(): use getPlugin() instead of referencing cordova
BREAKING CHANGE: Package name is now `@ionic-native/file-transfer`. `Transfer` class has been
renamed to `FileTransfer`. Also, `TransferObject` class has been renamed to `FileTransferObject`.
* update google maps
* more updates
* add BaseClass
* add BaseArrayClass
* add BaseArrayClass constructor
* finish up BaseArrayClass
* add Environment class
* improve docs and add missing functions to GoogleMap class
* improve TileOverlayOptions interface
* add types to constants
* add ILatLng interface
* improve types in BaseArrayClass
* fix geocoder return type
* use Cordova decorator for geocoder
* document CameraPosition and add missing duration property
* document circle class and add update functions
* tslint
* remove extra decorator
* add setVisible and getVisible to Circle class
* complete Environment class
* add convenience method to return instance of environment
* add more classes to docs
* re-organize plugin definition
* document GroundOverlayOptions
* complete GroundOverlay class
* add and complete HtmlInfoWindow class
* complete LatLngBounds class
* update MyLocation interface
* complete GoogleMap class
* fix TERRAIN spelling
* complete Marker class
* complete Polygon class
* complete TileOverlay class
* remove setDebuggable and isAvailable
developer said they're not suited for users
* Improved the docs for firebase dynamic links
The config.xml example needed to switch the ios and android tag.
Added an example how to use onDynamicLink()
* (doc) Reverted change and expanded example
* (doc) Even more comments for clarity
As seen in the Cordova plugin (https://github.com/mjwheatley/cordova-plugin-android-fingerprint-auth) the isAvailable method returns an object that contains 3 parameters, {isAvailable:, isHardwareDetected, hasEnrolledFingerprints}.
If you do a console log on
this.androidFingerprintAuth.isAvailable()
.then(res => console.log(res)) //Outputs the Object {isAvailable: true, isHardwareDetected: true, hasEnrolledFingerprints: true}
.catch(err => console.error(err));
So we are getting the data, just need to make the interface expose it.
CircleCI can only save files one to a specific cache key. I set the cache key to depend on the checksum of package.json, so it updates the cache every time we update Ionic Native. In the long run, CircleCI will have to download the ionic-site changes less often.
#### There are no rules, but here are a few things to consider:
###### Before you submit an issue:
* Do a quick search to see if there are similar issues
* Make sure that you are waiting for `deviceready` to fire before interacting with any plugin. If you are using Ionic 2, this can be done using [the `Platform.ready()` function](http://ionicframework.com/docs/api/platform/Platform/#ready).
* Make sure that you are waiting for `deviceready` to fire before interacting with any plugin. If you are using Ionic, this can be done using [the `Platform.ready()` function](http://ionicframework.com/docs/api/platform/Platform/#ready).
* **Check that you are using the latest version of** `ionic-native`, you can install the latest version by running `npm i --save @ionic-native/core@latest`
###### Still having problems? submit an issue with the following details:
<!-- Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or https://ionicworldwide.herokuapp.com/ -->
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or https://ionicworldwide.herokuapp.com/
**Current behavior:**
<!-- Describe how the bug manifests. -->
@@ -21,8 +21,8 @@ insert any relevant code here
**Other information:**
<!-- List any other information that is relevant to your issue. Stack traces, related issues, suggestions on how to fix, Stack Overflow links, forum links, etc. -->
**package.json info:**
**Ionic info:** (run `ionic info` from a terminal/cmd prompt and paste output below):
As contributors and maintainers of the Ionic project, we pledge to respect everyone who contributes by posting issues, updating documentation, submitting pull requests, providing feedback in comments, and any other activities.
Communication through any of Ionic's channels (GitHub, Slack, Forum, IRC, mailing lists, Twitter, etc.) must be constructive and never resort to personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
We promise to extend courtesy and respect to everyone involved in this project regardless of gender, gender identity, sexual orientation, disability, age, race, ethnicity, religion, or level of experience. We expect anyone contributing to the Ionic project to do the same.
If any member of the community violates this code of conduct, the maintainers of the Ionic project may take action, removing issues, comments, and PRs or blocking accounts as deemed appropriate.
If you are subject to or witness unacceptable behavior, or have any other concerns, please email us at [hi@ionicframework.com](mailto:hi@ionicframework.com).
@@ -88,8 +88,6 @@ It's just a stub. The `return` is only there to keep the TypeScript type-checker
By default, the `@Cordova` decorator wraps the plugin callbacks in a Promise that resolves when the success callback is called and rejects when the error callback is called. It also ensures that Cordova and the underlying plugin are available, and prints helpful diagnostics if they aren't.
You'll also notice that `getCurrentPosition` is a static method. That's because the plugin class is just a utility class to call the underlying Cordova plugin methods, it's not an instance and has no state.
Next, let's look at the `watchPosition` method.
```
@@ -115,11 +113,11 @@ You need to run `npm run build` in the `ionic-native` project, this will create
### Cleaning the code
You need to run `npm run lint` to analyze the code and ensure it's consistency with the repository style. Fix any errors before submitting a PR.
You need to run `npm run lint` to analyze the code and ensure its consistency with the repository style. Fix any errors before submitting a PR.
### 'Wrapping' Up
That's it! The only thing left to do is rigorously document the plugin and it's usage. Take a look at some of the other plugins for good documentation styles.
That's it! The only thing left to do is rigorously document the plugin and its usage. Take a look at some of the other plugins for good documentation styles.
## Commit Message Format
@@ -194,7 +192,7 @@ Checks if the plugin and property exist before getting/setting the property's va
Example:
```ts
@CordovaProperty
@CordovaProperty()
someProperty: string;
```
@@ -209,4 +207,13 @@ Example:
someMethod():Promise<any>{
// anything here will only run if the plugin is available
}
```
```
#### CordovaFunctionOverride
Wrap a stub function in a call to a Cordova plugin, checking if both Cordova and the required plugin are installed.
Ionic Native is a curated set of wrappers for Cordova plugins that make adding any native functionality you need to your [Ionic](https://ionicframework.com/) mobile app easy.
@@ -10,6 +9,7 @@ Ionic Native wraps plugin callbacks in a Promise or Observable, providing a comm
## Installation
Run following command to install Ionic Native in your project.
```bash
npm install @ionic-native/core --save
```
@@ -22,11 +22,13 @@ For the full Ionic Native documentation, please visit [https://ionicframework.co
### Basic Usage
To use a plugin, import and add the plugin provider to your `@NgModule`, and then inject it where you wish to use it.
#### Ionic/Angular apps
To use a plugin, import and add the plugin provider to your `@NgModule`, and then inject it where you wish to use it.
Make sure to import the injectable class from the `/ngx` directory as shown in the following examples:
// Currently, observables from Ionic Native plugins
// need to run inside of zone to trigger change detection
ngZone.run(()=>{
this.position=pos;
})
});
// to stop watching
watch.unsubscribe();
});
}
@@ -87,16 +76,71 @@ export class MyComponent {
}
```
### Mocking and Browser Development
#### ES2015+/TypeScript
These modules can work in any ES2015+/TypeScript app (including Angular/Ionic apps). To use any plugin, import the class from the appropriate package, and use it's static methods.
```js
import{Camera}from'@ionic-native/camera';
Ionic Native 3.x makes it possible to mock plugins and develop nearly the entirety of your app in the browser or in `ionic serve`.
document.addEventListener('deviceready',()=>{
Camera.getPicture()
.then((data)=>console.log('Took a picture!',data))
.catch((e)=>console.log('Error occurred while taking a picture',e));
});
```
#### AngularJS
Ionic Native generates an AngularJS module in runtime and prepares a service for each plugin. To use the plugins in your AngularJS app:
1. Download the latest bundle from the [Github releases](https://github.com/ionic-team/ionic-native/releases) page.
2. Include it in `index.html` before your app's code.
3. Inject `ionic.native` module in your app.
4. Inject any plugin you would like to use with a `$cordova` prefix.
console.log('Error occurred while taking a picture',err);
}
);
});
```
### Mocking and Browser Development (Ionic/Angular apps only)
Ionic Native makes it possible to mock plugins and develop nearly the entirety of your app in the browser or in `ionic serve`.
To do this, you need to provide a mock implementation of the plugins you wish to use. Here's an example of mocking the `Camera` plugin to return a stock image while in development:
First import the `Camera` class in your `src/app/app.module.ts` file:
```typescript
import{Camera}from'@ionic-native/camera';
import{Camera}from'@ionic-native/camera/ngx';
```
Then create a new class that extends the `Camera` class with a mock implementation:
@@ -105,8 +149,8 @@ Then create a new class that extends the `Camera` class with a mock implementati
classCameraMockextendsCamera{
getPicture(options){
returnnewPromise((resolve,reject)=>{
resolve("BASE_64_ENCODED_DATA_GOES_HERE");
})
resolve('BASE_64_ENCODED_DATA_GOES_HERE');
});
}
}
```
@@ -114,71 +158,61 @@ class CameraMock extends Camera {
Finally, override the previous `Camera` class in your `providers` for this module:
Spent way too long diagnosing an issue only to realize a plugin wasn't firing or installed? Ionic Native lets you know what the issue is and how you can resolve it.
Let us know or submit a PR! Take a look at [the Developer Guide](https://github.com/ionic-team/ionic-native/blob/master/DEVELOPER.md) for more on how to contribute. :heart:
## Ionic V1/Angular 1 support
For Ionic V1/Angular 1 support, please use version 2 of Ionic Native. See the [2.x README](https://github.com/ionic-team/ionic-native/blob/8cd648db5cddd7bdbe2bd78839b19c620cc8c04c/README.md) for usage information.
This script reads and generates [typedoc](https://github.com/TypeStrong/typedoc) data for each of the plugins in `src/@ionic-native/plugins`. That data is then formatted and output as `plugins.json` in this directory.
// To help developers using cordova, we listen for the device ready event and
// log an error if it didn't fire in a reasonable amount of time. Generally,
// when this happens, developers should remove and reinstall plugins, since
// an inconsistent plugin is often the culprit.
constbefore=Date.now();
// To help developers using cordova, we listen for the device ready event and
// log an error if it didn't fire in a reasonable amount of time. Generally,
// when this happens, developers should remove and reinstall plugins, since
// an inconsistent plugin is often the culprit.
constbefore=Date.now();
letdidFireReady=false;
document.addEventListener('deviceready',()=>{
console.log(`Ionic Native: deviceready event fired after ${(Date.now()-before)} ms`);
didFireReady=true;
});
letdidFireReady=false;
win.document.addEventListener('deviceready',()=>{
console.log(`Ionic Native: deviceready event fired after ${Date.now()-before} ms`);
didFireReady=true;
});
setTimeout(()=>{
if(!didFireReady&&!!window.cordova){
console.warn(`Ionic Native: deviceready did not fire within ${DEVICE_READY_TIMEOUT}ms. This can happen when plugins are in an inconsistent state. Try removing plugins from plugins/ and reinstalling them.`);
}
},DEVICE_READY_TIMEOUT);
setTimeout(()=>{
if(!didFireReady&&win.cordova){
console.warn(
`Ionic Native: deviceready did not fire within ${DEVICE_READY_TIMEOUT}ms. This can happen when plugins are in an inconsistent state. Try removing plugins from plugins/ and reinstalling them.`
'No Promise support or polyfill found. To enable Ionic Native support, please add the es6-promise polyfill before this script, or run with a library like Angular or on a recent browser.'
);
}
};
if(typeofwindow!=='undefined'&&window.angular){
constdoc=window.document;
constinjector=window.angular
.element(doc.querySelector('[ng-app]')||doc.body)
.injector();
if(injector){
const$q=injector.get('$q');
return$q((resolve: Function,reject: Function)=>{
callback(resolve,reject);
});
}
console.warn(
`Angular 1 was detected but $q couldn't be retrieved. This is usually when the app is not bootstrapped on the html or body tag. Falling back to native promises which won't trigger an automatic digest when promises resolve.`
// We don't want that the reject cb gets spliced into the position of an optional argument that has not been defined and thus causing non expected behaviour.
if(opts.errorIndex>args.length){
args[opts.errorIndex]=reject;// insert the reject fn at the correct specific index
}else{
args.splice(opts.errorIndex,0,reject);// otherwise just splice it into the array
}
};
if(opts.successIndex>opts.errorIndex){
setErrorIndex();
setSuccessIndex();
}else{
setSuccessIndex();
setErrorIndex();
}
}else{
// Otherwise, let's tack them on to the end of the argument list
console.error('No Promise support or polyfill found. To enable Ionic Native support, please add the es6-promise polyfill before this script, or run with a library like Angular 2 or on a recent browser.');
console.error(
'No Promise support or polyfill found. To enable Ionic Native support, please add the es6-promise polyfill before this script, or run with a library like Angular or on a recent browser.'
console.warn('Native: tried calling '+pluginName+'.'+method+', but Cordova is not available. Make sure to include cordova.js or run in a device/simulator');
}else{
console.warn('Native: tried accessing the '+pluginName+' plugin but Cordova is not available. Make sure to include cordova.js or run in a device/simulator');
* This is the Ionic Cordova SDK of Adjust™. You can read more about Adjust™ at adjust.com.
*
* Requires Cordova plugin: `com.adjust.sdk`. For more info, please see the [Adjust Cordova SDK](https://github.com/adjust/cordova_sdk)
*
* @usage
* ```typescript
* import { Adjust, AdjustConfig, AdjustEnvironment } from '@ionic-native/adjust/ngx';
*
* constructor(private adjust: Adjust) { }
*
* ...
*
* const config = new AdjustConfig('APP-TOKEN-HERE', AdjustEnvironment.Sandbox);
* config.logLevel = AdjustLogLevel.Verbose;
* // Set other config properties.
* adjust.create(config);
*
* ```
* @interfaces
* AdjustAttribution
* AdjustSessionSuccess
* AdjustSessionFailure
* AdjustEventSuccess
* AdjustEventFailure
* @classes
* AdjustEvent
* AdjustConfig
* @enums
* AdjustEnvironment
* AdjustLogLevel
*/
@Plugin({
pluginName:'Adjust',
plugin:'com.adjust.sdk',
pluginRef:'Adjust',
repo:'https://github.com/adjust/cordova_sdk',
platforms:['Android','iOS']
})
@Injectable()
exportclassAdjustextendsIonicNativePlugin{
/**
* This method initializes Adjust SDK
* @param {AdjustConig} config Adjust config object used as starting options
*/
@Cordova({sync: true})
create(config: AdjustConfig):void{}
/**
* This method tracks an event
* @param {AdjustEvent} event Adjust event object to be tracked
*/
@Cordova({sync: true})
trackEvent(event: AdjustEvent):void{}
/**
* This method sets offline mode on or off
* @param {boolean} enabled set to true for offline mode on
*/
@Cordova({sync: true})
setOfflineMode(enabled: boolean):void{}
/**
* By making this call, the Adjust SDK will try to find if there is any new attribution info inside of the deep link and if any, it will be sent to the Adjust backend.
* @param {string} url URL of the deeplink
*/
@Cordova({sync: true})
appWillOpenUrl(url: string):void{}
/**
* You can disable/enable the Adjust SDK from tracking by invoking this method
* @param {boolean} enabled set to false to disable SDK
*/
@Cordova({sync: true})
setEnabled(enabled: boolean):void{}
/**
* To send us the push notification token, add the following call to Adjust whenever you get your token in the app or when it gets updated.
* Push tokens are used for Audience Builder and client callbacks, and they are required for the upcoming uninstall tracking feature.
* @param {string} pushToken push token value
*/
@Cordova({sync: true})
setPushToken(pushToken: string):void{}
/**
* Check if the Adjust SDK is currently enabled by calling this function
* @returns {Promise<boolean>}
*/
@Cordova()
isEnabled():Promise<boolean>{
return;
}
/**
* In accordance with article 17 of the EU's General Data Protection Regulation (GDPR), you can notify Adjust when a user has exercised their right to be forgotten.
* Calling the following method will instruct the Adjust SDK to communicate the user's choice to be forgotten to the Adjust backend
*/
@Cordova({sync: true})
gdprForgetMe():void{}
/**
* Function used to get Google AdId
* @return {Promise<string>} Returns a promise with google AdId value
*/
@Cordova()
getGoogleAdId():Promise<string>{
return;
}
/**
* If you need to obtain the Amazon Advertising ID, you can make a call to this function.
* @return {Promise<string>} Returns a promise with anazib adv. ID
*/
@Cordova()
getAmazonAdId():Promise<string>{
return;
}
/**
* To obtain the IDFA, call this function
* @return {Promise<string>} Returns a promise with IDFA string value
*/
@Cordova()
getIdfa():Promise<string>{
return;
}
/**
* For every device with your app installed on it, the Adjust backend generates a unique Adjust device identifier (adid).
* In order to obtain this identifier, call this function
* @return {Promise<string>} Returns a promise with adid value
*/
@Cordova()
getAdid():Promise<string>{
return;
}
/**
* If you want to access information about a user's current attribution whenever you need it, you can make a call to this function
* @return {Promise<AdjustAttribution>} Returns a promise with AdjustAttribution object
*/
@Cordova()
getAttribution():Promise<AdjustAttribution>{
return;
}
/**
* Get the information about version of the SDK used
* @return {Promise<string>} Returns a promise with sdk version information
* Remove a specific session partner parameter by passing the desiring key to this method
* @param key key
*/
@Cordova({sync: true})
removeSessionPartnerParameter(key: string):void{}
/**
* If all keys and values from the session partner parameters have to be removed, call this method
*/
@Cordova({sync: true})
resetSessionPartnerParameters():void{}
/**
* This method call will make the Adjust SDK send the initial install session and any events created, if they were not sent after delay start was set and it's delay expired.
* A free, no ad-sharing version of Google AdMob plugin for Cordova.
*
* Requires Cordova plugin: `cordova-plugin-admob-free`. For more info, please see the [AdMob Free plugin docs](https://github.com/ratson/cordova-plugin-admob-free).
*
* @usage
* ```typescript
* import { AdMobFree, AdMobFreeBannerConfig } from '@ionic-native/admob-free';
* import { AdMobFree, AdMobFreeBannerConfig } from '@ionic-native/admob-free/ngx';
* Banner Ad Size, defaults to `SMART_BANNER`. IT can be: `SMART_BANNER`, `BANNER`, `MEDIUM_RECTANGLE`, `FULL_BANNER`, `LEADERBOARD`, `SKYSCRAPER`, or `CUSTOM`
*/
adSize?: AdSize;
/**
* Banner width, valid when `adSize` is set to `CUSTOM`
*/
width?: number;
/**
* Banner height, valid when `adSize` is set to `CUSTOM`
*/
height?: number;
/**
* Allow banner to overlap webview, or else it will push webview up or down to avoid overlap. Defaults to false.
*/
overlap?: boolean;
/**
* Position of banner ad. Defaults to `TOP_CENTER`. You can use the `AdMobPro.AD_POSITION` property to select other values.
*/
position?: number;
/**
* X in pixels. Valid when `position` is set to `POS_XY`
*/
x?: number;
/**
* Y in pixels. Valid when `position` is set to `POS_XY`
*/
y?: number;
/**
* Set to true to receive test ad for testing purposes
*/
isTesting?: boolean;
/**
* Auto show interstitial ad when loaded. Set to false if hope to control the show timing with prepareInterstitial/showInterstitial
*/
autoShow?: boolean;
/**
* Re-create the banner on web view orientation change (not screen orientation), or else just move the banner. Default:true.
*/
orientationRenew?: boolean;
/**
* Set extra color style for Ad
*/
adExtras?: AdExtras;
/**
* License key for the plugin
*/
license?: any;
/**
* Set offset
*/
offsetTopBar?: boolean;
}
exportinterfaceAdExtras{
color_bg: string;
color_bg_top: string;
color_border: string;
color_link: string;
color_text: string;
color_url: string;
}
/**
* @paid
* @name AdMob Pro
* @description
* Plugin for Google Ads, including AdMob / DFP (DoubleClick for publisher) and mediations to other Ad networks.
*
* IMPORTANT NOTICE: this plugin takes a percentage out of your earnings if you profit more than $1,000. Read more about this on the plugin's repo. For a completely free alternative, see [AdMobPro Free](../admob-free).
* @usage
* ```typescript
* import { AdMobPro } from '@ionic-native/admob-pro/ngx';
* Banner Ad Size, defaults to `SMART_BANNER`. IT can be: `SMART_BANNER`, `BANNER`, `MEDIUM_RECTANGLE`, `FULL_BANNER`, `LEADERBOARD`, `SKYSCRAPER`, or `CUSTOM`
* (Optional) Your interstitial id code from your AdMob account. Defaults to publisherId
*/
adSize?: AdSize;
interstitialAdId?: string;
/**
* Banner width, valid when `adSize` is set to `CUSTOM`
* (Optional) Your rewarded id code from your AdMob account. Defaults to publisherId
*/
width?: number;
rewardedAdId?: string;
/**
* Banner height, valid when `adSize` is set to `CUSTOM`
* (Optional) Your tappx id for iOS apps. If Admob is configured, it is also used to backfill your lost inventory when there are no Admob ads available
*/
height?: number;
tappxIdiOS?: string;
/**
* Allow banner to overlap webview, or else it will push webview up or down to avoid overlap. Defaults to false.
* (Optional) Your tappx id for Android apps. Admob is configured, it is also used to backfill your lost inventory when there are no Admob ads available
*/
tappxIdAndroid?: string;
/**
* (Optional) If any of tappxId is present, it tells the percentage of traffic diverted to tappx. Defaults to 0.5 (50% of the traffic will be requested to Tappx)
*/
tappxShare?: number;
/**
* (Optional) Indicates whether to put banner ads at top when set to true or at bottom when set to false. Defaults to false
* IMPORTANT NOTICE: this plugin takes a percentage out of your earnings if you profit more than $1,000. Read more about this on the plugin's repo. For a completely free alternative, see [AdMob Free](../admob-free).
* @usage
* ```typescript
* import { AdMob } from '@ionic-native/admob';
* import { Platform } from 'ionic-angular';
* import { Admob, AdmobOptions } from '@ionic-native/admob/ngx';
* @returns {Promise<any>} Returns a promise that resolves with the ad settings
* Request an interstitial ad
* If `options.autoShowInterstitial` is set to `true` (default), the ad will automatically be displayed.
* Otherwise you need to subscribe to `onAdLoaded()` event and call `showInterstitialAd()` after it will be raised specifying that an interstitial ad is available.
* If you already called `requestInterstitialAd()` but the interstitial has never been shown, the successive calls to `requestInterstitialAd()` will result in the ad being inmediately available (the one that was obtained on the first call)
* Show an interstitial ad. Call it after `requestInterstitialAd()` and `onAdLoaded()` event raised.
* @return {Promise<any>} Returns a promise that resolves when the interstitial ad is shown
*/
@Cordova()
showInterstitialAd():Promise<any>{
return;
}
/**
* Request an rewarded ad
* If `options.autoShowRewarded` is set to `true` (default), the ad will automatically be displayed.
* Otherwise you need to subscribe to `onAdLoaded()` enent and call `showRewardedAd()` after it will be raised specifying that a rewarded ad is available.
* If you already called `requestRewardedAd()` but the rewarded has never been shown, the successive calls to `requestRewardedAd()` will result in the ad being inmediately available (the one that was obtained on the first call)
* This enum represents AnalyticsFirebase default events.
* Use one of these default events or a custom event
* @readonly
*/
@CordovaProperty()
readonlyDEFAULT_EVENTS:{
ADD_PAYMENT_INFO: string;
ADD_TO_CART: string;
ADD_TO_WISHLIST: string;
APP_OPEN: string;
BEGIN_CHECKOUT: string;
CAMPAIGN_DETAILS: string;
CHECKOUT_PROGRESS: string;
EARN_VIRTUAL_CURRENCY: string;
ECOMMERCE_PURCHASE: string;
GENERATE_LEAD: string;
JOIN_GROUP: string;
LEVEL_END: string;
LEVEL_START: string;
LEVEL_UP: string;
LOGIN: string;
POST_SCORE: string;
PRESENT_OFFER: string;
PURCHASE_REFUND: string;
REMOVE_FROM_CART: string;
SEARCH: string;
SELECT_CONTENT: string;
SET_CHECKOUT_OPTION: string;
SHARE: string;
SIGN_UP: string;
SPEND_VIRTUAL_CURRENCY: string;
TUTORIAL_BEGIN: string;
TUTORIAL_COMPLETE: string;
UNLOCK_ACHIEVEMENT: string;
VIEW_ITEM: string;
VIEW_ITEM_LIST: string;
VIEW_SEARCH_RESULTS: string;
};
/**
* This enum represents AnalyticsFirebase default params.
* Use one of these default params or a custom param
* @readonly
*/
@CordovaProperty()
readonlyDEFAULT_PARAMS:{
ACHIEVEMENT_ID: string;
ACLID: string;
AFFILIATION: string;
CAMPAIGN: string;
CHARACTER: string;
CHECKOUT_OPTION: string;
CHECKOUT_STEP: string;
CONTENT: string;
CONTENT_TYPE: string;
COUPON: string;
CP1: string;
CREATIVE_NAME: string;
CREATIVE_SLOT: string;
CURRENCY: string;
DESTINATION: string;
END_DATE: string;
FLIGHT_NUMBER: string;
GROUP_ID: string;
INDEX: string;
ITEM_BRAND: string;
ITEM_CATEGORY: string;
ITEM_ID: string;
ITEM_LIST: string;
ITEM_LOCATION_ID: string;
ITEM_NAME: string;
ITEM_VARIANT: string;
LEVEL: string;
LEVEL_NAME: string;
LOCATION: string;
MEDIUM: string;
METHOD: string;
NUMBER_OF_NIGHTS: string;
NUMBER_OF_PASSENGERS: string;
NUMBER_OF_ROOMS: string;
ORIGIN: string;
PRICE: string;
QUANTITY: string;
SCORE: string;
SEARCH_TERM: string;
SHIPPING: string;
SOURCE: string;
START_DATE: string;
SUCCESS: string;
TAX: string;
TERM: string;
TRANSACTION_ID: string;
TRAVEL_CLASS: string;
VALUE: string;
VIRTUAL_CURRENCY_NAME: string;
};
/**
* Logs an app event. The event can have up to 25 parameters.
* Events with the same name must have the same parameters.
* Up to 500 event names are supported.
* Using predefined [FirebaseAnalytics.Event](https://firebase.google.com/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event.html) and/or [FirebaseAnalytics.Param](https://firebase.google.com/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param.html) is recommended for optimal reporting.
*
* @param eventName {string} The event name
* @param eventParams {object} (Optional) The event params
* @return {Promise<any>} Returns a promise that resolves when the event is logged
* Sets the user ID property. This feature must be used in accordance with Google's Privacy Policy
* @param userId {string} The user id
* @return {Promise<any>} Returns a promise that resolves when the user id is setted
*/
@Cordova()
setUserId(userId: string):Promise<any>{
return;
}
/**
* Sets a user property to a given value. Up to 25 user property names are supported. Once set, user property values persist throughout the app lifecycle and across sessions
* @param userPropertyName {string} The user property name
* @param userPropertyValue {string} The user property value
* @return {Promise<any>} Returns a promise that resolves when the user property setted
* Set the user agent. Default is `ExoPlayerPlugin`
*/
userAgent?: string;
/**
* Set the player aspect ratio.
*/
aspectRatio?: AndroidExoPlayerAspectRatio;
/**
* Hide controls after this many milliseconds, default is `5000`.
*/
hideTimeout?: number;
/**
* When set to false stream will not automatically start.
*/
autoPlay?: boolean;
/**
* Start playback at this many milliseconds into video, default is `0`.
*/
seekTo?: number;
/**
* Amount of time in milliseconds to use when skipping forward, default is `1000`.
*/
forwardTime?: number;
/**
* Amount of time in milliseconds to use when skipping backward, default is `1000`.
*/
rewindTime?: number;
/**
* Only play audio in the backgroud, default is `false`.
* If you pass in `audioOnly: true`, make sure to manually close the player on some event (like escape button) since the plugin won't be detecting keypresses when playing audio in the background.
*/
audioOnly?: true;
/**
* Optional subtitle url to display over the video.
* We currently support .srt and .vtt subtitle formats. Subtitles are not supported on all stream types, as ExoPlayer has requirement that both video and subtitle "must have the same number of periods, and must not have any dynamic windows", which means for simple mp4s it should work, but on more complex HLS/Dash setups it might not.
*/
subtitleUrl?: string;
/**
* okhttp connect timeout in milliseconds (default is `0`)
*/
connectTimeout?: number;
/**
* okhttp read timeout in milliseconds (default is `0`)
*/
readTimeout?: number;
/**
* okhttp write timeout in milliseconds (default is `0`)
*/
writeTimeout?: number;
/**
* okhttp socket ping interval in milliseconds (default is `0` or disabled)
*/
pingInterval?: number;
/**
* Number of times datasource will retry the stream before giving up (default is `3`)
*/
retryCount?: number;
/**
* If this object is not present controller will not be visible.
*/
controller?: AndroidExoPlayerControllerConfig;
}
exportinterfaceAndroidExoplayerState{
[s: string]:string;
}
exportinterfaceAndroidExoPlayerControllerConfig{
/**
* Image in the controller.
*/
streamImage: string;
/**
*
*/
streamTitle: string;
/**
*
*/
streamDescription: string;
/**
* Hide entire progress bar.
*/
hideProgress?: true;
/**
* If progress bar is visible hide current position from it
*/
hidePosition: false;
/**
* If progress bar is visible Hide stream duration from it
*/
hideDuration: false;
/**
* Override the player control button icons.
*/
controlIcons?:{
/**
* Rewind button icon.
*/
exo_rew: string;
/**
* Play button icon.
*/
exo_play: string;
/**
* Pause button icon.
*/
exo_pause: string;
/**
* Fast forward button icon.
*/
exo_ffwd: string;
};
}
/**
* @name Android ExoPlayer
* @description
* Cordova media player plugin using Google's ExoPlayer framework.
*
* https://github.com/google/ExoPlayer
*
* @usage
* ```typescript
* import { AndroidExoPlayer } from '@ionic-native/android-exoplayer/ngx';
* This plugin will open a native dialog fragment prompting the user to authenticate using their fingerprint. If the device has a secure lockscreen (pattern, PIN, or password), the user may opt to authenticate using that method as a backup.
* @usage
* ```typescript
* import { AndroidFingerprintAuth } from '@ionic-native/android-fingerprint-auth';
* import { AndroidFingerprintAuth } from '@ionic-native/android-fingerprint-auth/ngx';
/** View has requested the system UI (status bar) to be visible (the default). SYSTEM_UI_FLAG_VISIBLE */
Visible=0,
/** View has requested the system UI to enter an unobtrusive "low profile" mode. SYSTEM_UI_FLAG_LOW_PROFILE */
LowProfile=1,
/** View has requested that the system navigation be temporarily hidden. SYSTEM_UI_FLAG_HIDE_NAVIGATION */
HideNavigation=2,
/** View has requested to go into the normal fullscreen mode so that its content can take over the screen while still allowing the user to interact with the application. SYSTEM_UI_FLAG_FULLSCREEN */
Fullscreen=4,
/** When using other layout flags, we would like a stable view of the content insets given to fitSystemWindows(Rect). SYSTEM_UI_FLAG_LAYOUT_STABLE */
LayoutStable=256,
/** View would like its window to be laid out as if it has requested SYSTEM_UI_FLAG_HIDE_NAVIGATION, even if it currently hasn't. SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION */
LayoutHideNavigation=512,
/** View would like its window to be laid out as if it has requested SYSTEM_UI_FLAG_FULLSCREEN, even if it currently hasn't. SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN */
LayoutFullscreen=1024,
/** View would like to remain interactive when hiding the navigation bar with SYSTEM_UI_FLAG_HIDE_NAVIGATION. SYSTEM_UI_FLAG_IMMERSIVE */
Immersive=2048,
/** View would like to remain interactive when hiding the status bar with SYSTEM_UI_FLAG_FULLSCREEN and/or hiding the navigation bar with SYSTEM_UI_FLAG_HIDE_NAVIGATION. SYSTEM_UI_FLAG_IMMERSIVE_STICKY */
ImmersiveSticky=4096,
/** Requests the status bar to draw in a mode that is compatible with light status bar backgrounds. SYSTEM_UI_FLAG_LIGHT_STATUS_BAR */
* In Android 4.4+, however, you can now enter true full screen, fully interactive immersive mode. In this mode, your app will remain in true full screen until you choose otherwise; users can swipe down from the top of the screen to temporarily display the system UI.
* @usage
* ```typescript
* import { AndroidFullScreen } from '@ionic-native/android-full-screen';
* import { AndroidFullScreen } from '@ionic-native/android-full-screen/ngx';
* Android 26 and above: due to Android 26's changes to permissions handling (permissions are requested at time of use rather than at runtime,) if your app does not include any functions (eg. other Ionic Native plugins) that utilize a particular permission, then `requestPermission()` and `requestPermissions()` will resolve immediately with no prompt shown to the user. Thus, you must include a function utilizing the feature you would like to use before requesting permission for it.
*/
@Plugin({
pluginName:'AndroidPermissions',
@@ -35,12 +37,12 @@ import { Injectable } from '@angular/core';
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.