mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2026-02-16 00:00:02 +08:00
Compare commits
43 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
390f474ad5 | ||
|
|
d8655f055e | ||
|
|
65cf94b67b | ||
|
|
b91757e7e9 | ||
|
|
612cb963e1 | ||
|
|
8b31d72139 | ||
|
|
3b9e7253db | ||
|
|
8b86a12e07 | ||
|
|
543ae7abf8 | ||
|
|
6ccf3a66bb | ||
|
|
2b94ffdc44 | ||
|
|
208748a660 | ||
|
|
47b593b43d | ||
|
|
947bf227d0 | ||
|
|
4f7718b03e | ||
|
|
31d0f71cc9 | ||
|
|
723ac779df | ||
|
|
ebd272e30a | ||
|
|
029a196f38 | ||
|
|
b872bd01ce | ||
|
|
d6711080e3 | ||
|
|
3e124f1807 | ||
|
|
e474b2987f | ||
|
|
75ee0418bf | ||
|
|
7c8c71bdc8 | ||
|
|
3d82d0d592 | ||
|
|
3f2a983c6e | ||
|
|
7953ca0e72 | ||
|
|
117b0578b0 | ||
|
|
cadafaa3b6 | ||
|
|
4778637bd5 | ||
|
|
a1ff059e90 | ||
|
|
15237ea983 | ||
|
|
b0710cad1e | ||
|
|
ee269669aa | ||
|
|
97307a2b8c | ||
|
|
0ae3cb0d00 | ||
|
|
0dee3500f7 | ||
|
|
b53af8e3c9 | ||
|
|
006f7dc2ad | ||
|
|
19bc8419e0 | ||
|
|
d3d8f8264c | ||
|
|
8262219d05 |
2
.github/CONTRIBUTING.md
vendored
2
.github/CONTRIBUTING.md
vendored
@@ -4,7 +4,7 @@
|
||||
#### 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/v2/api/platform/Platform/#ready).
|
||||
* 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).
|
||||
* **Check that you are using the latest version of** `ionic-native`, you can install the latest version by running `npm i --save ionic-native@latest`
|
||||
|
||||
###### Still having problems? submit an issue with the following details:
|
||||
|
||||
35
CHANGELOG.md
35
CHANGELOG.md
@@ -1,3 +1,38 @@
|
||||
<a name="3.4.3"></a>
|
||||
## [3.4.3](https://github.com/driftyco/ionic-native/compare/v3.4.2...v3.4.3) (2017-03-29)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **admob:** add missing license property ([2b94ffd](https://github.com/driftyco/ionic-native/commit/2b94ffd)), closes [#1291](https://github.com/driftyco/ionic-native/issues/1291)
|
||||
* **app-preferences:** fix bug with fetch method ([65cf94b](https://github.com/driftyco/ionic-native/commit/65cf94b)), closes [#1299](https://github.com/driftyco/ionic-native/issues/1299)
|
||||
* **push:** add missing plugin decorator ([208748a](https://github.com/driftyco/ionic-native/commit/208748a)), closes [#1297](https://github.com/driftyco/ionic-native/issues/1297)
|
||||
* **secure-storage:** return unfunctional SecureStorageObject if plugin doesn't exist ([b91757e](https://github.com/driftyco/ionic-native/commit/b91757e))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **secure-storage:** add keys() and clear() methods (#1281) ([8b31d72](https://github.com/driftyco/ionic-native/commit/8b31d72))
|
||||
|
||||
|
||||
|
||||
<a name="3.4.2"></a>
|
||||
## [3.4.2](https://github.com/driftyco/ionic-native/compare/v3.4.1...v3.4.2) (2017-03-28)
|
||||
|
||||
|
||||
|
||||
<a name="3.4.1"></a>
|
||||
## [3.4.1](https://github.com/driftyco/ionic-native/compare/v3.4.0...v3.4.1) (2017-03-28)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **admob:** fix event listeners ([b53af8e](https://github.com/driftyco/ionic-native/commit/b53af8e)), closes [#1165](https://github.com/driftyco/ionic-native/issues/1165)
|
||||
* **network:** fix onchange method ([006f7dc](https://github.com/driftyco/ionic-native/commit/006f7dc)), closes [#1173](https://github.com/driftyco/ionic-native/issues/1173)
|
||||
* **network:** remove ontypechange method ([19bc841](https://github.com/driftyco/ionic-native/commit/19bc841))
|
||||
|
||||
|
||||
|
||||
<a name="3.4.0"></a>
|
||||
# [3.4.0](https://github.com/driftyco/ionic-native/compare/v3.3.2...v3.4.0) (2017-03-28)
|
||||
|
||||
|
||||
66
DEVELOPER.md
66
DEVELOPER.md
@@ -17,6 +17,7 @@ gulp plugin:create -n PluginName
|
||||
gulp plugin:create -m -n PluginName
|
||||
```
|
||||
|
||||
Running the command above will create a new directory `src/@ionic-native/plugins/plugin-name/` with a single file in there: `index.ts`. This file is where all the plugin definitions should be.
|
||||
|
||||
Let's take a look at the existing plugin wrapper for Geolocation to see what goes into an Ionic Native plugin (comments have been removed for clarity):
|
||||
|
||||
@@ -110,7 +111,7 @@ The `@Cordova` decorator has a few more options now.
|
||||
|
||||
### Testing your changes
|
||||
|
||||
You need to run `npm run build` in the `ionic-native` project, this will create a `dist` directory. Then, you must go to your ionic application folder and replace your current `node_modules/ionic-native/dist/` with the newly generated one.
|
||||
You need to run `npm run build` in the `ionic-native` project, this will create a `dist` directory. The `dist` directory will contain a sub directory `@ionic-native` with all the packages compiled in there. Copy the package(s) you created/modified to your app's node_modules under the `@ionic-native` directory. (e.g. `cp -r dist/@ionic-native/plugin-name ../my-app/node_modules/@ionic-native/`).
|
||||
|
||||
### Cleaning the code
|
||||
|
||||
@@ -147,4 +148,65 @@ The subject contains succinct description of the change:
|
||||
* use the imperative, present tense: "change" not "changed" nor "changes"
|
||||
* do not capitalize first letter
|
||||
* do not place a period (.) at the end
|
||||
* entire length of the commit message must not go over 50 characters
|
||||
* entire length of the commit message must not go over 50 characters
|
||||
|
||||
|
||||
### Ionic Native Decorators
|
||||
|
||||
#### Plugin
|
||||
A decorator to wrap the main plugin class, and any other classes that will use `@Cordova` or `@CordovaProperty` decorators. This decorator accepts the following configuration:
|
||||
- *pluginName*: Plugin name, this should match the class name
|
||||
- *plugin*: The plugin's NPM package, or Github URL if NPM is not available.
|
||||
- *pluginRef*: The plugin object reference. Example: 'cordova.file'.
|
||||
- *repo*: The plugin's Github Repository URL
|
||||
- *install*: (optional) Install command. This is used in case a plugin has a custom install command (takes variables).
|
||||
- *platforms*: An array of strings indicating the supported platforms.
|
||||
|
||||
#### Cordova
|
||||
Checks if the plugin and the method are available before executing. By default, the decorator will wrap the callbacks of the function and return a Promise. This decorator takes the following configuration options:
|
||||
- **observable**: set to true to return an Observable
|
||||
- **clearFunction**: an optional name of a method to clear the observable we returned
|
||||
- **clearWithArgs**: This can be used if clearFunction is set. Set this to true to call the clearFunction with the same arguments used in the initial function.
|
||||
- **sync**: set to true if the method should return the value as-is without wrapping with Observable/Promise
|
||||
- **callbackOrder**: set to `reverse` if the success and error callbacks are the first two arguements of the method
|
||||
- **callbackStyle**: set to `node` if the plugin has one callback with a node style (e.g: `function(err, result){}`), or set to `object` if the callbacks are part of an object
|
||||
- **successName**: Success function property name. This must be set if callbackStyle is set to object.
|
||||
- **errorName**: Error function property name. This must be set if callbackStyle is set to object.
|
||||
- **successIndex**: Set a custom index for the success callback function. This doesn't work if callbackOrder or callbackStyle are set.
|
||||
- **errorIndex**: Set a custom index for the error callback function. This doesn't work if callbackOrder or callbackStyle are set.
|
||||
- **eventObservable**: set to true to return an observable that wraps an event listener
|
||||
- **event**: Event name, this must be set if eventObservable is set to true
|
||||
- **element**: Element to attach the event listener to, this is optional, defaults to `window`
|
||||
- **otherPromise**: Set to true if the wrapped method returns a promise
|
||||
- **platforms**: array of strings indicating supported platforms. Specify this if the supported platforms doesn't match the plugin's supported platforms.
|
||||
|
||||
Example:
|
||||
```ts
|
||||
@Cordova()
|
||||
someMethod(): Promise<any> { return; }
|
||||
|
||||
@Cordova({ sync: true })
|
||||
syncMethod(): number { }
|
||||
```
|
||||
|
||||
#### CordovaProperty
|
||||
Checks if the plugin and property exist before getting/setting the property's value
|
||||
|
||||
Example:
|
||||
```ts
|
||||
@CordovaProperty
|
||||
someProperty: string;
|
||||
```
|
||||
|
||||
#### CordovaCheck
|
||||
Checks if the plugin exists before performing a custom written method. By default, the method will return a promise that will reject with an error if the plugin is not available. This wrapper accepts two optional configurations:
|
||||
- **observable**: set to true to return an empty Observable if the plugin isn't available
|
||||
- **sync**: set to true to return nothing if the plugin isn't available
|
||||
|
||||
Example:
|
||||
```ts
|
||||
@CordovaCheck()
|
||||
someMethod(): Promise<any> {
|
||||
// anything here will only run if the plugin is available
|
||||
}
|
||||
```
|
||||
@@ -14,11 +14,11 @@ Run following command to install Ionic Native in your project.
|
||||
npm install @ionic-native/core --save
|
||||
```
|
||||
|
||||
You also need to install the Ionic Native package for each plugin you want to add. Please see the [Ionic Native documentation](http://ionicframework.com/docs/v2/native/) for complete instructions on how to add and use the plugins.
|
||||
You also need to install the Ionic Native package for each plugin you want to add. Please see the [Ionic Native documentation](http://ionicframework.com/docs/native/) for complete instructions on how to add and use the plugins.
|
||||
|
||||
## Documentation
|
||||
|
||||
For the full Ionic Native documentation, please visit [http://ionicframework.com/docs/v2/native/](http://ionicframework.com/docs/v2/native/).
|
||||
For the full Ionic Native documentation, please visit [http://ionicframework.com/docs/native/](http://ionicframework.com/docs/native/).
|
||||
|
||||
### Basic Usage
|
||||
|
||||
|
||||
64
circle.yml
64
circle.yml
@@ -1,26 +1,38 @@
|
||||
machine:
|
||||
node:
|
||||
version: 5.5.0
|
||||
ruby:
|
||||
version: 2.1.2
|
||||
|
||||
general:
|
||||
branches:
|
||||
only:
|
||||
- master # ignore PRs and branches
|
||||
|
||||
dependencies:
|
||||
pre:
|
||||
- ./scripts/docs/prepare.sh
|
||||
cache_directories:
|
||||
- "~/ionic-site" # cache ionic-site
|
||||
|
||||
test:
|
||||
override:
|
||||
- echo "No tests to run"
|
||||
|
||||
deployment:
|
||||
staging:
|
||||
branch: master
|
||||
commands:
|
||||
- ./scripts/docs/update_docs.sh
|
||||
version: 2
|
||||
jobs:
|
||||
build:
|
||||
working_directory: ~/ionic-native/
|
||||
docker:
|
||||
- image: node:7
|
||||
steps:
|
||||
- checkout
|
||||
- restore_cache:
|
||||
key: ionic-site
|
||||
- run:
|
||||
name: Prepare ionic-site repo
|
||||
command: ./scripts/docs/prepare.sh
|
||||
- save_cache:
|
||||
key: ionic-site
|
||||
paths:
|
||||
- ~/ionic-site/
|
||||
- restore_cache:
|
||||
key: node_modules_{{ checksum "package.json" }}
|
||||
- run:
|
||||
name: Install node modules
|
||||
command: npm i
|
||||
- save_cache:
|
||||
key: node_modules_{{ checksum "package.json" }}
|
||||
paths:
|
||||
- ~/ionic-native/node_modules/
|
||||
- run:
|
||||
name: Run tslint
|
||||
command: npm run lint
|
||||
- add_ssh_keys
|
||||
- deploy:
|
||||
name: Update docs
|
||||
command: |
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
./scripts/docs/update_docs.sh
|
||||
else
|
||||
echo "We are on ${CIRCLE_BRANCH} branch, not going to update docs."
|
||||
fi
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ionic-native",
|
||||
"version": "3.4.0",
|
||||
"version": "3.4.3",
|
||||
"description": "Native plugin wrappers for Cordova and Ionic with TypeScript, ES6+, Promise and Observable support",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"sitePath": "../ionic-site",
|
||||
"v2DocsDir": "docs/v2/native",
|
||||
"docsDest": "../ionic-site/content/docs/v2/native",
|
||||
"v2DocsDir": "docs/native",
|
||||
"docsDest": "../ionic-site/content/docs/native",
|
||||
"pluginDir": "dist/@ionic-native"
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ function run {
|
||||
git pull origin master
|
||||
fi
|
||||
|
||||
git rm -rf content/docs/v2/native/*/ || true
|
||||
git rm -rf content/docs/native/*/ || true
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ module.exports = function jekyll(renderDocsProcessor) {
|
||||
|
||||
docs.forEach(doc => {
|
||||
doc.outputPath = doc.outputPath.toLowerCase().replace(/\s/g, '-');
|
||||
doc.URL = doc.outputPath.replace('docs/v2//', 'docs/v2/')
|
||||
doc.URL = doc.outputPath.replace('docs//', 'docs/')
|
||||
.replace('/index.md', '')
|
||||
.replace('content/', '');
|
||||
});
|
||||
@@ -29,7 +29,7 @@ module.exports = function jekyll(renderDocsProcessor) {
|
||||
docType: 'nativeMenu',
|
||||
id: 'native_menu',
|
||||
template: 'native_menu.template.html',
|
||||
outputPath: 'content/_includes/v2_fluid/native_menu.html'
|
||||
outputPath: 'content/_includes/fluid/native_menu.html'
|
||||
});
|
||||
|
||||
return docs;
|
||||
|
||||
2
scripts/docs/templates/common.template.html
vendored
2
scripts/docs/templates/common.template.html
vendored
@@ -1,5 +1,5 @@
|
||||
---
|
||||
layout: "v2_fluid/docs_base"
|
||||
layout: "fluid/docs_base"
|
||||
version: "<$ version.current.name $>"
|
||||
versionHref: "<$ version.current.href.replace('content/','') $>"
|
||||
path: "<$ doc.path $>"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<li class="capitalize {% if page.id == 'overview' %}active{% endif %}">
|
||||
<a href="/docs/v2/native/">Overview</a>
|
||||
<a href="/docs/native/">Overview</a>
|
||||
</li>
|
||||
<li class="capitalize {% if page.id == 'mocking' %}active{% endif %}">
|
||||
<a href="/docs/v2/native/browser.html">Browser Usage</a>
|
||||
<a href="/docs/native/browser.html">Browser Usage</a>
|
||||
</li>
|
||||
<@- for doc in docs @><@ if doc.URL and doc.private != true and doc.beta != true @>
|
||||
<li class="capitalize {% if page.id == '<$ doc.name|lower|dashify $>' %}active{% endif %}">
|
||||
|
||||
2
scripts/docs/templates/readme.template.md
vendored
2
scripts/docs/templates/readme.template.md
vendored
@@ -20,7 +20,7 @@ $ <@ if prop.install @><$ prop.install $><@ else @>ionic plugin add <$ prop.plug
|
||||
$ npm install --save @ionic-native/<$ doc.npmId $>
|
||||
```
|
||||
|
||||
## [Usage Documentation](https://ionicframework.com/docs/v2/native/<$ doc.fileInfo.relativePath|replace('/home/ubuntu/ionic-native/', '')|replace('//','/')|replace('index.ts','')|replace('src/@ionic-native/plugins/','') $>)
|
||||
## [Usage Documentation](https://ionicframework.com/docs/native/<$ doc.fileInfo.relativePath|replace('/home/ubuntu/ionic-native/', '')|replace('//','/')|replace('index.ts','')|replace('src/@ionic-native/plugins/','') $>)
|
||||
|
||||
Plugin Repo: [<$ prop.repo $>](<$ prop.repo $>)
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ export interface AdMobFreeRewardVideoConfig {
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* import { AdMobFree, AdMobFreeBannerConfig } from 'ionic-native';
|
||||
* import { AdMobFree, AdMobFreeBannerConfig } from '@ionic-native/admob-free';
|
||||
*
|
||||
*
|
||||
* constructor(private admobFree: AdMobFree) { }
|
||||
|
||||
@@ -66,6 +66,11 @@ export interface AdMobOptions {
|
||||
*/
|
||||
adExtras?: AdExtras;
|
||||
|
||||
/**
|
||||
* License key for the plugin
|
||||
*/
|
||||
license?: any;
|
||||
|
||||
}
|
||||
|
||||
export interface AdExtras {
|
||||
@@ -242,7 +247,8 @@ export class AdMob {
|
||||
*/
|
||||
@Cordova({
|
||||
eventObservable: true,
|
||||
event: 'onAdFailLoad'
|
||||
event: 'onAdFailLoad',
|
||||
element: document
|
||||
})
|
||||
onAdFailLoad(): Observable<any> { return; }
|
||||
|
||||
@@ -252,7 +258,8 @@ export class AdMob {
|
||||
*/
|
||||
@Cordova({
|
||||
eventObservable: true,
|
||||
event: 'onAdLoaded'
|
||||
event: 'onAdLoaded',
|
||||
element: document
|
||||
})
|
||||
onAdLoaded(): Observable<any> { return; }
|
||||
|
||||
@@ -262,7 +269,8 @@ export class AdMob {
|
||||
*/
|
||||
@Cordova({
|
||||
eventObservable: true,
|
||||
event: 'onAdPresent'
|
||||
event: 'onAdPresent',
|
||||
element: document
|
||||
})
|
||||
onAdPresent(): Observable<any> { return; }
|
||||
|
||||
@@ -272,7 +280,8 @@ export class AdMob {
|
||||
*/
|
||||
@Cordova({
|
||||
eventObservable: true,
|
||||
event: 'onAdLeaveApp'
|
||||
event: 'onAdLeaveApp',
|
||||
element: document
|
||||
})
|
||||
onAdLeaveApp(): Observable<any> { return; }
|
||||
|
||||
@@ -282,7 +291,8 @@ export class AdMob {
|
||||
*/
|
||||
@Cordova({
|
||||
eventObservable: true,
|
||||
event: 'onAdDismiss'
|
||||
event: 'onAdDismiss',
|
||||
element: document
|
||||
})
|
||||
onAdDismiss(): Observable<any> { return; }
|
||||
|
||||
|
||||
@@ -37,7 +37,6 @@ export class AppPreferences {
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova({
|
||||
sync: true,
|
||||
callbackOrder: 'reverse'
|
||||
})
|
||||
fetch(dict: string, key?: string): Promise<any> { return; }
|
||||
|
||||
@@ -17,9 +17,16 @@ declare var cordova: any;
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* this.jinsMeme.setAppClientID(appClientId: string, clientSecret: string)
|
||||
* .then(this.jinsMeme.startScan())
|
||||
* .catch(console.log('jinsMeme.setAppClientID authentication error!'));
|
||||
* this.jinsMeme.setAppClientID(appClientId: string, clientSecret: string).then(
|
||||
* // Bluetooth should be enabled and the JINS MEME powered on (blinking blue light)
|
||||
* this.jinsMeme.startScan().subscribe((meme_addr) => {
|
||||
* this.jinsMeme.connect(meme_addr).subscribe((connectResult) => {
|
||||
* this.memeService.startDataReport().subscribe((dataReport) => {
|
||||
* console.log(dataReport);
|
||||
* });
|
||||
* });
|
||||
* });
|
||||
* .catch(console.log('jinsMeme.setAppClientID authentication error'));
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
@@ -34,7 +41,8 @@ declare var cordova: any;
|
||||
export class JinsMeme {
|
||||
/**
|
||||
* Authentication and authorization of App and SDK.
|
||||
* Must call this method at first.
|
||||
* Must call this method first.
|
||||
* Sign up for an app ID (and get an app/client secret) at developers.jins.com
|
||||
*
|
||||
*@param {string} setAppClientID
|
||||
*@param {string} clientSecret
|
||||
|
||||
@@ -29,21 +29,35 @@ export interface NativeTransitionOptions {
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* let options: NativeTransitionOptions = {
|
||||
* direction: 'up',
|
||||
* duration: 500,
|
||||
* slowdownfactor: 3,
|
||||
* slidePixels: 20,
|
||||
* iosdelay: 100,
|
||||
* androiddelay: 150,
|
||||
* winphonedelay: 250,
|
||||
* fixedPixelsTop: 0,
|
||||
* fixedPixelsBottom: 60
|
||||
* };
|
||||
*
|
||||
* this.nativePageTransitions.slide(options)
|
||||
* .then(onSuccess)
|
||||
* .catch(onError);
|
||||
* // example of adding a transition when a page/modal closes
|
||||
* ionViewWillLeave() {
|
||||
*
|
||||
* let options: NativeTransitionOptions = {
|
||||
* direction: 'up',
|
||||
* duration: 500,
|
||||
* slowdownfactor: 3,
|
||||
* slidePixels: 20,
|
||||
* iosdelay: 100,
|
||||
* androiddelay: 150,
|
||||
* fixedPixelsTop: 0,
|
||||
* fixedPixelsBottom: 60
|
||||
* };
|
||||
*
|
||||
* this.nativePageTransitions.slide(options)
|
||||
* .then(onSuccess)
|
||||
* .catch(onError);
|
||||
*
|
||||
* }
|
||||
*
|
||||
*
|
||||
* // example of adding a transition when pushing a new page
|
||||
* openPage(page: any) {
|
||||
*
|
||||
* this.nativePageTransitions.slide(options);
|
||||
* this.navCtrl.push(page);
|
||||
*
|
||||
* }
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
|
||||
@@ -31,7 +31,8 @@ import { Cordova, Plugin } from '@ionic-native/core';
|
||||
pluginName: 'NativeStorage',
|
||||
plugin: 'cordova-plugin-nativestorage',
|
||||
pluginRef: 'NativeStorage',
|
||||
repo: 'https://github.com/TheCocoaProject/cordova-plugin-nativestorage'
|
||||
repo: 'https://github.com/TheCocoaProject/cordova-plugin-nativestorage',
|
||||
platforms: ['Android', 'iOS', 'Windows']
|
||||
})
|
||||
@Injectable()
|
||||
export class NativeStorage {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import {Cordova, CordovaProperty, Plugin, CordovaFunctionOverride} from '@ionic-native/core';
|
||||
import { Cordova, CordovaProperty, Plugin, CordovaCheck } from '@ionic-native/core';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import 'rxjs/add/observable/merge';
|
||||
|
||||
|
||||
declare var navigator: any;
|
||||
@@ -75,15 +76,10 @@ export class Network {
|
||||
* Returns an observable to watch connection changes
|
||||
* @return {Observable<any>}
|
||||
*/
|
||||
@CordovaFunctionOverride()
|
||||
onchange(): Observable<any> { return; }
|
||||
|
||||
/**
|
||||
* Returns an observable to watch connection type changes
|
||||
* @return {Observable<any>}
|
||||
*/
|
||||
@CordovaFunctionOverride()
|
||||
ontypechange(): Observable<any> { return; }
|
||||
@CordovaCheck()
|
||||
onchange(): Observable<any> {
|
||||
return Observable.merge(this.onConnect(), this.onDisconnect());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get notified when the device goes offline
|
||||
|
||||
@@ -67,7 +67,8 @@ import { Plugin, Cordova } from '@ionic-native/core';
|
||||
pluginName: 'PayPal',
|
||||
plugin: 'com.paypal.cordova.mobilesdk',
|
||||
pluginRef: 'PayPalMobile',
|
||||
repo: 'https://github.com/paypal/PayPal-Cordova-Plugin'
|
||||
repo: 'https://github.com/paypal/PayPal-Cordova-Plugin',
|
||||
platforms: ['Android', 'iOS']
|
||||
})
|
||||
@Injectable()
|
||||
export class PayPal {
|
||||
|
||||
@@ -44,7 +44,8 @@ import { Injectable } from '@angular/core';
|
||||
plugin: 'cordova-plugin-photo-library',
|
||||
pluginRef: 'cordova.plugins.photoLibrary',
|
||||
repo: 'https://github.com/terikon/cordova-plugin-photo-library',
|
||||
install: 'ionic plugin add cordova-plugin-photo-library --variable PHOTO_LIBRARY_USAGE_DESCRIPTION="To choose photos"'
|
||||
install: 'ionic plugin add cordova-plugin-photo-library --variable PHOTO_LIBRARY_USAGE_DESCRIPTION="To choose photos"',
|
||||
platforms: ['Android', 'Browser', 'iOS']
|
||||
})
|
||||
@Injectable()
|
||||
export class PhotoLibrary {
|
||||
|
||||
@@ -20,7 +20,8 @@ import { Plugin, Cordova } from '@ionic-native/core';
|
||||
pluginName: 'PhotoViewer',
|
||||
plugin: 'com-sarriaroman-photoviewer',
|
||||
pluginRef: 'PhotoViewer',
|
||||
repo: 'https://github.com/sarriaroman/photoviewer'
|
||||
repo: 'https://github.com/sarriaroman/photoviewer',
|
||||
platforms: ['Android', 'iOS']
|
||||
})
|
||||
@Injectable()
|
||||
export class PhotoViewer {
|
||||
|
||||
@@ -269,6 +269,11 @@ export class Push {
|
||||
/**
|
||||
* @hidden
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: 'Push',
|
||||
plugin: 'phonegap-plugin-push',
|
||||
pluginRef: 'PushNotification'
|
||||
})
|
||||
export class PushObject {
|
||||
|
||||
private _objectInstance: any;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { CordovaInstance, Plugin, CordovaCheck } from '@ionic-native/core';
|
||||
import { CordovaInstance, Plugin, checkAvailability } from '@ionic-native/core';
|
||||
|
||||
declare var cordova: any;
|
||||
|
||||
@@ -8,7 +8,7 @@ declare var cordova: any;
|
||||
*/
|
||||
export class SecureStorageObject {
|
||||
|
||||
constructor(private _objectInstance: any) {}
|
||||
constructor(private _objectInstance?: any) {}
|
||||
|
||||
/**
|
||||
* Gets a stored item
|
||||
@@ -41,6 +41,24 @@ export class SecureStorageObject {
|
||||
})
|
||||
remove(reference: string): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Get all references from the storage.
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@CordovaInstance({
|
||||
callbackOrder: 'reverse'
|
||||
})
|
||||
keys(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Clear all references from the storage.
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@CordovaInstance({
|
||||
callbackOrder: 'reverse'
|
||||
})
|
||||
clear(): Promise<any> { return; }
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -102,10 +120,13 @@ export class SecureStorage {
|
||||
* @param store {string}
|
||||
* @returns {Promise<SecureStorageObject>}
|
||||
*/
|
||||
@CordovaCheck()
|
||||
create(store: string): Promise<SecureStorageObject> {
|
||||
return new Promise((res, rej) => {
|
||||
const instance = new cordova.plugins.SecureStorage(() => res(new SecureStorageObject(instance)), rej, store);
|
||||
if (checkAvailability('cordova.plugins.SecureStorage', null, 'SecureStorage') === true) {
|
||||
const instance = new cordova.plugins.SecureStorage(() => res(new SecureStorageObject(instance)), rej, store);
|
||||
} else {
|
||||
res(new SecureStorageObject());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -19,10 +19,11 @@ declare var window;
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* // let status bar overlay webview
|
||||
* this.statusBar.overlaysWebView(true);
|
||||
*
|
||||
* this.statusBar.overlaysWebView(true); // let status bar overlay webview
|
||||
*
|
||||
* this.statusBar.backgroundColorByHexString('#ffffff'); // set status bar to white
|
||||
* // set status bar to white
|
||||
* this.statusBar.backgroundColorByHexString('#ffffff');
|
||||
* ```
|
||||
*
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user