mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2025-03-03 16:03:02 +08:00
Merge branch 'master' into improved-plugin-docs
This commit is contained in:
commit
f223481307
28
.github/ISSUE_TEMPLATE.md
vendored
Normal file
28
.github/ISSUE_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
**I'm submitting a ...** (check one with "x")
|
||||
[ ] bug report
|
||||
[ ] feature request
|
||||
[ ] 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. -->
|
||||
|
||||
**Expected behavior:**
|
||||
<!-- Describe what the behavior would be without the bug. -->
|
||||
|
||||
**Steps to reproduce:**
|
||||
<!-- If you are able to illustrate the bug or feature request with an example, please provide steps to reproduce. -->
|
||||
|
||||
**Related code:**
|
||||
|
||||
```
|
||||
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:**
|
||||
|
||||
```json
|
||||
insert the content here
|
||||
```
|
83
CHANGELOG.md
83
CHANGELOG.md
@ -1,3 +1,86 @@
|
||||
<a name="3.8.1"></a>
|
||||
## [3.8.1](https://github.com/driftyco/ionic-native/compare/v3.8.0...v3.8.1) (2017-05-16)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **document-viewer:** fix params and docs for canViewDocument (#1568) ([b35417a](https://github.com/driftyco/ionic-native/commit/b35417a)), closes [#1568](https://github.com/driftyco/ionic-native/issues/1568)
|
||||
* **file:** add toInternalURL (#1561) ([7c79712](https://github.com/driftyco/ionic-native/commit/7c79712)), closes [#1560](https://github.com/driftyco/ionic-native/issues/1560)
|
||||
* **file:** fix repo link (#1566) ([adf9c5a](https://github.com/driftyco/ionic-native/commit/adf9c5a)), closes [#1566](https://github.com/driftyco/ionic-native/issues/1566)
|
||||
* **file:** various fixes ([d0dec7a](https://github.com/driftyco/ionic-native/commit/d0dec7a)), closes [#1564](https://github.com/driftyco/ionic-native/issues/1564)
|
||||
* **sqlite:** fix implementation and improve typings ([fec19b7](https://github.com/driftyco/ionic-native/commit/fec19b7))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **mix-panel:** add timeEvent (#1536) ([965a90c](https://github.com/driftyco/ionic-native/commit/965a90c))
|
||||
|
||||
|
||||
|
||||
<a name="3.8.0"></a>
|
||||
# [3.8.0](https://github.com/driftyco/ionic-native/compare/v3.7.0...v3.8.0) (2017-05-14)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **app-minimize:** fix pluginRef ([10d61c2](https://github.com/driftyco/ionic-native/commit/10d61c2))
|
||||
* **diagnostic:** fix Cordova decorator in camera API (#1527) ([45108c4](https://github.com/driftyco/ionic-native/commit/45108c4)), closes [#1527](https://github.com/driftyco/ionic-native/issues/1527)
|
||||
* **fcm:** fix method name (#1531) ([ad514bb](https://github.com/driftyco/ionic-native/commit/ad514bb)), closes [#1531](https://github.com/driftyco/ionic-native/issues/1531)
|
||||
* **file:** fix file reader (#1537) ([efae1be](https://github.com/driftyco/ionic-native/commit/efae1be)), closes [#1537](https://github.com/driftyco/ionic-native/issues/1537) [#1530](https://github.com/driftyco/ionic-native/issues/1530)
|
||||
* **file:** various fixes (#1553) ([f98f90a](https://github.com/driftyco/ionic-native/commit/f98f90a)), closes [#1553](https://github.com/driftyco/ionic-native/issues/1553)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **video-capture-plus:** add Video Capture Plus plugin (#1538) ([385da01](https://github.com/driftyco/ionic-native/commit/385da01)), closes [#709](https://github.com/driftyco/ionic-native/issues/709)
|
||||
|
||||
|
||||
|
||||
<a name="3.7.0"></a>
|
||||
# [3.7.0](https://github.com/driftyco/ionic-native/compare/v3.6.1...v3.7.0) (2017-05-09)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **app-preferences:** value can be any type (#1498) ([c7111a3](https://github.com/driftyco/ionic-native/commit/c7111a3)), closes [#1334](https://github.com/driftyco/ionic-native/issues/1334)
|
||||
* **background-mode:** add missing method (#1486) ([e6a647b](https://github.com/driftyco/ionic-native/commit/e6a647b)), closes [#1393](https://github.com/driftyco/ionic-native/issues/1393)
|
||||
* **build:** fix build errors (#1472) ([8a445e9](https://github.com/driftyco/ionic-native/commit/8a445e9)), closes [#1472](https://github.com/driftyco/ionic-native/issues/1472)
|
||||
* **document-viewer:** fix params ([1379f63](https://github.com/driftyco/ionic-native/commit/1379f63))
|
||||
* **flurry-analytics:** fix plugin wrapper ([14959c1](https://github.com/driftyco/ionic-native/commit/14959c1))
|
||||
* **flurry-analytics:** fix pluginRef (#1485) ([ce72be7](https://github.com/driftyco/ionic-native/commit/ce72be7)), closes [#1485](https://github.com/driftyco/ionic-native/issues/1485) [#1399](https://github.com/driftyco/ionic-native/issues/1399)
|
||||
* **globalization:** getDatePattern return types (#1451) ([6e2fdf9](https://github.com/driftyco/ionic-native/commit/6e2fdf9))
|
||||
* **google-maps:** add args to panBy (#1507) ([ec85792](https://github.com/driftyco/ionic-native/commit/ec85792))
|
||||
* **google-maps:** fix fromPointToLatLng params (#1514) ([9583802](https://github.com/driftyco/ionic-native/commit/9583802)), closes [#1514](https://github.com/driftyco/ionic-native/issues/1514)
|
||||
* **native-storage:** add missing keys method (#1495) ([8311aaf](https://github.com/driftyco/ionic-native/commit/8311aaf)), closes [#1415](https://github.com/driftyco/ionic-native/issues/1415)
|
||||
* **web-intent:** updated source (#1519) ([252c3e4](https://github.com/driftyco/ionic-native/commit/252c3e4)), closes [#1517](https://github.com/driftyco/ionic-native/issues/1517)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **android-fingerprint-auth:** add ERRORS constant (#1470) ([ed6044d](https://github.com/driftyco/ionic-native/commit/ed6044d))
|
||||
* **android-premissions:** add Android Permissions plugin (#1508) ([5ee79b4](https://github.com/driftyco/ionic-native/commit/5ee79b4)), closes [#929](https://github.com/driftyco/ionic-native/issues/929)
|
||||
* **app-minimize:** add AppMinimize plugin (#1501) ([d25b2f1](https://github.com/driftyco/ionic-native/commit/d25b2f1))
|
||||
* **camera-preview:** add new focus methods & getFlashMode() (#1442) ([748c6bd](https://github.com/driftyco/ionic-native/commit/748c6bd))
|
||||
* **camera-preview:** add tapToFocus method (#1494) ([8330c92](https://github.com/driftyco/ionic-native/commit/8330c92))
|
||||
* **diagnostic:** update to support latest signatures (#1458) ([a4151ab](https://github.com/driftyco/ionic-native/commit/a4151ab))
|
||||
* **facebook:** add EVENTS constant (#1510) ([aa9826f](https://github.com/driftyco/ionic-native/commit/aa9826f))
|
||||
* **fcm:** support Firebase Cloud Messaging plugin (#1449) ([6cc6393](https://github.com/driftyco/ionic-native/commit/6cc6393))
|
||||
* **firebase:** add support for firebase ErrorLog (#1440) ([11dbe42](https://github.com/driftyco/ionic-native/commit/11dbe42))
|
||||
* **health-kit:** add HealthKit plugin (#1499) ([14f38a0](https://github.com/driftyco/ionic-native/commit/14f38a0))
|
||||
* **intercom:** add Intercom plugin (#1504) ([ce2cc1b](https://github.com/driftyco/ionic-native/commit/ce2cc1b))
|
||||
* **mobile-accessibility:** add Mobile Accessibility plugin (#1505) ([4e9b2d9](https://github.com/driftyco/ionic-native/commit/4e9b2d9)), closes [#1304](https://github.com/driftyco/ionic-native/issues/1304)
|
||||
* **native-page-transitions:** add pendingTransition methods (#1344) ([f699c6d](https://github.com/driftyco/ionic-native/commit/f699c6d))
|
||||
* **native-ringtones:** add Native Ringtones plugin (#1488) ([21c9cd2](https://github.com/driftyco/ionic-native/commit/21c9cd2))
|
||||
* **phonegap-local-notifications:** add Phonegap local notifications plugin (#1474) ([3d747d3](https://github.com/driftyco/ionic-native/commit/3d747d3))
|
||||
* **plugin:** add Document Viewer plugin (#1520) ([6855fe8](https://github.com/driftyco/ionic-native/commit/6855fe8))
|
||||
* **plugin:** add File encryption plugin (#1509) ([46b4e25](https://github.com/driftyco/ionic-native/commit/46b4e25)), closes [#618](https://github.com/driftyco/ionic-native/issues/618)
|
||||
* **safari-view-controller:** add missing options (#1490) ([a5b2e98](https://github.com/driftyco/ionic-native/commit/a5b2e98)), closes [#1489](https://github.com/driftyco/ionic-native/issues/1489)
|
||||
* **social-sharing:** add setIPadPopupCoordinates method (#1497) ([65a8095](https://github.com/driftyco/ionic-native/commit/65a8095)), closes [#1288](https://github.com/driftyco/ionic-native/issues/1288)
|
||||
* **touch-id:** add didFingerprintDatabaseChange (#1475) ([d9cc959](https://github.com/driftyco/ionic-native/commit/d9cc959)), closes [#1466](https://github.com/driftyco/ionic-native/issues/1466)
|
||||
* **wheel-selector:** add Native wheel Selector plugin (#1522) ([8fe4eec](https://github.com/driftyco/ionic-native/commit/8fe4eec))
|
||||
|
||||
|
||||
|
||||
<a name="3.6.1"></a>
|
||||
## [3.6.1](https://github.com/driftyco/ionic-native/compare/v3.6.0...v3.6.1) (2017-04-27)
|
||||
|
||||
|
30
README.md
30
README.md
@ -3,22 +3,22 @@
|
||||
|
||||
# Ionic Native
|
||||
|
||||
Ionic Native is a curated set of wrappers for Cordova plugins that make adding any native functionality you need to your [Ionic 2](http://ionicframework.com/) mobile app easy.
|
||||
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.
|
||||
|
||||
Ionic Native wraps plugin callbacks in a Promise or Observable, providing a common interface for all plugins and making it easy to use plugins with Angular change detection.
|
||||
|
||||
## Installation
|
||||
|
||||
Run following command to install Ionic Native in your project.
|
||||
```
|
||||
```bash
|
||||
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/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](https://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/native/](http://ionicframework.com/docs/native/).
|
||||
For the full Ionic Native documentation, please visit [https://ionicframework.com/docs/native/](https://ionicframework.com/docs/native/).
|
||||
|
||||
### Basic Usage
|
||||
|
||||
@ -95,13 +95,13 @@ To do this, you need to provide a mock implementation of the plugins you wish to
|
||||
|
||||
First import the `Camera` class in your `src/app/app.module.ts` file:
|
||||
|
||||
```ts
|
||||
```typescript
|
||||
import { Camera } from '@ionic-native/camera';
|
||||
```
|
||||
|
||||
Then create a new class that extends the `Camera` class with a mock implementation:
|
||||
|
||||
```ts
|
||||
```typescript
|
||||
class CameraMock extends Camera {
|
||||
getPicture(options) {
|
||||
return new Promise((resolve, reject) => {
|
||||
@ -113,7 +113,7 @@ class CameraMock extends Camera {
|
||||
|
||||
Finally, override the previous `Camera` class in your `providers` for this module:
|
||||
|
||||
```ts
|
||||
```typescript
|
||||
providers: [
|
||||
{ provide: Camera, useClass: CameraMock }
|
||||
]
|
||||
@ -121,8 +121,9 @@ providers: [
|
||||
|
||||
Here's the full example:
|
||||
|
||||
```ts
|
||||
```typescript
|
||||
import { NgModule, ErrorHandler } from '@angular/core';
|
||||
import { BrowserModule } from '@angular/platform-browser';
|
||||
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
|
||||
import { MyApp } from './app.component';
|
||||
import { HomePage } from '../pages/home/home';
|
||||
@ -143,6 +144,7 @@ class CameraMock extends Camera {
|
||||
HomePage
|
||||
],
|
||||
imports: [
|
||||
BrowserModule,
|
||||
IonicModule.forRoot(MyApp)
|
||||
],
|
||||
bootstrap: [IonicApp],
|
||||
@ -163,24 +165,24 @@ export class AppModule {}
|
||||
|
||||
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.
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
## Plugin Missing?
|
||||
Let us know or submit a PR! Take a look at [the Developer Guide](https://github.com/driftyco/ionic-native/blob/master/DEVELOPER.md) for more on how to contribute. :heart:
|
||||
|
||||
## Ionic 1/Angular 1 support
|
||||
## Ionic V1/Angular 1 support
|
||||
|
||||
Ionic Native 3.x supports Ionic 2.x and above. For Ionic/Angular 1 support, please use version 2 of Ionic Native. See the [2.x README](https://github.com/driftyco/ionic-native/blob/8cd648db5cddd7bdbe2bd78839b19c620cc8c04c/README.md) for usage information.
|
||||
For Ionic V1/Angular 1 support, please use version 2 of Ionic Native. See the [2.x README](https://github.com/driftyco/ionic-native/blob/8cd648db5cddd7bdbe2bd78839b19c620cc8c04c/README.md) for usage information.
|
||||
|
||||
# Credits
|
||||
|
||||
Ibby Hadeed - [@ihadeed](http://github.com/ihadeed)
|
||||
Ibby Hadeed - [@ihadeed](https://github.com/ihadeed)
|
||||
|
||||
Tim Lancina - [@timlancina](http://twitter.com/timlancina)
|
||||
Tim Lancina - [@timlancina](https://twitter.com/timlancina)
|
||||
|
||||
Mike Hartington - [@mhartington](https://twitter.com/mhartington)
|
||||
|
||||
Max Lynch - [@maxlynch](http://twitter.com/maxlynch)
|
||||
Max Lynch - [@maxlynch](https://twitter.com/maxlynch)
|
||||
|
||||
Rob Wormald - [@robwormald](https://twitter.com/robwormald)
|
||||
|
15
circle.yml
15
circle.yml
@ -7,12 +7,15 @@ jobs:
|
||||
steps:
|
||||
- checkout
|
||||
- restore_cache:
|
||||
key: ionic-site
|
||||
key: ionic-site-{{ .Branch }}
|
||||
- run:
|
||||
name: Prepare ionic-site repo
|
||||
command: ./scripts/docs/prepare.sh
|
||||
command: |
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
./scripts/docs/prepare.sh
|
||||
fi
|
||||
- save_cache:
|
||||
key: ionic-site
|
||||
key: ionic-site-{{ .Branch }}
|
||||
paths:
|
||||
- ~/ionic-site/
|
||||
- restore_cache:
|
||||
@ -27,6 +30,12 @@ jobs:
|
||||
- run:
|
||||
name: Run tslint
|
||||
command: npm run lint
|
||||
- run:
|
||||
name: Build changed plugins
|
||||
command: node scripts/ci-tests.js
|
||||
- run:
|
||||
name: Run tests
|
||||
command: npm test
|
||||
- add_ssh_keys
|
||||
- deploy:
|
||||
name: Update docs
|
||||
|
12
gulpfile.js
12
gulpfile.js
@ -34,14 +34,16 @@ gulp.task('plugin:create', () => {
|
||||
|
||||
const src = flags.m ? './scripts/templates/wrap-min.tmpl':'./scripts/templates/wrap.tmpl',
|
||||
pluginName = flags.n,
|
||||
pluginNameSpaced = pluginName.replace(/(?!^)([A-Z])/g, ' $1');
|
||||
spaced = pluginName.replace(/(?!^)([A-Z])/g, ' $1'),
|
||||
kebabCase = _.kebabCase(pluginName);
|
||||
|
||||
return gulp.src(src)
|
||||
.pipe(replace('$PluginName', pluginName))
|
||||
.pipe(replace('$Plugin_Name', pluginNameSpaced))
|
||||
.pipe(replace('$pluginName', _.lowerFirst(pluginName)))
|
||||
.pipe(replace('{{ PluginName }}', pluginName))
|
||||
.pipe(replace('{{ Plugin_Name }}', spaced))
|
||||
.pipe(replace('{{ pluginName }}', _.lowerFirst(pluginName)))
|
||||
.pipe(replace('{{ plugin-name }}', kebabCase))
|
||||
.pipe(rename('index.ts'))
|
||||
.pipe(gulp.dest('./src/@ionic-native/plugins/' + _.kebabCase(pluginName)));
|
||||
.pipe(gulp.dest('./src/@ionic-native/plugins/' + kebabCase));
|
||||
|
||||
} else {
|
||||
console.log("Usage is: gulp plugin:create -n PluginName");
|
||||
|
55
karma.conf.js
Normal file
55
karma.conf.js
Normal file
@ -0,0 +1,55 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = config => {
|
||||
|
||||
const conf = {
|
||||
frameworks: [
|
||||
'jasmine',
|
||||
'karma-typescript'
|
||||
],
|
||||
|
||||
plugins: [
|
||||
'karma-typescript',
|
||||
'karma-jasmine',
|
||||
'karma-phantomjs-launcher'
|
||||
],
|
||||
|
||||
preprocessors: {
|
||||
'src/**/*.ts': ['karma-typescript']
|
||||
},
|
||||
|
||||
karmaTypescriptConfig: {
|
||||
bundlerOptions: {
|
||||
entrypoints: /\.spec\.ts$/,
|
||||
transforms: [
|
||||
require("karma-typescript-es6-transform")()
|
||||
]
|
||||
},
|
||||
compilerOptions: {
|
||||
lib: ['es2015', 'dom'],
|
||||
paths: {
|
||||
"@ionic-native/core": ["./src/@ionic-native/core"]
|
||||
},
|
||||
baseUrl: '.'
|
||||
}
|
||||
},
|
||||
|
||||
files: [
|
||||
{ pattern: 'src/**/*.ts', included: true, watched: true }
|
||||
],
|
||||
|
||||
reporters: ['progress'],
|
||||
|
||||
port: 9876,
|
||||
colors: true,
|
||||
logLevel: config.INFO,
|
||||
autoWatch: true,
|
||||
browsers: [
|
||||
'PhantomJS'
|
||||
],
|
||||
singleRun: false
|
||||
};
|
||||
|
||||
config.set(conf);
|
||||
|
||||
};
|
28
package.json
28
package.json
@ -1,12 +1,15 @@
|
||||
{
|
||||
"name": "ionic-native",
|
||||
"version": "3.6.1",
|
||||
"version": "3.8.1",
|
||||
"description": "Native plugin wrappers for Cordova and Ionic with TypeScript, ES6+, Promise and Observable support",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@angular/compiler": "4.0.0",
|
||||
"@angular/compiler-cli": "4.0.0",
|
||||
"@angular/core": "4.0.0",
|
||||
"@angular/compiler": "4.1.2",
|
||||
"@angular/compiler-cli": "4.1.2",
|
||||
"@angular/core": "4.1.2",
|
||||
"@types/cordova": "0.0.34",
|
||||
"@types/jasmine": "^2.5.47",
|
||||
"@types/node": "^7.0.18",
|
||||
"canonical-path": "0.0.2",
|
||||
"child-process-promise": "2.2.0",
|
||||
"conventional-changelog-cli": "1.2.0",
|
||||
@ -21,6 +24,13 @@
|
||||
"gulp-rename": "1.2.2",
|
||||
"gulp-replace": "0.5.4",
|
||||
"gulp-tslint": "6.1.2",
|
||||
"jasmine-core": "^2.6.1",
|
||||
"karma": "^1.7.0",
|
||||
"karma-cli": "^1.0.1",
|
||||
"karma-jasmine": "^1.1.0",
|
||||
"karma-phantomjs-launcher": "^1.0.4",
|
||||
"karma-typescript": "^3.0.1",
|
||||
"karma-typescript-es6-transform": "^1.0.0",
|
||||
"lodash": "4.17.4",
|
||||
"minimist": "1.1.3",
|
||||
"node-html-encoder": "0.0.2",
|
||||
@ -30,9 +40,9 @@
|
||||
"rxjs": "5.1.1",
|
||||
"semver": "5.3.0",
|
||||
"tslint": "3.15.1",
|
||||
"tslint-ionic-rules": "0.0.7",
|
||||
"typescript": "2.2.1",
|
||||
"zone.js": "^0.8.4"
|
||||
"tslint-ionic-rules": "0.0.8",
|
||||
"typescript": "2.3.2",
|
||||
"zone.js": "^0.8.10"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "npm run test:watch",
|
||||
@ -44,7 +54,9 @@
|
||||
"shipit": "npm run build && gulp readmes && npm run npmpub",
|
||||
"npmpub": "node scripts/build/publish.js",
|
||||
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
|
||||
"postchangelog": "git commit -am \"chore(): update changelog\""
|
||||
"postchangelog": "git commit -am \"chore(): update changelog\"",
|
||||
"test": "karma start karma.conf.js --single-run",
|
||||
"test:watch": "karma start karma.conf.js"
|
||||
},
|
||||
"config": {
|
||||
"commitizen": {
|
||||
|
@ -52,6 +52,16 @@ const PLUGINS = fs.readdirSync(PLUGINS_PATH);
|
||||
|
||||
// Build specific list of plugins to build from arguments, if any
|
||||
let pluginsToBuild = process.argv.slice(2);
|
||||
let ignoreErrors = false;
|
||||
let errors = [];
|
||||
|
||||
const index = pluginsToBuild.indexOf('ignore-errors');
|
||||
if (index > -1) {
|
||||
ignoreErrors = true;
|
||||
pluginsToBuild.splice(index, 1);
|
||||
console.log('Build will continue even if errors were thrown. Errors will be printed when build finishes.');
|
||||
}
|
||||
|
||||
if (!pluginsToBuild.length) {
|
||||
pluginsToBuild = PLUGINS;
|
||||
}
|
||||
@ -102,10 +112,16 @@ const addPluginToQueue = pluginName => {
|
||||
exec(`${ROOT}/node_modules/.bin/ngc -p ${tsConfigPath}`, (err, stdout, stderr) => {
|
||||
|
||||
if (err) {
|
||||
// oops! something went wrong.
|
||||
callback(`\n\nBuilding ${pluginName} failed.`);
|
||||
console.log(err);
|
||||
return;
|
||||
|
||||
if (!ignoreErrors) {
|
||||
// oops! something went wrong.
|
||||
console.log(err);
|
||||
callback(`\n\nBuilding ${pluginName} failed.`);
|
||||
return;
|
||||
} else {
|
||||
errors.push(err);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// we're done with this plugin!
|
||||
@ -125,7 +141,17 @@ pluginsToBuild.forEach(addPluginToQueue);
|
||||
QUEUE.start((err) => {
|
||||
|
||||
if (err) {
|
||||
console.log('Error building plugins. ', err);
|
||||
console.log('Error building plugins.');
|
||||
console.log(err);
|
||||
process.stderr.write(err);
|
||||
process.exit(1);
|
||||
} else if (errors.length) {
|
||||
errors.forEach(e => {
|
||||
console.log(e.message) && console.log('\n');
|
||||
process.stderr.write(err);
|
||||
});
|
||||
console.log('Build complete with errors');
|
||||
process.exit(1);
|
||||
} else {
|
||||
console.log('Done processing plugins!');
|
||||
}
|
||||
|
@ -13,7 +13,8 @@
|
||||
"skipLibCheck": true,
|
||||
"lib": ["es2015", "dom"],
|
||||
"sourceMap": true,
|
||||
"inlineSources": true
|
||||
"inlineSources": true,
|
||||
"noImplicitAny": true
|
||||
},
|
||||
"files": [
|
||||
"../../src/@ionic-native/core/index.ts"
|
||||
|
@ -16,7 +16,8 @@
|
||||
"skipLibCheck": true,
|
||||
"lib": ["es2015", "dom"],
|
||||
"sourceMap": true,
|
||||
"inlineSources": true
|
||||
"inlineSources": true,
|
||||
"noImplicitAny": true
|
||||
},
|
||||
"files": []
|
||||
}
|
||||
|
65
scripts/ci-tests.js
Normal file
65
scripts/ci-tests.js
Normal file
@ -0,0 +1,65 @@
|
||||
const exec = require('child-process-promise').exec;
|
||||
let diff;
|
||||
exec(`git branch | grep \\* | cut -d ' ' -f2`)
|
||||
.then(output => {
|
||||
if (output.stderr) {
|
||||
return Promise.reject(output.stderr);
|
||||
}
|
||||
|
||||
const branch = output.stdout.trim();
|
||||
|
||||
if (branch !== 'master') {
|
||||
|
||||
console.log('Merging master branch in ...');
|
||||
// not on master branch
|
||||
// let's test the changes that were made
|
||||
return exec(`git merge origin master`);
|
||||
}
|
||||
})
|
||||
.then((output) => {
|
||||
if (output && output.stderr) {
|
||||
return Promise.reject(output.stderr);
|
||||
}
|
||||
console.log('Checking for differences ...');
|
||||
return exec(`git diff --name-status origin master`)
|
||||
})
|
||||
.then((output) => {
|
||||
if (output && output.stderr) {
|
||||
return Promise.reject(output.stderr);
|
||||
}
|
||||
|
||||
diff = output.stdout;
|
||||
diff = diff.replace(/A\s+/g, '');
|
||||
diff = diff.match(/src\/@ionic-native\/plugins\/([a-zA-Z0-9\-]+)\/index\.ts/g);
|
||||
|
||||
if (!diff) process.exit();
|
||||
|
||||
console.log(`${ diff.length } plugins were modified. We will now build them to verify they still work.`);
|
||||
|
||||
return exec('npm run build:core --silent');
|
||||
})
|
||||
.then((output) => {
|
||||
|
||||
if (output && output.stderr) {
|
||||
return Promise.reject(output.stderr);
|
||||
}
|
||||
|
||||
console.log('Built core library successfully ...');
|
||||
console.log('Building plugins ...');
|
||||
|
||||
diff = diff.map(text => text.replace('src/@ionic-native/plugins/', '').replace('/index.ts', ''));
|
||||
|
||||
return exec(`npm run build:modules ${diff.join(' ')} --silent`);
|
||||
})
|
||||
.then((output) => {
|
||||
if (output && output.stderr) {
|
||||
console.log(output.stderr);
|
||||
process.exit(1);
|
||||
}
|
||||
console.log(output.stdout);
|
||||
process.exit();
|
||||
})
|
||||
.catch(e => {
|
||||
console.log(e.message || e);
|
||||
process.exit(1);
|
||||
});
|
2
scripts/docs/templates/readme.template.md
vendored
2
scripts/docs/templates/readme.template.md
vendored
@ -16,7 +16,7 @@
|
||||
<@ for prop in doc.decorators[0].argumentInfo @>
|
||||
|
||||
```
|
||||
$ <@ if prop.install @><$ prop.install $><@ else @>ionic plugin add <$ prop.plugin $><@ endif @>
|
||||
$ <@ if prop.install @><$ prop.install $><@ else @>ionic cordova plugin add <$ prop.plugin $><@ endif @>
|
||||
$ npm install --save @ionic-native/<$ doc.npmId $>
|
||||
```
|
||||
|
||||
|
@ -2,15 +2,15 @@ import { Plugin, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
/**
|
||||
* @name $Plugin_Name
|
||||
* @name {{ Plugin_Name }}
|
||||
* @description
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* import { $PluginName } from 'ionic-native';
|
||||
* import { {{ PluginName }} } from '@ionic-native/{{ plugin-name }}';
|
||||
*
|
||||
*
|
||||
* constructor(private $pluginName: $PluginName) { }
|
||||
* constructor(private {{ pluginName }}: {{ PluginName }}) { }
|
||||
*
|
||||
* ...
|
||||
*
|
||||
@ -18,13 +18,13 @@ import { Injectable } from '@angular/core';
|
||||
* ```
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: '$PluginName',
|
||||
pluginName: '{{ PluginName }}',
|
||||
plugin: '',
|
||||
pluginRef: '',
|
||||
repo: '',
|
||||
platforms: []
|
||||
})
|
||||
@Injectable()
|
||||
export class $PluginName extends IonicNativePlugin {
|
||||
export class {{ PluginName }} extends IonicNativePlugin {
|
||||
|
||||
}
|
||||
|
@ -10,33 +10,33 @@
|
||||
* - Remove this note
|
||||
*
|
||||
*/
|
||||
import { Plugin, Cordova, CordovaProperty, CordovaInstance, InstanceProperty, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Plugin, Cordova, CordovaProperty, CordovaInstance, InstanceProperty, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
|
||||
/**
|
||||
* @name $Plugin_Name
|
||||
* @name {{ Plugin_Name }}
|
||||
* @description
|
||||
* This plugin does something
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* import { $PluginName } from 'ionic-native';
|
||||
* import { {{ PluginName }} } from '@ionic-native/{{ plugin-name }}';
|
||||
*
|
||||
*
|
||||
* constructor(private $pluginName: $PluginName) { }
|
||||
* constructor(private {{ pluginName }}: {{ PluginName }}) { }
|
||||
*
|
||||
* ...
|
||||
*
|
||||
*
|
||||
* this.$pluginName.functionName('Hello', 123)
|
||||
* this.{{ pluginName }}.functionName('Hello', 123)
|
||||
* .then((res: any) => console.log(res))
|
||||
* .catch((error: any) => console.error(error));
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: '$PluginName',
|
||||
pluginName: '{{ PluginName }}',
|
||||
plugin: '', // npm package name, example: cordova-plugin-camera
|
||||
pluginRef: '', // the variable reference to call the plugin, example: navigator.geolocation
|
||||
repo: '', // the github repository URL for the plugin
|
||||
@ -44,7 +44,7 @@ import { Observable } from 'rxjs/Observable';
|
||||
install: '', // OPTIONAL install command, in case the plugin requires variables
|
||||
})
|
||||
@Injectable()
|
||||
export class $PluginName extends IonicNativePlugin {
|
||||
export class {{ PluginName }} extends IonicNativePlugin {
|
||||
|
||||
/**
|
||||
* This function does something
|
||||
|
@ -1,5 +1,3 @@
|
||||
declare var window;
|
||||
|
||||
export function checkReady() {
|
||||
const DEVICE_READY_TIMEOUT = 5000;
|
||||
|
||||
@ -16,7 +14,7 @@ export function checkReady() {
|
||||
});
|
||||
|
||||
setTimeout(() => {
|
||||
if (!didFireReady && window.cordova) {
|
||||
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);
|
||||
|
234
src/@ionic-native/core/decorators.spec.ts
Normal file
234
src/@ionic-native/core/decorators.spec.ts
Normal file
@ -0,0 +1,234 @@
|
||||
import 'core-js';
|
||||
import { Plugin, Cordova, CordovaProperty, CordovaCheck, CordovaInstance, InstanceProperty } from './decorators';
|
||||
import { IonicNativePlugin } from './ionic-native-plugin';
|
||||
import { ERR_CORDOVA_NOT_AVAILABLE, ERR_PLUGIN_NOT_INSTALLED } from './plugin';
|
||||
|
||||
declare const window: any;
|
||||
|
||||
class TestObject {
|
||||
|
||||
constructor(public _objectInstance: any) {}
|
||||
|
||||
@InstanceProperty
|
||||
name: string;
|
||||
|
||||
@CordovaInstance({ sync: true })
|
||||
pingSync(): string { return; }
|
||||
|
||||
@CordovaInstance()
|
||||
ping(): Promise<any> { return; }
|
||||
|
||||
}
|
||||
|
||||
@Plugin({
|
||||
pluginName: 'TestPlugin',
|
||||
pluginRef: 'testPlugin',
|
||||
repo: '',
|
||||
plugin: 'cordova-plugin-my-plugin'
|
||||
})
|
||||
class TestPlugin extends IonicNativePlugin {
|
||||
|
||||
@CordovaProperty
|
||||
name: string;
|
||||
|
||||
@Cordova({ sync: true })
|
||||
pingSync(): string { return; }
|
||||
|
||||
@Cordova()
|
||||
ping(): Promise<string> { return; }
|
||||
|
||||
@CordovaCheck()
|
||||
customPing(): Promise<string> {
|
||||
return Promise.resolve('pong');
|
||||
}
|
||||
|
||||
create(): TestObject {
|
||||
return new TestObject(TestPlugin.getPlugin().create());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function definePlugin() {
|
||||
(window as any).testPlugin = {
|
||||
name: 'John Smith',
|
||||
ping: (success: Function, error: Function) => success('pong'),
|
||||
pingSync: () => 'pong',
|
||||
create: function TestObject() {
|
||||
this.pingSync = () => 'pong';
|
||||
this.ping = (success: Function, error: Function) => success('pong');
|
||||
this.name = 'John Smith';
|
||||
return this;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
describe('Regular Decorators', () => {
|
||||
|
||||
let plugin: TestPlugin;
|
||||
|
||||
beforeEach(() => {
|
||||
plugin = new TestPlugin();
|
||||
definePlugin();
|
||||
});
|
||||
|
||||
describe('Plugin', () => {
|
||||
|
||||
it('should set pluginName', () => {
|
||||
expect(TestPlugin.getPluginName()).toEqual('TestPlugin');
|
||||
});
|
||||
|
||||
it('should set pluginRef', () => {
|
||||
expect(TestPlugin.getPluginRef()).toEqual('testPlugin');
|
||||
});
|
||||
|
||||
it('should return original plugin object', () => {
|
||||
expect(TestPlugin.getPlugin()).toEqual(window.testPlugin);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('Cordova', () => {
|
||||
|
||||
it('should do a sync function', () => {
|
||||
expect(plugin.pingSync()).toEqual('pong');
|
||||
});
|
||||
|
||||
it('should do an async function', (done: Function) => {
|
||||
plugin.ping()
|
||||
.then(res => {
|
||||
expect(res).toEqual('pong');
|
||||
done();
|
||||
})
|
||||
.catch(e => {
|
||||
expect(e).toBeUndefined();
|
||||
done('Method should have resolved');
|
||||
});
|
||||
});
|
||||
|
||||
it('should throw plugin_not_installed error', (done: Function) => {
|
||||
|
||||
delete window.testPlugin;
|
||||
window.cordova = true;
|
||||
|
||||
expect(<any>plugin.pingSync()).toEqual(ERR_PLUGIN_NOT_INSTALLED);
|
||||
|
||||
plugin.ping()
|
||||
.catch(e => {
|
||||
expect(e).toEqual(ERR_PLUGIN_NOT_INSTALLED.error);
|
||||
delete window.cordova;
|
||||
done();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
it('should throw cordova_not_available error', (done: Function) => {
|
||||
|
||||
delete window.testPlugin;
|
||||
|
||||
expect(<any>plugin.pingSync()).toEqual(ERR_CORDOVA_NOT_AVAILABLE);
|
||||
|
||||
plugin.ping()
|
||||
.catch(e => {
|
||||
expect(e).toEqual(ERR_CORDOVA_NOT_AVAILABLE.error);
|
||||
done();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('CordovaProperty', () => {
|
||||
|
||||
it('should return property value', () => {
|
||||
expect(plugin.name).toEqual('John Smith');
|
||||
});
|
||||
|
||||
it('should set property value', () => {
|
||||
plugin.name = 'value2';
|
||||
expect(plugin.name).toEqual('value2');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('CordovaCheck', () => {
|
||||
|
||||
it('should run the method when plugin exists', (done) => {
|
||||
plugin.customPing()
|
||||
.then(res => {
|
||||
expect(res).toEqual('pong');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('shouldnt run the method when plugin doesnt exist', (done) => {
|
||||
delete window.testPlugin;
|
||||
window.cordova = true;
|
||||
plugin.customPing()
|
||||
.catch(e => {
|
||||
expect(e).toEqual(ERR_PLUGIN_NOT_INSTALLED.error);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('Instance Decorators', () => {
|
||||
|
||||
let instance: TestObject,
|
||||
plugin: TestPlugin;
|
||||
|
||||
beforeEach(() => {
|
||||
definePlugin();
|
||||
plugin = new TestPlugin();
|
||||
instance = plugin.create();
|
||||
});
|
||||
|
||||
describe('Instance plugin', () => {
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
describe('CordovaInstance', () => {
|
||||
|
||||
it('should call instance async method', (done) => {
|
||||
instance.ping()
|
||||
.then(r => {
|
||||
expect(r).toEqual('pong');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should call instance sync method', () => {
|
||||
expect(instance.pingSync()).toEqual('pong');
|
||||
});
|
||||
|
||||
it('shouldnt call instance method when _objectInstance is undefined', () => {
|
||||
|
||||
delete instance._objectInstance;
|
||||
instance.ping()
|
||||
.then(r => {
|
||||
expect(r).toBeUndefined();
|
||||
})
|
||||
.catch(e => {
|
||||
expect(e).toBeUndefined();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('InstanceProperty', () => {
|
||||
it('should return property value', () => {
|
||||
expect(instance.name).toEqual('John Smith');
|
||||
});
|
||||
|
||||
it('should set property value', () => {
|
||||
instance.name = 'John Cena';
|
||||
expect(instance.name).toEqual('John Cena');
|
||||
});
|
||||
});
|
||||
|
||||
});
|
@ -32,6 +32,8 @@ export interface PluginConfig {
|
||||
* Supported platforms
|
||||
*/
|
||||
platforms?: string[];
|
||||
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
export interface CordovaOptions {
|
||||
@ -127,10 +129,10 @@ export function InstanceCheck(opts: CordovaCheckOptions = {}) {
|
||||
if (opts.sync) {
|
||||
return;
|
||||
} else if (opts.observable) {
|
||||
return new Observable<any>(() => {});
|
||||
return new Observable<any>(() => { });
|
||||
}
|
||||
|
||||
return getPromise(() => {});
|
||||
return getPromise(() => { });
|
||||
|
||||
}
|
||||
}
|
||||
@ -182,12 +184,12 @@ export function CordovaCheck(opts: CordovaCheckOptions = {}) {
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
export function Plugin(config: PluginConfig) {
|
||||
return function(cls) {
|
||||
export function Plugin(config: PluginConfig): ClassDecorator {
|
||||
return function(cls: any) {
|
||||
|
||||
// Add these fields to the class
|
||||
for (let k in config) {
|
||||
cls[k] = config[k];
|
||||
for (let prop in config) {
|
||||
cls[prop] = config[prop];
|
||||
}
|
||||
|
||||
cls['installed'] = function(printWarning?: boolean) {
|
||||
@ -290,10 +292,10 @@ export function CordovaProperty(target: any, key: string) {
|
||||
export function InstanceProperty(target: any, key: string) {
|
||||
Object.defineProperty(target, key, {
|
||||
enumerable: true,
|
||||
get: function(){
|
||||
get: function() {
|
||||
return this._objectInstance[key];
|
||||
},
|
||||
set: function(value){
|
||||
set: function(value) {
|
||||
this._objectInstance[key] = value;
|
||||
}
|
||||
});
|
||||
|
@ -21,7 +21,7 @@ export class IonicNativePlugin {
|
||||
/**
|
||||
* Returns the original plugin object
|
||||
*/
|
||||
static getPlugin(): any {}
|
||||
static getPlugin(): any { }
|
||||
|
||||
/**
|
||||
* Returns the plugin's name
|
||||
|
@ -7,8 +7,11 @@ import 'rxjs/add/observable/fromEvent';
|
||||
|
||||
checkReady();
|
||||
|
||||
declare var window;
|
||||
declare var Promise;
|
||||
// declare const window;
|
||||
// declare var Promise;
|
||||
|
||||
export const ERR_CORDOVA_NOT_AVAILABLE = { error: 'cordova_not_available' };
|
||||
export const ERR_PLUGIN_NOT_INSTALLED = { error: 'plugin_not_installed' };
|
||||
|
||||
|
||||
/**
|
||||
@ -16,8 +19,8 @@ declare var Promise;
|
||||
* @return {boolean | { error: string } }
|
||||
* @private
|
||||
*/
|
||||
export function checkAvailability(pluginRef: string, methodName?: string, pluginName?: string);
|
||||
export function checkAvailability(pluginObj: any, methodName?: string, pluginName?: string);
|
||||
export function checkAvailability(pluginRef: string, methodName?: string, pluginName?: string): boolean | { error: string };
|
||||
export function checkAvailability(pluginObj: any, methodName?: string, pluginName?: string): boolean | { error: string };
|
||||
export function checkAvailability(plugin: any, methodName?: string, pluginName?: string): boolean | { error: string } {
|
||||
|
||||
let pluginRef, pluginInstance, pluginPackage;
|
||||
@ -35,15 +38,11 @@ export function checkAvailability(plugin: any, methodName?: string, pluginName?:
|
||||
if (!pluginInstance || (!!methodName && typeof pluginInstance[methodName] === 'undefined')) {
|
||||
if (!window.cordova) {
|
||||
cordovaWarn(pluginName, methodName);
|
||||
return {
|
||||
error: 'cordova_not_available'
|
||||
};
|
||||
return ERR_CORDOVA_NOT_AVAILABLE;
|
||||
}
|
||||
|
||||
pluginWarn(pluginName, pluginPackage, methodName);
|
||||
return {
|
||||
error: 'plugin_not_installed'
|
||||
};
|
||||
return ERR_PLUGIN_NOT_INSTALLED;
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -69,7 +68,7 @@ function setIndex(args: any[], opts: any = {}, resolve?: Function, reject?: Func
|
||||
args.unshift(reject);
|
||||
args.unshift(resolve);
|
||||
} else if (opts.callbackStyle === 'node') {
|
||||
args.push((err, result) => {
|
||||
args.push((err: any, result: any) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
@ -135,8 +134,8 @@ function callCordovaPlugin(pluginObj: any, methodName: string, args: any[], opts
|
||||
}
|
||||
|
||||
function wrapPromise(pluginObj: any, methodName: string, args: any[], opts: any = {}) {
|
||||
let pluginResult, rej;
|
||||
const p = getPromise((resolve, reject) => {
|
||||
let pluginResult: any, rej: Function;
|
||||
const p = getPromise((resolve: Function, reject: Function) => {
|
||||
pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts, resolve, reject);
|
||||
rej = reject;
|
||||
});
|
||||
@ -145,13 +144,13 @@ function wrapPromise(pluginObj: any, methodName: string, args: any[], opts: any
|
||||
// to error
|
||||
if (pluginResult && pluginResult.error) {
|
||||
p.catch(() => { });
|
||||
rej(pluginResult.error);
|
||||
typeof rej === 'function' && rej(pluginResult.error);
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
function wrapOtherPromise(pluginObj: any, methodName: string, args: any[], opts: any= {}) {
|
||||
return getPromise((resolve, reject) => {
|
||||
function wrapOtherPromise(pluginObj: any, methodName: string, args: any[], opts: any = {}) {
|
||||
return getPromise((resolve: Function, reject: Function) => {
|
||||
const pluginResult = callCordovaPlugin(pluginObj, methodName, args, opts);
|
||||
if (pluginResult) {
|
||||
if (pluginResult.error) {
|
||||
@ -225,7 +224,7 @@ export function overrideFunction(pluginObj: any, methodName: string, args: any[]
|
||||
if (availabilityCheck === true) {
|
||||
const pluginInstance = getPlugin(pluginObj.constructor.getPluginRef());
|
||||
pluginInstance[methodName] = observer.next.bind(observer);
|
||||
return () => pluginInstance[methodName] = () => {};
|
||||
return () => pluginInstance[methodName] = () => { };
|
||||
} else {
|
||||
observer.error(availabilityCheck);
|
||||
observer.complete();
|
||||
@ -239,7 +238,7 @@ export function overrideFunction(pluginObj: any, methodName: string, args: any[]
|
||||
* @private
|
||||
*/
|
||||
export const wrap = function(pluginObj: any, methodName: string, opts: CordovaOptions = {}) {
|
||||
return (...args) => {
|
||||
return (...args: any[]) => {
|
||||
if (opts.sync) {
|
||||
// Sync doesn't wrap the plugin with a promise or observable, it returns the result as-is
|
||||
return callCordovaPlugin(pluginObj, methodName, args, opts);
|
||||
@ -259,7 +258,7 @@ export const wrap = function(pluginObj: any, methodName: string, opts: CordovaOp
|
||||
* @private
|
||||
*/
|
||||
export function wrapInstance(pluginObj: any, methodName: string, opts: any = {}) {
|
||||
return (...args) => {
|
||||
return (...args: any[]) => {
|
||||
if (opts.sync) {
|
||||
|
||||
return callInstance(pluginObj, methodName, args, opts);
|
||||
@ -289,7 +288,7 @@ export function wrapInstance(pluginObj: any, methodName: string, opts: any = {})
|
||||
|
||||
} else if (opts.otherPromise) {
|
||||
|
||||
return getPromise((resolve, reject) => {
|
||||
return getPromise((resolve: Function, reject: Function) => {
|
||||
let result = callInstance(pluginObj, methodName, args, opts, resolve, reject);
|
||||
if (result && !result.error) {
|
||||
result.then(resolve, reject);
|
||||
@ -298,14 +297,14 @@ export function wrapInstance(pluginObj: any, methodName: string, opts: any = {})
|
||||
|
||||
} else {
|
||||
|
||||
let pluginResult, rej;
|
||||
const p = getPromise((resolve, reject) => {
|
||||
let pluginResult: any, rej: Function;
|
||||
const p = getPromise((resolve: Function, reject: Function) => {
|
||||
pluginResult = callInstance(pluginObj, methodName, args, opts, resolve, reject);
|
||||
rej = reject;
|
||||
});
|
||||
if (pluginResult && pluginResult.error) {
|
||||
p.catch(() => { });
|
||||
rej(pluginResult.error);
|
||||
typeof rej === 'function' && rej(pluginResult.error);
|
||||
}
|
||||
return p;
|
||||
|
||||
|
@ -1,27 +1,28 @@
|
||||
declare var window: any;
|
||||
declare const window: any;
|
||||
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
export function get(obj, path) {
|
||||
path = path.split('.');
|
||||
for (let i = 0; i < path.length; i++) {
|
||||
export const get = (element: Element | Window, path: string): any => {
|
||||
const paths: string[] = path.split('.');
|
||||
let obj: any = element;
|
||||
for (let i: number = 0; i < paths.length; i++) {
|
||||
if (!obj) { return null; }
|
||||
obj = obj[path[i]];
|
||||
obj = obj[paths[i]];
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
export function getPromise(cb) {
|
||||
export const getPromise = (callback: Function): Promise<any> => {
|
||||
|
||||
const tryNativePromise = () => {
|
||||
if (window.Promise) {
|
||||
return new Promise((resolve, reject) => {
|
||||
cb(resolve, reject);
|
||||
callback(resolve, reject);
|
||||
});
|
||||
} else {
|
||||
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.');
|
||||
@ -29,21 +30,21 @@ export function getPromise(cb) {
|
||||
};
|
||||
|
||||
return tryNativePromise();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @param pluginRef
|
||||
* @returns {null|*}
|
||||
*/
|
||||
export function getPlugin(pluginRef: string): any {
|
||||
export const getPlugin = (pluginRef: string): any => {
|
||||
return get(window, pluginRef);
|
||||
};
|
||||
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
export const pluginWarn = function(pluginName: string, plugin?: string, method?: string) {
|
||||
export const pluginWarn = (pluginName: string, plugin?: string, method?: string): void => {
|
||||
if (method) {
|
||||
console.warn('Native: tried calling ' + pluginName + '.' + method + ', but the ' + pluginName + ' plugin is not installed.');
|
||||
} else {
|
||||
@ -59,7 +60,7 @@ export const pluginWarn = function(pluginName: string, plugin?: string, method?:
|
||||
* @param pluginName
|
||||
* @param method
|
||||
*/
|
||||
export const cordovaWarn = function(pluginName: string, method?: string) {
|
||||
export const cordovaWarn = (pluginName: string, method?: string): void => {
|
||||
if (method) {
|
||||
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 {
|
||||
|
@ -69,7 +69,7 @@ export interface AdMobFreeRewardVideoConfig {
|
||||
* @description
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { AdMobFree, AdMobFreeBannerConfig } from '@ionic-native/admob-free';
|
||||
*
|
||||
*
|
||||
|
@ -95,9 +95,10 @@ export interface AdExtras {
|
||||
* Plugin for Google Ads, including AdMob / DFP (doubleclick for publisher) and mediations to other Ad networks.
|
||||
* @usage
|
||||
* ```typescript
|
||||
* import { AdMob, AdMobOptions, AdSize, AdExtras } from '@ionic-native/admob';
|
||||
* import { AdMob } from '@ionic-native/admob';
|
||||
* import { Platform } from 'ionic-angular';
|
||||
*
|
||||
* constructor(private admob: AdMob){}
|
||||
* constructor(private admob: AdMob, private platform: Platform ) { }
|
||||
*
|
||||
* ionViewDidLoad() {
|
||||
* this.admob.onAdDismiss()
|
||||
@ -105,7 +106,13 @@ export interface AdExtras {
|
||||
* }
|
||||
*
|
||||
* onClick() {
|
||||
* this.admob.prepareInterstitial('YOUR_ADID')
|
||||
* let adId;
|
||||
* if(this.platform.is('android')) {
|
||||
* adId = 'YOUR_ADID_ANDROID';
|
||||
* } else if (this.platform.is('ios')) {
|
||||
* adId = 'YOUR_ADID_IOS';
|
||||
* }
|
||||
* this.admob.prepareInterstitial({adId: adId})
|
||||
* .then(() => { this.admob.showInterstitial(); });
|
||||
* }
|
||||
*
|
||||
|
@ -1,6 +1,8 @@
|
||||
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
|
||||
|
||||
export interface AlipayOrder {
|
||||
/**
|
||||
* appId assigned by Alipay
|
||||
@ -67,7 +69,7 @@ export interface AlipayOrder {
|
||||
* Requires Cordova plugin: `cordova-alipay-base`. For more info, please see the [Alipay plugin docs](https://github.com/xueron/cordova-alipay-base).
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { Alipay, AlipayOrder } from '@ionic-native/alipay';
|
||||
*
|
||||
* constructor(private alipay: Alipay) {
|
||||
@ -112,4 +114,3 @@ export class Alipay extends IonicNativePlugin {
|
||||
@Cordova()
|
||||
pay(order: AlipayOrder): Promise<any> { return; }
|
||||
}
|
||||
|
||||
|
@ -102,7 +102,7 @@ export interface AFAEncryptResponse {
|
||||
* 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, AFAAuthOptions } from '@ionic-native/android-fingerprint-auth';
|
||||
* import { AndroidFingerprintAuth } from '@ionic-native/android-fingerprint-auth';
|
||||
*
|
||||
* constructor(private androidFingerprintAuth: AndroidFingerprintAuth) { }
|
||||
*
|
||||
@ -114,18 +114,18 @@ export interface AFAEncryptResponse {
|
||||
* if(result.isAvailable){
|
||||
* // it is available
|
||||
*
|
||||
* this.androidFingerprintAuth.encrypt({ clientId: "myAppName", username: "myUsername", password: "myPassword" })
|
||||
* this.androidFingerprintAuth.encrypt({ clientId: 'myAppName', username: 'myUsername', password: 'myPassword' })
|
||||
* .then(result => {
|
||||
* if (result.withFingerprint) {
|
||||
* console.log("Successfully encrypted credentials.");
|
||||
* console.log("Encrypted credentials: " + result.token);
|
||||
* console.log('Successfully encrypted credentials.');
|
||||
* console.log('Encrypted credentials: ' + result.token);
|
||||
* } else if (result.withBackup) {
|
||||
* console.log('Successfully authenticated with backup password!');
|
||||
* } else console.log('Didn\'t authenticate!');
|
||||
* })
|
||||
* .catch(error => {
|
||||
* if (error === "Cancelled") {
|
||||
* console.log("Fingerprint authentication cancelled");
|
||||
* if (error === this.androidFingerprintAuth.ERRORS.FINGERPRINT_CANCELLED) {
|
||||
* console.log('Fingerprint authentication cancelled');
|
||||
* } else console.error(error)
|
||||
* });
|
||||
*
|
||||
@ -150,13 +150,26 @@ export interface AFAEncryptResponse {
|
||||
@Injectable()
|
||||
export class AndroidFingerprintAuth extends IonicNativePlugin {
|
||||
|
||||
/**
|
||||
* Opens a native dialog fragment to use the device hardware fingerprint scanner to authenticate against fingerprints registered for the device.
|
||||
* @param options {AFAAuthOptions} Options
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
encrypt(options: AFAAuthOptions): Promise<AFAEncryptResponse> {return; }
|
||||
ERRORS: {
|
||||
BAD_PADDING_EXCEPTION: 'BAD_PADDING_EXCEPTION',
|
||||
CERTIFICATE_EXCEPTION: 'CERTIFICATE_EXCEPTION',
|
||||
FINGERPRINT_CANCELLED: 'FINGERPRINT_CANCELLED',
|
||||
FINGERPRINT_DATA_NOT_DELETED: 'FINGERPRINT_DATA_NOT_DELETED',
|
||||
FINGERPRINT_ERROR: 'FINGERPRINT_ERROR',
|
||||
FINGERPRINT_NOT_AVAILABLE: 'FINGERPRINT_NOT_AVAILABLE',
|
||||
FINGERPRINT_PERMISSION_DENIED: 'FINGERPRINT_PERMISSION_DENIED',
|
||||
FINGERPRINT_PERMISSION_DENIED_SHOW_REQUEST: 'FINGERPRINT_PERMISSION_DENIED_SHOW_REQUEST',
|
||||
ILLEGAL_BLOCK_SIZE_EXCEPTION: 'ILLEGAL_BLOCK_SIZE_EXCEPTION',
|
||||
INIT_CIPHER_FAILED: 'INIT_CIPHER_FAILED',
|
||||
INVALID_ALGORITHM_PARAMETER_EXCEPTION: 'INVALID_ALGORITHM_PARAMETER_EXCEPTION',
|
||||
IO_EXCEPTION: 'IO_EXCEPTION',
|
||||
JSON_EXCEPTION: 'JSON_EXCEPTION',
|
||||
MINIMUM_SDK: 'MINIMUM_SDK',
|
||||
MISSING_ACTION_PARAMETERS: 'MISSING_ACTION_PARAMETERS',
|
||||
MISSING_PARAMETERS: 'MISSING_PARAMETERS',
|
||||
NO_SUCH_ALGORITHM_EXCEPTION: 'NO_SUCH_ALGORITHM_EXCEPTION',
|
||||
SECURITY_EXCEPTION: 'SECURITY_EXCEPTION'
|
||||
};
|
||||
|
||||
/**
|
||||
* Opens a native dialog fragment to use the device hardware fingerprint scanner to authenticate against fingerprints registered for the device.
|
||||
@ -164,19 +177,27 @@ export class AndroidFingerprintAuth extends IonicNativePlugin {
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
decrypt(options: AFAAuthOptions): Promise<AFADecryptOptions> {return; }
|
||||
encrypt(options: AFAAuthOptions): Promise<AFAEncryptResponse> { return; }
|
||||
|
||||
/**
|
||||
* Opens a native dialog fragment to use the device hardware fingerprint scanner to authenticate against fingerprints registered for the device.
|
||||
* @param options {AFAAuthOptions} Options
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
decrypt(options: AFAAuthOptions): Promise<AFADecryptOptions> { return; }
|
||||
|
||||
/**
|
||||
* Check if service is available
|
||||
* @returns {Promise<any>} Returns a Promise that resolves if fingerprint auth is available on the device
|
||||
*/
|
||||
@Cordova()
|
||||
isAvailable(): Promise<{isAvailable: boolean}> { return; }
|
||||
isAvailable(): Promise<{ isAvailable: boolean }> { return; }
|
||||
|
||||
/**
|
||||
* Delete the cipher used for encryption and decryption by username
|
||||
* @returns {Promise<any>} Returns a Promise that resolves if the cipher was successfully deleted
|
||||
*/
|
||||
@Cordova()
|
||||
delete(options: {clientId: string; username: string; }): Promise<{deleted: boolean}> { return; }
|
||||
delete(options: { clientId: string; username: string; }): Promise<{ deleted: boolean }> { return; }
|
||||
}
|
||||
|
226
src/@ionic-native/plugins/android-permissions/index.ts
Normal file
226
src/@ionic-native/plugins/android-permissions/index.ts
Normal file
@ -0,0 +1,226 @@
|
||||
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
/**
|
||||
* @name Android Permissions
|
||||
* @description
|
||||
* This plugin is designed to support Android new permissions checking mechanism.
|
||||
*
|
||||
* You can find all permissions here: https://developer.android.com/reference/android/Manifest.permission.html
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* import { AndroidPermissions } from '@ionic-native/android-permissions';
|
||||
*
|
||||
*
|
||||
* constructor(private androidPermissions: AndroidPermissions) { }
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.CAMERA).then(
|
||||
* success => console.log('Permission granted'),
|
||||
* err => this.androidPermissions.requestPermissions(this.androidPermissions.PERMISSION.CAMERA)
|
||||
* );
|
||||
*
|
||||
* this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.CAMERA, this.androidPermissions.PERMISSION.GET_ACCOUNTS]);
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: 'AndroidPermissions',
|
||||
plugin: 'cordova-plugin-android-permissions',
|
||||
pluginRef: 'cordova.plugins.permissions',
|
||||
repo: 'https://github.com/NeoLSN/cordova-plugin-android-permissions',
|
||||
platforms: ['Android']
|
||||
})
|
||||
@Injectable()
|
||||
export class AndroidPermissions extends IonicNativePlugin {
|
||||
|
||||
PERMISSION: any = {
|
||||
ACCESS_CHECKIN_PROPERTIES: 'android.permission.ACCESS_CHECKIN_PROPERTIES',
|
||||
ACCESS_COARSE_LOCATION: 'android.permission.ACCESS_COARSE_LOCATION',
|
||||
ACCESS_FINE_LOCATION: 'android.permission.ACCESS_FINE_LOCATION',
|
||||
ACCESS_LOCATION_EXTRA_COMMANDS: 'android.permission.ACCESS_LOCATION_EXTRA_COMMANDS',
|
||||
ACCESS_MOCK_LOCATION: 'android.permission.ACCESS_MOCK_LOCATION',
|
||||
ACCESS_NETWORK_STATE: 'android.permission.ACCESS_NETWORK_STATE',
|
||||
ACCESS_SURFACE_FLINGER: 'android.permission.ACCESS_SURFACE_FLINGER',
|
||||
ACCESS_WIFI_STATE: 'android.permission.ACCESS_WIFI_STATE',
|
||||
ACCOUNT_MANAGER: 'android.permission.ACCOUNT_MANAGER',
|
||||
ADD_VOICEMAIL: 'com.android.voicemail.permission.ADD_VOICEMAIL',
|
||||
AUTHENTICATE_ACCOUNTS: 'android.permission.AUTHENTICATE_ACCOUNTS',
|
||||
BATTERY_STATS: 'android.permission.BATTERY_STATS',
|
||||
BIND_ACCESSIBILITY_SERVICE: 'android.permission.BIND_ACCESSIBILITY_SERVICE',
|
||||
BIND_APPWIDGET: 'android.permission.BIND_APPWIDGET',
|
||||
BIND_CARRIER_MESSAGING_SERVICE: 'android.permission.BIND_CARRIER_MESSAGING_SERVICE',
|
||||
BIND_DEVICE_ADMIN: 'android.permission.BIND_DEVICE_ADMIN',
|
||||
BIND_DREAM_SERVICE: 'android.permission.BIND_DREAM_SERVICE',
|
||||
BIND_INPUT_METHOD: 'android.permission.BIND_INPUT_METHOD',
|
||||
BIND_NFC_SERVICE: 'android.permission.BIND_NFC_SERVICE',
|
||||
BIND_NOTIFICATION_LISTENER_SERVICE: 'android.permission.BIND_NOTIFICATION_LISTENER_SERVICE',
|
||||
BIND_PRINT_SERVICE: 'android.permission.BIND_PRINT_SERVICE',
|
||||
BIND_REMOTEVIEWS: 'android.permission.BIND_REMOTEVIEWS',
|
||||
BIND_TEXT_SERVICE: 'android.permission.BIND_TEXT_SERVICE',
|
||||
BIND_TV_INPUT: 'android.permission.BIND_TV_INPUT',
|
||||
BIND_VOICE_INTERACTION: 'android.permission.BIND_VOICE_INTERACTION',
|
||||
BIND_VPN_SERVICE: 'android.permission.BIND_VPN_SERVICE',
|
||||
BIND_WALLPAPER: 'android.permission.BIND_WALLPAPER',
|
||||
BLUETOOTH: 'android.permission.BLUETOOTH',
|
||||
BLUETOOTH_ADMIN: 'android.permission.BLUETOOTH_ADMIN',
|
||||
BLUETOOTH_PRIVILEGED: 'android.permission.BLUETOOTH_PRIVILEGED',
|
||||
BODY_SENSORS: 'android.permission.BODY_SENSORS',
|
||||
BRICK: 'android.permission.BRICK',
|
||||
BROADCAST_PACKAGE_REMOVED: 'android.permission.BROADCAST_PACKAGE_REMOVED',
|
||||
BROADCAST_SMS: 'android.permission.BROADCAST_SMS',
|
||||
BROADCAST_STICKY: 'android.permission.BROADCAST_STICKY',
|
||||
BROADCAST_WAP_PUSH: 'android.permission.BROADCAST_WAP_PUSH',
|
||||
CALL_PHONE: 'android.permission.CALL_PHONE',
|
||||
CALL_PRIVILEGED: 'android.permission.CALL_PRIVILEGED',
|
||||
CAMERA: 'android.permission.CAMERA',
|
||||
CAPTURE_AUDIO_OUTPUT: 'android.permission.CAPTURE_AUDIO_OUTPUT',
|
||||
CAPTURE_SECURE_VIDEO_OUTPUT: 'android.permission.CAPTURE_SECURE_VIDEO_OUTPUT',
|
||||
CAPTURE_VIDEO_OUTPUT: 'android.permission.CAPTURE_VIDEO_OUTPUT',
|
||||
CHANGE_COMPONENT_ENABLED_STATE: 'android.permission.CHANGE_COMPONENT_ENABLED_STATE',
|
||||
CHANGE_CONFIGURATION: 'android.permission.CHANGE_CONFIGURATION',
|
||||
CHANGE_NETWORK_STATE: 'android.permission.CHANGE_NETWORK_STATE',
|
||||
CHANGE_WIFI_MULTICAST_STATE: 'android.permission.CHANGE_WIFI_MULTICAST_STATE',
|
||||
CHANGE_WIFI_STATE: 'android.permission.CHANGE_WIFI_STATE',
|
||||
CLEAR_APP_CACHE: 'android.permission.CLEAR_APP_CACHE',
|
||||
CLEAR_APP_USER_DATA: 'android.permission.CLEAR_APP_USER_DATA',
|
||||
CONTROL_LOCATION_UPDATES: 'android.permission.CONTROL_LOCATION_UPDATES',
|
||||
DELETE_CACHE_FILES: 'android.permission.DELETE_CACHE_FILES',
|
||||
DELETE_PACKAGES: 'android.permission.DELETE_PACKAGES',
|
||||
DEVICE_POWER: 'android.permission.DEVICE_POWER',
|
||||
DIAGNOSTIC: 'android.permission.DIAGNOSTIC',
|
||||
DISABLE_KEYGUARD: 'android.permission.DISABLE_KEYGUARD',
|
||||
DUMP: 'android.permission.DUMP',
|
||||
EXPAND_STATUS_BAR: 'android.permission.EXPAND_STATUS_BAR',
|
||||
FACTORY_TEST: 'android.permission.FACTORY_TEST',
|
||||
FLASHLIGHT: 'android.permission.FLASHLIGHT',
|
||||
FORCE_BACK: 'android.permission.FORCE_BACK',
|
||||
GET_ACCOUNTS: 'android.permission.GET_ACCOUNTS',
|
||||
GET_PACKAGE_SIZE: 'android.permission.GET_PACKAGE_SIZE',
|
||||
GET_TASKS: 'android.permission.GET_TASKS',
|
||||
GET_TOP_ACTIVITY_INFO: 'android.permission.GET_TOP_ACTIVITY_INFO',
|
||||
GLOBAL_SEARCH: 'android.permission.GLOBAL_SEARCH',
|
||||
HARDWARE_TEST: 'android.permission.HARDWARE_TEST',
|
||||
INJECT_EVENTS: 'android.permission.INJECT_EVENTS',
|
||||
INSTALL_LOCATION_PROVIDER: 'android.permission.INSTALL_LOCATION_PROVIDER',
|
||||
INSTALL_PACKAGES: 'android.permission.INSTALL_PACKAGES',
|
||||
INSTALL_SHORTCUT: 'com.android.launcher.permission.INSTALL_SHORTCUT',
|
||||
INTERNAL_SYSTEM_WINDOW: 'android.permission.INTERNAL_SYSTEM_WINDOW',
|
||||
INTERNET: 'android.permission.INTERNET',
|
||||
KILL_BACKGROUND_PROCESSES: 'android.permission.KILL_BACKGROUND_PROCESSES',
|
||||
LOCATION_HARDWARE: 'android.permission.LOCATION_HARDWARE',
|
||||
MANAGE_ACCOUNTS: 'android.permission.MANAGE_ACCOUNTS',
|
||||
MANAGE_APP_TOKENS: 'android.permission.MANAGE_APP_TOKENS',
|
||||
MANAGE_DOCUMENTS: 'android.permission.MANAGE_DOCUMENTS',
|
||||
MASTER_CLEAR: 'android.permission.MASTER_CLEAR',
|
||||
MEDIA_CONTENT_CONTROL: 'android.permission.MEDIA_CONTENT_CONTROL',
|
||||
MODIFY_AUDIO_SETTINGS: 'android.permission.MODIFY_AUDIO_SETTINGS',
|
||||
MODIFY_PHONE_STATE: 'android.permission.MODIFY_PHONE_STATE',
|
||||
MOUNT_FORMAT_FILESYSTEMS: 'android.permission.MOUNT_FORMAT_FILESYSTEMS',
|
||||
MOUNT_UNMOUNT_FILESYSTEMS: 'android.permission.MOUNT_UNMOUNT_FILESYSTEMS',
|
||||
NFC: 'android.permission.NFC',
|
||||
PERSISTENT_ACTIVITY: 'android.permission.PERSISTENT_ACTIVITY',
|
||||
PROCESS_OUTGOING_CALLS: 'android.permission.PROCESS_OUTGOING_CALLS',
|
||||
READ_CALENDAR: 'android.permission.READ_CALENDAR',
|
||||
READ_CALL_LOG: 'android.permission.READ_CALL_LOG',
|
||||
READ_CONTACTS: 'android.permission.READ_CONTACTS',
|
||||
READ_EXTERNAL_STORAGE: 'android.permission.READ_EXTERNAL_STORAGE',
|
||||
READ_FRAME_BUFFER: 'android.permission.READ_FRAME_BUFFER',
|
||||
READ_HISTORY_BOOKMARKS: 'com.android.browser.permission.READ_HISTORY_BOOKMARKS',
|
||||
READ_INPUT_STATE: 'android.permission.READ_INPUT_STATE',
|
||||
READ_LOGS: 'android.permission.READ_LOGS',
|
||||
READ_PHONE_STATE: 'android.permission.READ_PHONE_STATE',
|
||||
READ_PROFILE: 'android.permission.READ_PROFILE',
|
||||
READ_SMS: 'android.permission.READ_SMS',
|
||||
READ_SOCIAL_STREAM: 'android.permission.READ_SOCIAL_STREAM',
|
||||
READ_SYNC_SETTINGS: 'android.permission.READ_SYNC_SETTINGS',
|
||||
READ_SYNC_STATS: 'android.permission.READ_SYNC_STATS',
|
||||
READ_USER_DICTIONARY: 'android.permission.READ_USER_DICTIONARY',
|
||||
READ_VOICEMAIL: 'com.android.voicemail.permission.READ_VOICEMAIL',
|
||||
REBOOT: 'android.permission.REBOOT',
|
||||
RECEIVE_BOOT_COMPLETED: 'android.permission.RECEIVE_BOOT_COMPLETED',
|
||||
RECEIVE_MMS: 'android.permission.RECEIVE_MMS',
|
||||
RECEIVE_SMS: 'android.permission.RECEIVE_SMS',
|
||||
RECEIVE_WAP_PUSH: 'android.permission.RECEIVE_WAP_PUSH',
|
||||
RECORD_AUDIO: 'android.permission.RECORD_AUDIO',
|
||||
REORDER_TASKS: 'android.permission.REORDER_TASKS',
|
||||
RESTART_PACKAGES: 'android.permission.RESTART_PACKAGES',
|
||||
SEND_RESPOND_VIA_MESSAGE: 'android.permission.SEND_RESPOND_VIA_MESSAGE',
|
||||
SEND_SMS: 'android.permission.SEND_SMS',
|
||||
SET_ACTIVITY_WATCHER: 'android.permission.SET_ACTIVITY_WATCHER',
|
||||
SET_ALARM: 'com.android.alarm.permission.SET_ALARM',
|
||||
SET_ALWAYS_FINISH: 'android.permission.SET_ALWAYS_FINISH',
|
||||
SET_ANIMATION_SCALE: 'android.permission.SET_ANIMATION_SCALE',
|
||||
SET_DEBUG_APP: 'android.permission.SET_DEBUG_APP',
|
||||
SET_ORIENTATION: 'android.permission.SET_ORIENTATION',
|
||||
SET_POINTER_SPEED: 'android.permission.SET_POINTER_SPEED',
|
||||
SET_PREFERRED_APPLICATIONS: 'android.permission.SET_PREFERRED_APPLICATIONS',
|
||||
SET_PROCESS_LIMIT: 'android.permission.SET_PROCESS_LIMIT',
|
||||
SET_TIME: 'android.permission.SET_TIME',
|
||||
SET_TIME_ZONE: 'android.permission.SET_TIME_ZONE',
|
||||
SET_WALLPAPER: 'android.permission.SET_WALLPAPER',
|
||||
SET_WALLPAPER_HINTS: 'android.permission.SET_WALLPAPER_HINTS',
|
||||
SIGNAL_PERSISTENT_PROCESSES: 'android.permission.SIGNAL_PERSISTENT_PROCESSES',
|
||||
STATUS_BAR: 'android.permission.STATUS_BAR',
|
||||
SUBSCRIBED_FEEDS_READ: 'android.permission.SUBSCRIBED_FEEDS_READ',
|
||||
SUBSCRIBED_FEEDS_WRITE: 'android.permission.SUBSCRIBED_FEEDS_WRITE',
|
||||
SYSTEM_ALERT_WINDOW: 'android.permission.SYSTEM_ALERT_WINDOW',
|
||||
TRANSMIT_IR: 'android.permission.TRANSMIT_IR',
|
||||
UNINSTALL_SHORTCUT: 'com.android.launcher.permission.UNINSTALL_SHORTCUT',
|
||||
UPDATE_DEVICE_STATS: 'android.permission.UPDATE_DEVICE_STATS',
|
||||
USE_CREDENTIALS: 'android.permission.USE_CREDENTIALS',
|
||||
USE_SIP: 'android.permission.USE_SIP',
|
||||
VIBRATE: 'android.permission.VIBRATE',
|
||||
WAKE_LOCK: 'android.permission.WAKE_LOCK',
|
||||
WRITE_APN_SETTINGS: 'android.permission.WRITE_APN_SETTINGS',
|
||||
WRITE_CALENDAR: 'android.permission.WRITE_CALENDAR',
|
||||
WRITE_CALL_LOG: 'android.permission.WRITE_CALL_LOG',
|
||||
WRITE_CONTACTS: 'android.permission.WRITE_CONTACTS',
|
||||
WRITE_EXTERNAL_STORAGE: 'android.permission.WRITE_EXTERNAL_STORAGE',
|
||||
WRITE_GSERVICES: 'android.permission.WRITE_GSERVICES',
|
||||
WRITE_HISTORY_BOOKMARKS: 'com.android.browser.permission.WRITE_HISTORY_BOOKMARKS',
|
||||
WRITE_PROFILE: 'android.permission.WRITE_PROFILE',
|
||||
WRITE_SECURE_SETTINGS: 'android.permission.WRITE_SECURE_SETTINGS',
|
||||
WRITE_SETTINGS: 'android.permission.WRITE_SETTINGS',
|
||||
WRITE_SMS: 'android.permission.WRITE_SMS',
|
||||
WRITE_SOCIAL_STREAM: 'android.permission.WRITE_SOCIAL_STREAM',
|
||||
WRITE_SYNC_SETTINGS: 'android.permission.WRITE_SYNC_SETTINGS',
|
||||
WRITE_USER_DICTIONARY: 'android.permission.WRITE_USER_DICTIONARY',
|
||||
WRITE_VOICEMAIL: 'com.android.voicemail.permission.WRITE_VOICEMAIL',
|
||||
};
|
||||
|
||||
/**
|
||||
* Check permission
|
||||
* @param permission {string} The name of the permission
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
checkPermission(permission: string): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Request permission
|
||||
* @param permission {string} The name of the permission to request
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
requestPermission(permission: string): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Request permissions
|
||||
* @param permissions {Array<Sstring>} An array with permissions
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
requestPermissions(permissions: string[]): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* This function still works now, will not support in the future.
|
||||
* @param permission {string} The name of the permission
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
hasPermission(permission: string): Promise<any> { return; }
|
||||
|
||||
}
|
42
src/@ionic-native/plugins/app-minimize/index.ts
Normal file
42
src/@ionic-native/plugins/app-minimize/index.ts
Normal file
@ -0,0 +1,42 @@
|
||||
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
/**
|
||||
* @name App Minimize
|
||||
* @description
|
||||
* AppMinimize is a plugin to minimize the application on android devices
|
||||
*
|
||||
* @usage
|
||||
* ```typescript
|
||||
* import { AppMinimize } from '@ionic-native/app-minimize';
|
||||
*
|
||||
*
|
||||
* constructor(private appMinimize: AppMinimize) { }
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* this.plugin.minimize().then(
|
||||
* success => console.log('Closed'),
|
||||
* err => console.log('Something went wrong')
|
||||
* );
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: 'AppMinimize',
|
||||
plugin: 'https://github.com/tomloprod/cordova-plugin-appminimize.git',
|
||||
pluginRef: 'plugins.appMinimize',
|
||||
repo: 'https://github.com/tomloprod/cordova-plugin-appminimize',
|
||||
platforms: ['Android']
|
||||
})
|
||||
@Injectable()
|
||||
export class AppMinimize extends IonicNativePlugin {
|
||||
|
||||
/**
|
||||
* Minimizes the application
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
minimize(): Promise<any> { return; }
|
||||
|
||||
}
|
@ -11,11 +11,12 @@ import { Injectable } from '@angular/core';
|
||||
* ```typescript
|
||||
* import { AppPreferences } from '@ionic-native/app-preferences';
|
||||
*
|
||||
* constructor(private appPreferences: AppPreferences) {
|
||||
* constructor(private appPreferences: AppPreferences) { }
|
||||
*
|
||||
* this.appPreferences.fetch('key').then((res) => { console.log(res); });
|
||||
* ...
|
||||
*
|
||||
* this.appPreferences.fetch('key').then((res) => { console.log(res); });
|
||||
*
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
*/
|
||||
@ -46,13 +47,13 @@ export class AppPreferences extends IonicNativePlugin {
|
||||
*
|
||||
* @param {string} dict Dictionary for key (OPTIONAL)
|
||||
* @param {string} key Key
|
||||
* @param {string} value Value
|
||||
* @param {any} value Value
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova({
|
||||
callbackOrder: 'reverse'
|
||||
})
|
||||
store(dict: string, key: string, value?: string): Promise<any> {
|
||||
store(dict: string, key: string, value?: any): Promise<any> {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1,9 +1,6 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Cordova, CordovaProperty, Plugin, IonicNativePlugin } from '@ionic-native/core';
|
||||
|
||||
|
||||
declare var window;
|
||||
|
||||
export interface AppRatePreferences {
|
||||
|
||||
/**
|
||||
@ -110,12 +107,24 @@ export interface AppUrls {
|
||||
* constructor(private appRate: AppRate) { }
|
||||
*
|
||||
* ...
|
||||
* // set certain preferences
|
||||
* this.appRate.preferences.storeAppURL = {
|
||||
* ios: '<app_id>',
|
||||
* android: 'market://details?id=<package_name>',
|
||||
* windows: 'ms-windows-store://review/?ProductId=<store_id>'
|
||||
* };
|
||||
*
|
||||
* this.appRate.preferences.storeAppURL = {
|
||||
* ios: '<my_app_id>',
|
||||
* this.appRate.promptForRating(true);
|
||||
*
|
||||
* // or, override the whole preferences object
|
||||
* this.appRate.preferences = {
|
||||
* usesUntilPrompt: 3,
|
||||
* storeAppURL: {
|
||||
* ios: '<app_id>',
|
||||
* android: 'market://details?id=<package_name>',
|
||||
* windows: 'ms-windows-store://review/?ProductId=<Store_ID>'
|
||||
* };
|
||||
* windows: 'ms-windows-store://review/?ProductId=<store_id>'
|
||||
* }
|
||||
* };
|
||||
*
|
||||
* this.appRate.promptForRating(false);
|
||||
* ```
|
||||
|
@ -19,7 +19,7 @@ import { Injectable } from '@angular/core';
|
||||
*
|
||||
* Then use the following code:
|
||||
*
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { AppUpdate } from '@ionic-native/app-update';
|
||||
*
|
||||
* constructor(private appUpdate: AppUpdate) {
|
||||
@ -28,8 +28,6 @@ import { Injectable } from '@angular/core';
|
||||
* this.appUpdate.checkAppUpdate(updateUrl);
|
||||
*
|
||||
* }
|
||||
*
|
||||
*
|
||||
* ```
|
||||
*
|
||||
* The plugin will compare the app version and update it automatically if the API has a newer version to install.
|
||||
@ -53,4 +51,3 @@ export class AppUpdate extends IonicNativePlugin {
|
||||
})
|
||||
checkAppUpdate(updateUrl: string): Promise<any> { return; }
|
||||
}
|
||||
|
||||
|
@ -8,7 +8,7 @@ import { Injectable } from '@angular/core';
|
||||
* Plugin to serve ads through native Appodeal SDKs
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { Appodeal } from '@ionic-native/appodeal';
|
||||
*
|
||||
* constructor(private appodeal: Appodeal) {
|
||||
@ -18,9 +18,6 @@ import { Injectable } from '@angular/core';
|
||||
* appodeal.show(appodeal.AD_TYPES.REWARDED_VIDEO);
|
||||
*
|
||||
* }
|
||||
*
|
||||
*
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
@Plugin({
|
||||
@ -28,7 +25,7 @@ import { Injectable } from '@angular/core';
|
||||
plugin: 'https://github.com/appodeal/appodeal-cordova-plugin',
|
||||
pluginRef: 'Appodeal',
|
||||
repo: 'https://github.com/appodeal/appodeal-cordova-plugin.git',
|
||||
platforms: [ 'iOS', 'Android' ]
|
||||
platforms: ['iOS', 'Android']
|
||||
})
|
||||
@Injectable()
|
||||
export class Appodeal extends IonicNativePlugin {
|
||||
@ -49,7 +46,7 @@ export class Appodeal extends IonicNativePlugin {
|
||||
* @param {number} adType
|
||||
*/
|
||||
@Cordova()
|
||||
initialize(appKey: string, adType: number): void {};
|
||||
initialize(appKey: string, adType: number): void { };
|
||||
|
||||
/**
|
||||
* check if SDK has been initialized
|
||||
@ -76,21 +73,21 @@ export class Appodeal extends IonicNativePlugin {
|
||||
showWithPlacement(
|
||||
adType: number,
|
||||
placement: any
|
||||
): Promise<any> { return; };
|
||||
): Promise<any> { return; };
|
||||
|
||||
/**
|
||||
* hide ad of specified type
|
||||
* @param {number} adType
|
||||
*/
|
||||
@Cordova()
|
||||
hide(adType: number): void {};
|
||||
hide(adType: number): void { };
|
||||
|
||||
/**
|
||||
* confirm use of ads of specified type
|
||||
* @param {number} adType
|
||||
*/
|
||||
@Cordova()
|
||||
confirm(adType: number): void {};
|
||||
confirm(adType: number): void { };
|
||||
|
||||
/**
|
||||
* check if ad of specified type has been loaded
|
||||
@ -114,69 +111,69 @@ export class Appodeal extends IonicNativePlugin {
|
||||
* @param autoCache
|
||||
*/
|
||||
@Cordova()
|
||||
setAutoCache(adType: number, autoCache: any): void {};
|
||||
setAutoCache(adType: number, autoCache: any): void { };
|
||||
|
||||
/**
|
||||
* forcefully cache an ad by type
|
||||
* @param {number} adType
|
||||
*/
|
||||
@Cordova()
|
||||
cache(adType: number): void {};
|
||||
cache(adType: number): void { };
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {boolean} set
|
||||
*/
|
||||
@Cordova()
|
||||
setOnLoadedTriggerBoth(set: boolean): void {};
|
||||
setOnLoadedTriggerBoth(set: boolean): void { };
|
||||
|
||||
/**
|
||||
* enable or disable Smart Banners
|
||||
* @param {boolean} enabled
|
||||
*/
|
||||
@Cordova()
|
||||
setSmartBanners(enabled: boolean): void {};
|
||||
setSmartBanners(enabled: boolean): void { };
|
||||
|
||||
/**
|
||||
* enable or disable banner backgrounds
|
||||
* @param {boolean} enabled
|
||||
*/
|
||||
@Cordova()
|
||||
setBannerBackground(enabled: boolean): void {};
|
||||
setBannerBackground(enabled: boolean): void { };
|
||||
|
||||
/**
|
||||
* enable or disable banner animations
|
||||
* @param {boolean} enabled
|
||||
*/
|
||||
@Cordova()
|
||||
setBannerAnimation(enabled: boolean): void {};
|
||||
setBannerAnimation(enabled: boolean): void { };
|
||||
|
||||
/**
|
||||
*
|
||||
* @param value
|
||||
*/
|
||||
@Cordova()
|
||||
set728x90Banners(value: any): void {};
|
||||
set728x90Banners(value: any): void { };
|
||||
|
||||
/**
|
||||
* enable or disable logging
|
||||
* @param {boolean} logging
|
||||
*/
|
||||
@Cordova()
|
||||
setLogging(logging: boolean): void {};
|
||||
setLogging(logging: boolean): void { };
|
||||
|
||||
/**
|
||||
* enable or disable testing mode
|
||||
* @param {boolean} testing
|
||||
*/
|
||||
@Cordova()
|
||||
setTesting(testing: boolean): void {};
|
||||
setTesting(testing: boolean): void { };
|
||||
|
||||
/**
|
||||
* reset device ID
|
||||
*/
|
||||
@Cordova()
|
||||
resetUUID(): void {};
|
||||
resetUUID(): void { };
|
||||
|
||||
/**
|
||||
* get version of Appdeal SDK
|
||||
@ -190,7 +187,7 @@ export class Appodeal extends IonicNativePlugin {
|
||||
* @param {number} adType
|
||||
*/
|
||||
@Cordova()
|
||||
disableNetwork(network?: string, adType?: number): void {};
|
||||
disableNetwork(network?: string, adType?: number): void { };
|
||||
|
||||
/**
|
||||
*
|
||||
@ -198,54 +195,54 @@ export class Appodeal extends IonicNativePlugin {
|
||||
* @param {number} adType
|
||||
*/
|
||||
@Cordova()
|
||||
disableNetworkType(network?: string, adType?: number): void {};
|
||||
disableNetworkType(network?: string, adType?: number): void { };
|
||||
|
||||
/**
|
||||
* disable Location permissions for Appodeal SDK
|
||||
*/
|
||||
@Cordova()
|
||||
disableLocationPermissionCheck(): void {};
|
||||
disableLocationPermissionCheck(): void { };
|
||||
|
||||
/**
|
||||
* disable Storage permissions for Appodeal SDK
|
||||
*/
|
||||
@Cordova()
|
||||
disableWriteExternalStoragePermissionCheck(): void {};
|
||||
disableWriteExternalStoragePermissionCheck(): void { };
|
||||
|
||||
/**
|
||||
* enable event listeners
|
||||
* @param {boolean} enabled
|
||||
*/
|
||||
@Cordova()
|
||||
enableInterstitialCallbacks(enabled: boolean): void {};
|
||||
enableInterstitialCallbacks(enabled: boolean): void { };
|
||||
|
||||
/**
|
||||
* enable event listeners
|
||||
* @param {boolean} enabled
|
||||
*/
|
||||
@Cordova()
|
||||
enableSkippableVideoCallbacks(enabled: boolean): void {};
|
||||
enableSkippableVideoCallbacks(enabled: boolean): void { };
|
||||
|
||||
/**
|
||||
* enable event listeners
|
||||
* @param {boolean} enabled
|
||||
*/
|
||||
@Cordova()
|
||||
enableNonSkippableVideoCallbacks(enabled: boolean): void {};
|
||||
enableNonSkippableVideoCallbacks(enabled: boolean): void { };
|
||||
|
||||
/**
|
||||
* enable event listeners
|
||||
* @param {boolean} enabled
|
||||
*/
|
||||
@Cordova()
|
||||
enableBannerCallbacks(enabled: boolean): void {};
|
||||
enableBannerCallbacks(enabled: boolean): void { };
|
||||
|
||||
/**
|
||||
* enable event listeners
|
||||
* @param {boolean} enabled
|
||||
*/
|
||||
@Cordova()
|
||||
enableRewardedVideoCallbacks(enabled: boolean): void {};
|
||||
enableRewardedVideoCallbacks(enabled: boolean): void { };
|
||||
|
||||
/**
|
||||
*
|
||||
@ -253,7 +250,7 @@ export class Appodeal extends IonicNativePlugin {
|
||||
* @param {boolean} value
|
||||
*/
|
||||
@Cordova()
|
||||
setCustomBooleanRule(name: string, value: boolean): void {};
|
||||
setCustomBooleanRule(name: string, value: boolean): void { };
|
||||
|
||||
/**
|
||||
*
|
||||
@ -261,7 +258,7 @@ export class Appodeal extends IonicNativePlugin {
|
||||
* @param {number} value
|
||||
*/
|
||||
@Cordova()
|
||||
setCustomIntegerRule(name: string, value: number): void {};
|
||||
setCustomIntegerRule(name: string, value: number): void { };
|
||||
|
||||
/**
|
||||
* set rule with float value
|
||||
@ -269,7 +266,7 @@ export class Appodeal extends IonicNativePlugin {
|
||||
* @param {number} value
|
||||
*/
|
||||
@Cordova()
|
||||
setCustomDoubleRule(name: string, value: number): void {};
|
||||
setCustomDoubleRule(name: string, value: number): void { };
|
||||
|
||||
/**
|
||||
* set rule with string value
|
||||
@ -277,77 +274,77 @@ export class Appodeal extends IonicNativePlugin {
|
||||
* @param {string} value
|
||||
*/
|
||||
@Cordova()
|
||||
setCustomStringRule(name: string, value: string): void {};
|
||||
setCustomStringRule(name: string, value: string): void { };
|
||||
|
||||
/**
|
||||
* set ID preference in Appodeal for current user
|
||||
* @param id
|
||||
*/
|
||||
@Cordova()
|
||||
setUserId(id: any): void {};
|
||||
setUserId(id: any): void { };
|
||||
|
||||
/**
|
||||
* set Email preference in Appodeal for current user
|
||||
* @param email
|
||||
*/
|
||||
@Cordova()
|
||||
setEmail(email: any): void {};
|
||||
setEmail(email: any): void { };
|
||||
|
||||
/**
|
||||
* set Birthday preference in Appodeal for current user
|
||||
* @param birthday
|
||||
*/
|
||||
@Cordova()
|
||||
setBirthday(birthday: any): void {};
|
||||
setBirthday(birthday: any): void { };
|
||||
|
||||
/**
|
||||
* et Age preference in Appodeal for current user
|
||||
* @param age
|
||||
*/
|
||||
@Cordova()
|
||||
setAge(age: any): void {};
|
||||
setAge(age: any): void { };
|
||||
|
||||
/**
|
||||
* set Gender preference in Appodeal for current user
|
||||
* @param gender
|
||||
*/
|
||||
@Cordova()
|
||||
setGender(gender: any): void {};
|
||||
setGender(gender: any): void { };
|
||||
|
||||
/**
|
||||
* set Occupation preference in Appodeal for current user
|
||||
* @param occupation
|
||||
*/
|
||||
@Cordova()
|
||||
setOccupation(occupation: any): void {};
|
||||
setOccupation(occupation: any): void { };
|
||||
|
||||
/**
|
||||
* set Relation preference in Appodeal for current user
|
||||
* @param relation
|
||||
*/
|
||||
@Cordova()
|
||||
setRelation(relation: any): void {};
|
||||
setRelation(relation: any): void { };
|
||||
|
||||
/**
|
||||
* set Smoking preference in Appodeal for current user
|
||||
* @param smoking
|
||||
*/
|
||||
@Cordova()
|
||||
setSmoking(smoking: any): void {};
|
||||
setSmoking(smoking: any): void { };
|
||||
|
||||
/**
|
||||
* set Alcohol preference in Appodeal for current user
|
||||
* @param alcohol
|
||||
*/
|
||||
@Cordova()
|
||||
setAlcohol(alcohol: any): void {};
|
||||
setAlcohol(alcohol: any): void { };
|
||||
|
||||
/**
|
||||
* set Interests preference in Appodeal for current user
|
||||
* @param interests
|
||||
*/
|
||||
@Cordova()
|
||||
setInterests(interests: any): void {};
|
||||
setInterests(interests: any): void { };
|
||||
|
||||
@Cordova({
|
||||
eventObservable: true,
|
||||
|
47
src/@ionic-native/plugins/autostart/index.ts
Normal file
47
src/@ionic-native/plugins/autostart/index.ts
Normal file
@ -0,0 +1,47 @@
|
||||
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
/**
|
||||
* @name Autostart
|
||||
* @description
|
||||
* This plugin will start automatically your Android app after the every boot or the auto-update of your application.
|
||||
* You can enable or disable the autostart function in your app.
|
||||
*
|
||||
* @usage
|
||||
* ```typescript
|
||||
* import { Autostart } from '@ionic-native/autostart';
|
||||
*
|
||||
*
|
||||
* constructor(private autostart: Autostart) { }
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* this.autostart.enable();
|
||||
*
|
||||
* this.autostart.disable();
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: 'Autostart',
|
||||
plugin: 'cordova-plugin-autostart',
|
||||
pluginRef: 'cordova.plugins.autoStart',
|
||||
repo: 'https://github.com/ToniKorin/cordova-plugin-autostart',
|
||||
platforms: ['Android']
|
||||
})
|
||||
@Injectable()
|
||||
export class Autostart extends IonicNativePlugin {
|
||||
|
||||
/**
|
||||
* Enable the automatic startup after the boot
|
||||
*/
|
||||
@Cordova({ sync: true })
|
||||
enable(): void { }
|
||||
|
||||
/**
|
||||
* Disable the automatic startup after the boot
|
||||
*/
|
||||
@Cordova({ sync: true })
|
||||
disable(): void { }
|
||||
|
||||
}
|
@ -1,9 +1,6 @@
|
||||
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
declare var window;
|
||||
|
||||
|
||||
export interface BackgroundFetchConfig {
|
||||
|
||||
/**
|
||||
|
@ -2,8 +2,6 @@ import { Injectable } from '@angular/core';
|
||||
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
|
||||
declare var window;
|
||||
|
||||
export interface BackgroundGeolocationResponse {
|
||||
|
||||
/**
|
||||
@ -448,13 +446,13 @@ export class BackgroundGeolocation extends IonicNativePlugin {
|
||||
/**
|
||||
* Display app settings to change permissions
|
||||
*/
|
||||
@Cordova({sync: true})
|
||||
@Cordova({ sync: true })
|
||||
showAppSettings(): void { }
|
||||
|
||||
/**
|
||||
* Display device location settings
|
||||
*/
|
||||
@Cordova({sync: true})
|
||||
@Cordova({ sync: true })
|
||||
showLocationSettings(): void { }
|
||||
|
||||
/**
|
||||
|
@ -148,7 +148,16 @@ export class BackgroundMode extends IonicNativePlugin {
|
||||
platforms: ['Android'],
|
||||
sync: true
|
||||
})
|
||||
moveToBackground(): void {}
|
||||
moveToBackground(): void { }
|
||||
|
||||
/**
|
||||
* Enable GPS-tracking in background (Android).
|
||||
*/
|
||||
@Cordova({
|
||||
platforms: ['Android'],
|
||||
sync: true
|
||||
})
|
||||
disableWebViewOptimizations (): void { }
|
||||
|
||||
/**
|
||||
* Android allows to programmatically move from background to foreground.
|
||||
@ -157,7 +166,7 @@ export class BackgroundMode extends IonicNativePlugin {
|
||||
platforms: ['Android'],
|
||||
sync: true
|
||||
})
|
||||
moveToForeground(): void {}
|
||||
moveToForeground(): void { }
|
||||
|
||||
/**
|
||||
* Override the back button on Android to go to background instead of closing the app.
|
||||
@ -166,7 +175,7 @@ export class BackgroundMode extends IonicNativePlugin {
|
||||
platforms: ['Android'],
|
||||
sync: true
|
||||
})
|
||||
overrideBackButton(): void {}
|
||||
overrideBackButton(): void { }
|
||||
|
||||
/**
|
||||
* Exclude the app from the recent task list works on Android 5.0+.
|
||||
@ -175,7 +184,7 @@ export class BackgroundMode extends IonicNativePlugin {
|
||||
platforms: ['Android'],
|
||||
sync: true
|
||||
})
|
||||
excludeFromTaskList(): void {}
|
||||
excludeFromTaskList(): void { }
|
||||
|
||||
/**
|
||||
* The method works async instead of isActive() or isEnabled().
|
||||
@ -192,7 +201,7 @@ export class BackgroundMode extends IonicNativePlugin {
|
||||
platforms: ['Android'],
|
||||
sync: true
|
||||
})
|
||||
wakeUp(): void {}
|
||||
wakeUp(): void { }
|
||||
|
||||
/**
|
||||
* Turn screen on and show app even locked
|
||||
@ -201,6 +210,6 @@ export class BackgroundMode extends IonicNativePlugin {
|
||||
platforms: ['Android'],
|
||||
sync: true
|
||||
})
|
||||
unlock(): void {}
|
||||
unlock(): void { }
|
||||
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
* This plugin adds turning on/off the device backlight.
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { Backlight } from '@ionic-native/backlight';
|
||||
*
|
||||
* constructor(private backlight: Backlight) { }
|
||||
|
@ -1,7 +1,6 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
|
||||
|
||||
|
||||
export interface BarcodeScannerOptions {
|
||||
|
||||
/**
|
||||
@ -56,6 +55,12 @@ export interface BarcodeScannerOptions {
|
||||
|
||||
}
|
||||
|
||||
export interface BarcodeScanResult {
|
||||
format: 'QR_CODE' | 'DATA_MATRIX' | 'UPC_E' | 'UPC_A' | 'EAN_8' | 'EAN_13' | 'CODE_128' | 'CODE_39' | 'CODE_93' | 'CODABAR' | 'ITF' | 'RSS14' | 'RSS_EXPANDED' | 'PDF417' | 'AZTEC' | 'MSI';
|
||||
cancelled: boolean;
|
||||
text: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* @name Barcode Scanner
|
||||
* @description
|
||||
@ -80,6 +85,7 @@ export interface BarcodeScannerOptions {
|
||||
* ```
|
||||
* @interfaces
|
||||
* BarcodeScannerOptions
|
||||
* BarcodeScanResult
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: 'BarcodeScanner',
|
||||
@ -111,7 +117,7 @@ export class BarcodeScanner extends IonicNativePlugin {
|
||||
@Cordova({
|
||||
callbackOrder: 'reverse'
|
||||
})
|
||||
scan(options?: BarcodeScannerOptions): Promise<any> { return; }
|
||||
scan(options?: BarcodeScannerOptions): Promise<BarcodeScanResult> { return; }
|
||||
|
||||
/**
|
||||
* Encodes data into a barcode.
|
||||
|
@ -40,7 +40,7 @@ export class Base64ToGallery extends IonicNativePlugin {
|
||||
successIndex: 2,
|
||||
errorIndex: 3
|
||||
})
|
||||
base64ToGallery(data: string, options?: {prefix?: string; mediaScanner?: boolean}): Promise<any> {
|
||||
base64ToGallery(data: string, options?: { prefix?: string; mediaScanner?: boolean }): Promise<any> {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -35,59 +35,59 @@ import { Observable } from 'rxjs/Observable';
|
||||
*
|
||||
* ```typescript
|
||||
* {
|
||||
* "name": "Battery Demo",
|
||||
* "id": "20:FF:D0:FF:D1:C0",
|
||||
* "advertising": [2,1,6,3,3,15,24,8,9,66,97,116,116,101,114,121],
|
||||
* "rssi": -55
|
||||
* 'name': 'Battery Demo',
|
||||
* 'id': '20:FF:D0:FF:D1:C0',
|
||||
* 'advertising': [2,1,6,3,3,15,24,8,9,66,97,116,116,101,114,121],
|
||||
* 'rssi': -55
|
||||
* }
|
||||
* ```
|
||||
* After connecting, the peripheral object also includes service, characteristic and descriptor information.
|
||||
*
|
||||
* ```typescript
|
||||
* {
|
||||
* "name": "Battery Demo",
|
||||
* "id": "20:FF:D0:FF:D1:C0",
|
||||
* "advertising": [2,1,6,3,3,15,24,8,9,66,97,116,116,101,114,121],
|
||||
* "rssi": -55,
|
||||
* "services": [
|
||||
* "1800",
|
||||
* "1801",
|
||||
* "180f"
|
||||
* 'name': 'Battery Demo',
|
||||
* 'id': '20:FF:D0:FF:D1:C0',
|
||||
* 'advertising': [2,1,6,3,3,15,24,8,9,66,97,116,116,101,114,121],
|
||||
* 'rssi': -55,
|
||||
* 'services': [
|
||||
* '1800',
|
||||
* '1801',
|
||||
* '180f'
|
||||
* ],
|
||||
* "characteristics": [
|
||||
* 'characteristics': [
|
||||
* {
|
||||
* "service": "1800",
|
||||
* "characteristic": "2a00",
|
||||
* "properties": [
|
||||
* "Read"
|
||||
* 'service': '1800',
|
||||
* 'characteristic': '2a00',
|
||||
* 'properties': [
|
||||
* 'Read'
|
||||
* ]
|
||||
* },
|
||||
* {
|
||||
* "service": "1800",
|
||||
* "characteristic": "2a01",
|
||||
* "properties": [
|
||||
* "Read"
|
||||
* 'service': '1800',
|
||||
* 'characteristic': '2a01',
|
||||
* 'properties': [
|
||||
* 'Read'
|
||||
* ]
|
||||
* },
|
||||
* {
|
||||
* "service": "1801",
|
||||
* "characteristic": "2a05",
|
||||
* "properties": [
|
||||
* "Read"
|
||||
* 'service': '1801',
|
||||
* 'characteristic': '2a05',
|
||||
* 'properties': [
|
||||
* 'Read'
|
||||
* ]
|
||||
* },
|
||||
* {
|
||||
* "service": "180f",
|
||||
* "characteristic": "2a19",
|
||||
* "properties": [
|
||||
* "Read"
|
||||
* 'service': '180f',
|
||||
* 'characteristic': '2a19',
|
||||
* 'properties': [
|
||||
* 'Read'
|
||||
* ],
|
||||
* "descriptors": [
|
||||
* 'descriptors': [
|
||||
* {
|
||||
* "uuid": "2901"
|
||||
* 'uuid': '2901'
|
||||
* },
|
||||
* {
|
||||
* "uuid": "2904"
|
||||
* 'uuid': '2904'
|
||||
* }
|
||||
* ]
|
||||
* }
|
||||
@ -104,10 +104,10 @@ import { Observable } from 'rxjs/Observable';
|
||||
*
|
||||
* ```typescript
|
||||
* {
|
||||
* "name": "demo",
|
||||
* "id": "00:1A:7D:DA:71:13",
|
||||
* "advertising": ArrayBuffer,
|
||||
* "rssi": -37
|
||||
* 'name': 'demo',
|
||||
* 'id': '00:1A:7D:DA:71:13',
|
||||
* 'advertising': ArrayBuffer,
|
||||
* 'rssi': -37
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
@ -119,24 +119,24 @@ import { Observable } from 'rxjs/Observable';
|
||||
*
|
||||
* ```typescript
|
||||
* {
|
||||
* "name": "demo",
|
||||
* "id": "D8479A4F-7517-BCD3-91B5-3302B2F81802",
|
||||
* "advertising": {
|
||||
* "kCBAdvDataChannel": 37,
|
||||
* "kCBAdvDataServiceData": {
|
||||
* "FED8": {
|
||||
* "byteLength": 7 // data not shown
|
||||
* 'name': 'demo',
|
||||
* 'id': 'D8479A4F-7517-BCD3-91B5-3302B2F81802',
|
||||
* 'advertising': {
|
||||
* 'kCBAdvDataChannel': 37,
|
||||
* 'kCBAdvDataServiceData': {
|
||||
* 'FED8': {
|
||||
* 'byteLength': 7 // data not shown
|
||||
* }
|
||||
* },
|
||||
* "kCBAdvDataLocalName": "demo",
|
||||
* "kCBAdvDataServiceUUIDs": ["FED8"],
|
||||
* "kCBAdvDataManufacturerData": {
|
||||
* "byteLength": 7 // data not shown
|
||||
* 'kCBAdvDataLocalName': 'demo',
|
||||
* 'kCBAdvDataServiceUUIDs': ['FED8'],
|
||||
* 'kCBAdvDataManufacturerData': {
|
||||
* 'byteLength': 7 // data not shown
|
||||
* },
|
||||
* "kCBAdvDataTxPowerLevel": 32,
|
||||
* "kCBAdvDataIsConnectable": true
|
||||
* 'kCBAdvDataTxPowerLevel': 32,
|
||||
* 'kCBAdvDataIsConnectable': true
|
||||
* },
|
||||
* "rssi": -53
|
||||
* 'rssi': -53
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
@ -230,7 +230,7 @@ export class BLE extends IonicNativePlugin {
|
||||
clearFunction: 'stopScan',
|
||||
clearWithArgs: false
|
||||
})
|
||||
startScanWithOptions(services: string[], options: {reportDuplicates?: boolean} | any): Observable<any> { return; }
|
||||
startScanWithOptions(services: string[], options: { reportDuplicates?: boolean } | any): Observable<any> { return; }
|
||||
|
||||
/**
|
||||
* Stop a scan started by `startScan`.
|
||||
@ -306,14 +306,14 @@ export class BLE extends IonicNativePlugin {
|
||||
* // send 1 byte to switch a light on
|
||||
* var data = new Uint8Array(1);
|
||||
* data[0] = 1;
|
||||
* BLE.write(device_id, "FF10", "FF11", data.buffer);
|
||||
* BLE.write(device_id, 'FF10', 'FF11', data.buffer);
|
||||
*
|
||||
* // send a 3 byte value with RGB color
|
||||
* var data = new Uint8Array(3);
|
||||
* data[0] = 0xFF; // red
|
||||
* data[0] = 0x00; // green
|
||||
* data[0] = 0xFF; // blue
|
||||
* BLE.write(device_id, "ccc0", "ccc1", data.buffer);
|
||||
* BLE.write(device_id, 'ccc0', 'ccc1', data.buffer);
|
||||
*
|
||||
* // send a 32 bit integer
|
||||
* var data = new Uint32Array(1);
|
||||
@ -357,7 +357,7 @@ export class BLE extends IonicNativePlugin {
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* BLE.startNotification(device_id, "FF10", "FF11").subscribe(buffer => {
|
||||
* BLE.startNotification(device_id, 'FF10', 'FF11').subscribe(buffer => {
|
||||
* console.log(String.fromCharCode.apply(null, new Uint8Array(buffer));
|
||||
* });
|
||||
* ```
|
||||
|
@ -13,7 +13,7 @@ import { Observable } from 'rxjs/Observable';
|
||||
*
|
||||
*
|
||||
* // Write a string
|
||||
* this.bluetoothSerial.write("hello world").then(success, failure);
|
||||
* this.bluetoothSerial.write('hello world').then(success, failure);
|
||||
*
|
||||
* // Array of int or bytes
|
||||
* this.bluetoothSerial.write([186, 220, 222]).then(success, failure);
|
||||
|
@ -1,6 +1,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
|
||||
|
||||
|
||||
/**
|
||||
* @name Brightness
|
||||
* @description
|
||||
|
@ -8,7 +8,7 @@ import { Observable } from 'rxjs/Observable';
|
||||
* This plugin adds exchanging events between native code and your app.
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { Broadcaster } from '@ionic-native/broadcaster';
|
||||
*
|
||||
* constructor(private broadcaster: Broadcaster) { }
|
||||
@ -16,7 +16,7 @@ import { Observable } from 'rxjs/Observable';
|
||||
* ...
|
||||
*
|
||||
* // Listen to events from Native
|
||||
* this.broadcaster.addEventListener('eventName').then((event) => console.log(event));
|
||||
* this.broadcaster.addEventListener('eventName').subscribe((event) => console.log(event));
|
||||
*
|
||||
* // Send event to Native
|
||||
* this.broadcaster.fireNativeEvent('eventName', {}).then(() => console.log('success'));
|
||||
|
@ -7,7 +7,7 @@ import { Injectable } from '@angular/core';
|
||||
* This plugin provides an interface to in-app browser tabs that exist on some mobile platforms, specifically [Custom Tabs](http://developer.android.com/tools/support-library/features.html#custom-tabs) on Android (including the [Chrome Custom Tabs](https://developer.chrome.com/multidevice/android/customtabs) implementation), and [SFSafariViewController](https://developer.apple.com/library/ios/documentation/SafariServices/Reference/SFSafariViewController_Ref/) on iOS.
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { BrowserTab } from '@ionic-native/browser-tab';
|
||||
*
|
||||
* constructor(private browserTab: BrowserTab) {
|
||||
|
@ -59,7 +59,7 @@ export interface CalendarOptions {
|
||||
*
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { Calendar } from '@ionic-native/calendar';
|
||||
*
|
||||
* constructor(private calendar: Calendar) { }
|
||||
|
@ -6,7 +6,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
* Call a number directly from your Cordova/Ionic application.
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { CallNumber } from '@ionic-native/call-number';
|
||||
*
|
||||
* constructor(private callNumber: CallNumber) { }
|
||||
|
@ -39,12 +39,12 @@ export interface CameraPreviewOptions {
|
||||
}
|
||||
|
||||
export interface CameraPreviewPictureOptions {
|
||||
/** The width in pixels, default 0 */
|
||||
width?: number;
|
||||
/** The height in pixels, default 0 */
|
||||
height?: number;
|
||||
/** The picture quality, 0 - 100, default 85 */
|
||||
quality?: number;
|
||||
/** The width in pixels, default 0 */
|
||||
width?: number;
|
||||
/** The height in pixels, default 0 */
|
||||
height?: number;
|
||||
/** The picture quality, 0 - 100, default 85 */
|
||||
quality?: number;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -57,7 +57,7 @@ export interface CameraPreviewPictureOptions {
|
||||
*
|
||||
* @usage
|
||||
* ```typescript
|
||||
* import { CameraPreview, PictureOptions, CameraPreviewOptions, CameraPreviewDimensions } from '@ionic-native/camera-preview';
|
||||
* import { CameraPreview, CameraPreviewPictureOptions, CameraPreviewOptions, CameraPreviewDimensions } from '@ionic-native/camera-preview';
|
||||
*
|
||||
* constructor(private cameraPreview: CameraPreview) { }
|
||||
*
|
||||
@ -93,7 +93,7 @@ export interface CameraPreviewPictureOptions {
|
||||
*
|
||||
*
|
||||
* // picture options
|
||||
* const pictureOpts: PictureOptions = {
|
||||
* const pictureOpts: CameraPreviewPictureOptions = {
|
||||
* width: 1280,
|
||||
* height: 1280,
|
||||
* quality: 85
|
||||
@ -134,7 +134,18 @@ export interface CameraPreviewPictureOptions {
|
||||
@Injectable()
|
||||
export class CameraPreview extends IonicNativePlugin {
|
||||
|
||||
EXPOSURE_MODES = {
|
||||
FOCUS_MODE = {
|
||||
FIXED: 'fixed',
|
||||
AUTO: 'auto',
|
||||
CONTINUOUS: 'continuous', // IOS Only
|
||||
CONTINUOUS_PICTURE: 'continuous-picture', // Android Only
|
||||
CONTINUOUS_VIDEO: 'continuous-video', // Android Only
|
||||
EDOF: 'edof', // Android Only
|
||||
INFINITY: 'infinity', // Android Only
|
||||
MACRO: 'macro' // Android Only
|
||||
};
|
||||
|
||||
EXPOSURE_MODE = {
|
||||
LOCK: 'lock', // IOS Only
|
||||
AUTO: 'auto', // IOS Only
|
||||
CONTINUOUS: 'continuous',
|
||||
@ -240,10 +251,10 @@ export class CameraPreview extends IonicNativePlugin {
|
||||
})
|
||||
setZoom(zoom?: number): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Get the maximum zoom (Android)
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
/**
|
||||
* Get the maximum zoom (Android)
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
getMaxZoom(): Promise<any> { return; }
|
||||
|
||||
@ -265,6 +276,38 @@ export class CameraPreview extends IonicNativePlugin {
|
||||
})
|
||||
setPreviewSize(dimensions?: CameraPreviewDimensions): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Get focus mode
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
getFocusMode(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Set the focus mode
|
||||
* @param [focusMode] {string} 'fixed', 'auto', 'continuous-picture', 'continuous-video' (iOS & Android), 'edof', 'infinity', 'macro' (Android Only)
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova({
|
||||
successIndex: 1,
|
||||
errorIndex: 2
|
||||
})
|
||||
setFocusMode(focusMode?: string): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Get supported focus modes
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
getSupportedFocusModes(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Get the current flash mode
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
getFlashMode(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Set the flashmode
|
||||
* @param [flashMode] {string} 'off' (iOS & Android), 'on' (iOS & Android), 'auto' (iOS & Android), 'torch' (Android)
|
||||
@ -276,13 +319,6 @@ export class CameraPreview extends IonicNativePlugin {
|
||||
})
|
||||
setFlashMode(flashMode?: string): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Get supported picture sizes
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
getSupportedPictureSizes(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Get supported flash modes
|
||||
* @return {Promise<any>}
|
||||
@ -290,6 +326,13 @@ export class CameraPreview extends IonicNativePlugin {
|
||||
@Cordova()
|
||||
getSupportedFlashModes(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Get supported picture sizes
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
getSupportedPictureSizes(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Get exposure mode
|
||||
* @return {Promise<any>}
|
||||
@ -340,4 +383,13 @@ export class CameraPreview extends IonicNativePlugin {
|
||||
@Cordova()
|
||||
getExposureCompensationRange(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Set specific focus point. Note, this assumes the camera is full-screen.
|
||||
* @param xPoint {number}
|
||||
* @param yPoint {number}
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
tapToFocus(xPoint: number, yPoint: number): Promise<any> { return; }
|
||||
|
||||
}
|
||||
|
@ -133,7 +133,7 @@ export interface CardIOResponse {
|
||||
* @name Card IO
|
||||
* @description
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { CardIO } from '@ionic-native/card-io';
|
||||
*
|
||||
* constructor(private cardIO: CardIO) { }
|
||||
|
@ -109,8 +109,8 @@ interface LocalPackage_Static {
|
||||
}
|
||||
/* tslint:enable */
|
||||
|
||||
declare var RemotePackage: RemotePackage_Static;
|
||||
declare var LocalPackage: LocalPackage_Static;
|
||||
declare const RemotePackage: RemotePackage_Static;
|
||||
declare const LocalPackage: LocalPackage_Static;
|
||||
|
||||
/**
|
||||
* Defines the JSON format of the current package information file.
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { CordovaInstance, InstanceProperty, Plugin, getPromise, InstanceCheck, checkAvailability, CordovaCheck, IonicNativePlugin } from '@ionic-native/core';
|
||||
|
||||
declare var window: any,
|
||||
declare const window: any,
|
||||
navigator: any;
|
||||
|
||||
export type ContactFieldType = '*' | 'addresses' | 'birthday' | 'categories' | 'country' | 'department' | 'displayName' | 'emails' | 'familyName' | 'formatted' | 'givenName' | 'honorificPrefix' | 'honorificSuffix' | 'id' | 'ims' | 'locality' | 'middleName' | 'name' | 'nickname' | 'note' | 'organizations' | 'phoneNumbers' | 'photos' | 'postalCode' | 'region' | 'streetAddress' | 'title' | 'urls';
|
||||
@ -49,6 +49,7 @@ export interface IContactProperties {
|
||||
|
||||
/** An array of web pages associated with the contact. */
|
||||
urls?: IContactField[];
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -71,6 +72,8 @@ export class Contact implements IContactProperties {
|
||||
@InstanceProperty categories: IContactField[];
|
||||
@InstanceProperty urls: IContactField[];
|
||||
|
||||
[key: string]: any;
|
||||
|
||||
constructor() {
|
||||
if (checkAvailability('navigator.contacts', 'create', 'Contacts') === true) {
|
||||
this._objectInstance = navigator.contacts.create();
|
||||
@ -79,7 +82,7 @@ export class Contact implements IContactProperties {
|
||||
|
||||
@InstanceCheck()
|
||||
clone(): Contact {
|
||||
let newContact = new Contact();
|
||||
let newContact: any = new Contact();
|
||||
for (let prop in this) {
|
||||
if (prop === 'id') return;
|
||||
newContact[prop] = this[prop];
|
||||
@ -92,8 +95,8 @@ export class Contact implements IContactProperties {
|
||||
|
||||
@InstanceCheck()
|
||||
save(): Promise<any> {
|
||||
return getPromise((resolve, reject) => {
|
||||
this._objectInstance.save((contact) => {
|
||||
return getPromise((resolve: Function, reject: Function) => {
|
||||
this._objectInstance.save((contact: any) => {
|
||||
this._objectInstance = contact;
|
||||
resolve(this);
|
||||
}, reject);
|
||||
@ -114,7 +117,7 @@ export interface IContactError {
|
||||
/**
|
||||
* @hidden
|
||||
*/
|
||||
export declare var ContactError: {
|
||||
export declare const ContactError: {
|
||||
new (code: number): IContactError;
|
||||
UNKNOWN_ERROR: number;
|
||||
INVALID_ARGUMENT_ERROR: number;
|
||||
@ -145,16 +148,16 @@ export interface IContactName {
|
||||
*/
|
||||
export class ContactName implements IContactName {
|
||||
constructor(public formatted?: string,
|
||||
public familyName?: string,
|
||||
public givenName?: string,
|
||||
public middleName?: string,
|
||||
public honorificPrefix?: string,
|
||||
public honorificSuffix?: string) {}
|
||||
public familyName?: string,
|
||||
public givenName?: string,
|
||||
public middleName?: string,
|
||||
public honorificPrefix?: string,
|
||||
public honorificSuffix?: string) { }
|
||||
}
|
||||
|
||||
export interface IContactField {
|
||||
/** A string that indicates what type of field this is, home for example. */
|
||||
type?: string;
|
||||
type?: string;
|
||||
/** The value of the field, such as a phone number or email address. */
|
||||
value?: string;
|
||||
/** Set to true if this ContactField contains the user's preferred value. */
|
||||
@ -166,15 +169,15 @@ export interface IContactField {
|
||||
*/
|
||||
export class ContactField implements IContactField {
|
||||
constructor(public type?: string,
|
||||
public value?: string,
|
||||
public pref?: boolean) {}
|
||||
public value?: string,
|
||||
public pref?: boolean) { }
|
||||
}
|
||||
|
||||
export interface IContactAddress {
|
||||
/** Set to true if this ContactAddress contains the user's preferred value. */
|
||||
pref?: boolean;
|
||||
/** A string indicating what type of field this is, home for example. */
|
||||
type?: string;
|
||||
type?: string;
|
||||
/** The full address formatted for display. */
|
||||
formatted?: string;
|
||||
/** The full street address. */
|
||||
@ -194,20 +197,20 @@ export interface IContactAddress {
|
||||
*/
|
||||
export class ContactAddress implements IContactAddress {
|
||||
constructor(public pref?: boolean,
|
||||
public type?: string,
|
||||
public formatted?: string,
|
||||
public streetAddress?: string,
|
||||
public locality?: string,
|
||||
public region?: string,
|
||||
public postalCode?: string,
|
||||
public country?: string) {}
|
||||
public type?: string,
|
||||
public formatted?: string,
|
||||
public streetAddress?: string,
|
||||
public locality?: string,
|
||||
public region?: string,
|
||||
public postalCode?: string,
|
||||
public country?: string) { }
|
||||
}
|
||||
|
||||
export interface IContactOrganization {
|
||||
/** Set to true if this ContactOrganization contains the user's preferred value. */
|
||||
pref?: boolean;
|
||||
/** A string that indicates what type of field this is, home for example. */
|
||||
type?: string;
|
||||
type?: string;
|
||||
/** The name of the organization. */
|
||||
name?: string;
|
||||
/** The department the contract works for. */
|
||||
@ -226,7 +229,7 @@ export class ContactOrganization implements IContactOrganization {
|
||||
public department?: string,
|
||||
public title?: string,
|
||||
public pref?: boolean
|
||||
) {}
|
||||
) { }
|
||||
}
|
||||
|
||||
/** Search options to filter navigator.contacts. */
|
||||
@ -248,9 +251,9 @@ export interface IContactFindOptions {
|
||||
*/
|
||||
export class ContactFindOptions implements IContactFindOptions {
|
||||
constructor(public filter?: string,
|
||||
public multiple?: boolean,
|
||||
public desiredFields?: string[],
|
||||
public hasPhoneNumber?: boolean) {}
|
||||
public multiple?: boolean,
|
||||
public desiredFields?: string[],
|
||||
public hasPhoneNumber?: boolean) { }
|
||||
}
|
||||
|
||||
/**
|
||||
@ -312,8 +315,8 @@ export class Contacts extends IonicNativePlugin {
|
||||
*/
|
||||
@CordovaCheck()
|
||||
find(fields: ContactFieldType[], options?: IContactFindOptions): Promise<Contact[]> {
|
||||
return getPromise((resolve, reject) => {
|
||||
navigator.contacts.find(fields, (contacts) => {
|
||||
return getPromise((resolve: Function, reject: Function) => {
|
||||
navigator.contacts.find(fields, (contacts: any[]) => {
|
||||
resolve(contacts.map(processContact));
|
||||
}, reject, options);
|
||||
});
|
||||
@ -325,8 +328,8 @@ export class Contacts extends IonicNativePlugin {
|
||||
*/
|
||||
@CordovaCheck()
|
||||
pickContact(): Promise<Contact> {
|
||||
return getPromise((resolve, reject) => {
|
||||
navigator.contacts.pickContact((contact) => resolve(processContact(contact)), reject);
|
||||
return getPromise((resolve: Function, reject: Function) => {
|
||||
navigator.contacts.pickContact((contact: any) => resolve(processContact(contact)), reject);
|
||||
});
|
||||
}
|
||||
|
||||
@ -335,7 +338,7 @@ export class Contacts extends IonicNativePlugin {
|
||||
/**
|
||||
* @hidden
|
||||
*/
|
||||
function processContact(contact) {
|
||||
function processContact(contact: any) {
|
||||
let newContact = new Contact();
|
||||
for (let prop in contact) {
|
||||
if (typeof contact[prop] === 'function') continue;
|
||||
|
@ -8,7 +8,7 @@ import { Injectable } from '@angular/core';
|
||||
* Plugin to install Couchbase Lite in your PhoneGap app on iOS or Android
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { CouchbaseLite } from '@ionic-native/couchbase-lite';
|
||||
*
|
||||
* constructor(private couchbase: CouchbaseLite) {
|
||||
@ -38,6 +38,6 @@ export class CouchbaseLite extends IonicNativePlugin {
|
||||
@Cordova({
|
||||
callbackStyle: 'node'
|
||||
})
|
||||
getURL(): Promise<any> { return; }
|
||||
getURL(): Promise<any> { return; }
|
||||
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
|
||||
* @name Crop
|
||||
* @description Crops images
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { Crop } from '@ionic-native/crop';
|
||||
*
|
||||
* constructor(private crop: Crop) { }
|
||||
@ -14,8 +14,8 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
|
||||
*
|
||||
* this.crop.crop('path/to/image.jpg', {quality: 75})
|
||||
* .then(
|
||||
* newImage => console.log("new image path is: " + newImage),
|
||||
* error => console.error("Error cropping image", error)
|
||||
* newImage => console.log('new image path is: ' + newImage),
|
||||
* error => console.error('Error cropping image', error)
|
||||
* );
|
||||
* ```
|
||||
*/
|
||||
@ -38,6 +38,6 @@ export class Crop extends IonicNativePlugin {
|
||||
@Cordova({
|
||||
callbackOrder: 'reverse'
|
||||
})
|
||||
crop(pathToImage: string, options?: {quality: number}): Promise<string> { return; }
|
||||
crop(pathToImage: string, options?: { quality: number }): Promise<string> { return; }
|
||||
|
||||
}
|
||||
|
@ -98,7 +98,7 @@ export class Deeplinks extends IonicNativePlugin {
|
||||
@Cordova({
|
||||
observable: true
|
||||
})
|
||||
route(paths): Observable<DeeplinkMatch> { return; }
|
||||
route(paths: any): Observable<DeeplinkMatch> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
@ -121,6 +121,6 @@ export class Deeplinks extends IonicNativePlugin {
|
||||
@Cordova({
|
||||
observable: true
|
||||
})
|
||||
routeWithNavController(navController, paths): Observable<DeeplinkMatch> { return; }
|
||||
routeWithNavController(navController: any, paths: any): Observable<DeeplinkMatch> { return; }
|
||||
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
* Plugin that lets you provide haptic or acoustic feedback on Android devices.
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { DeviceFeedback } from '@ionic-native/device-feedback';
|
||||
*
|
||||
* constructor(private deviceFeedback: DeviceFeedback) { }
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { CordovaProperty, Plugin, IonicNativePlugin } from '@ionic-native/core';
|
||||
|
||||
declare var window: any;
|
||||
declare const window: any;
|
||||
|
||||
/**
|
||||
* @name Device
|
||||
|
@ -144,10 +144,12 @@ export class Diagnostic extends IonicNativePlugin {
|
||||
/**
|
||||
* Checks if the device has a camera. On Android this returns true if the device has a camera. On iOS this returns true if both the device has a camera AND the application is authorized to use it. On Windows 10 Mobile this returns true if both the device has a rear-facing camera AND the
|
||||
* application is authorized to use it.
|
||||
* @param {boolean} [externalStorage] Android only: If true, checks permission for READ_EXTERNAL_STORAGE in addition to CAMERA run-time permission.
|
||||
* cordova-plugin-camera@2.2+ requires both of these permissions. Defaults to true.
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
isCameraAvailable(): Promise<any> { return; }
|
||||
@Cordova({ callbackOrder: 'reverse' })
|
||||
isCameraAvailable( externalStorage?: boolean ): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Checks if the device has Bluetooth capabilities and if so that Bluetooth is switched on (same on Android, iOS and Windows 10 Mobile)
|
||||
@ -251,24 +253,30 @@ export class Diagnostic extends IonicNativePlugin {
|
||||
/**
|
||||
* Checks if the application is authorized to use the camera.
|
||||
* Note for Android: this is intended for Android 6 / API 23 and above. Calling on Android 5 / API 22 and below will always return TRUE as permissions are already granted at installation time.
|
||||
* @param {boolean} [externalStorage] Android only: If true, checks permission for READ_EXTERNAL_STORAGE in addition to CAMERA run-time permission.
|
||||
* cordova-plugin-camera@2.2+ requires both of these permissions. Defaults to true.
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova({ platforms: ['Android', 'iOS'] })
|
||||
isCameraAuthorized(): Promise<any> { return; }
|
||||
@Cordova({ platforms: ['Android', 'iOS'], callbackOrder: 'reverse' })
|
||||
isCameraAuthorized( externalStorage?: boolean ): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Returns the camera authorization status for the application.
|
||||
* @param {boolean} [externalStorage] Android only: If true, checks permission for READ_EXTERNAL_STORAGE in addition to CAMERA run-time permission.
|
||||
* cordova-plugin-camera@2.2+ requires both of these permissions. Defaults to true.
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova({ platforms: ['Android', 'iOS'] })
|
||||
getCameraAuthorizationStatus(): Promise<any> { return; }
|
||||
@Cordova({ platforms: ['Android', 'iOS'], callbackOrder: 'reverse' })
|
||||
getCameraAuthorizationStatus( externalStorage?: boolean ): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Requests camera authorization for the application.
|
||||
* @param {boolean} [externalStorage] Android only: If true, requests permission for READ_EXTERNAL_STORAGE in addition to CAMERA run-time permission.
|
||||
* cordova-plugin-camera@2.2+ requires both of these permissions. Defaults to true.
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova({ platforms: ['Android', 'iOS'] })
|
||||
requestCameraAuthorization(): Promise<any> { return; }
|
||||
@Cordova({ platforms: ['Android', 'iOS'], callbackOrder: 'reverse' })
|
||||
requestCameraAuthorization( externalStorage?: boolean ): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Checks if the application is authorized to use the microphone.
|
||||
@ -614,10 +622,10 @@ export class Diagnostic extends IonicNativePlugin {
|
||||
|
||||
/**
|
||||
* Returns the authorization status for the application to use the Camera Roll in Photos app.
|
||||
* @returns {Promise<boolean>}
|
||||
* @returns {Promise<string>}
|
||||
*/
|
||||
@Cordova({ platforms: ['iOS'] })
|
||||
getCameraRollAuthorizationStatus(): Promise<boolean> { return; }
|
||||
getCameraRollAuthorizationStatus(): Promise<string> { return; }
|
||||
|
||||
/**
|
||||
* Requests camera roll authorization for the application.
|
||||
|
@ -75,7 +75,7 @@ export class Dialogs extends IonicNativePlugin {
|
||||
successIndex: 1,
|
||||
errorIndex: 4
|
||||
})
|
||||
confirm(message, title?: string, buttonLabels?: string[]): Promise<number> { return; }
|
||||
confirm(message: string, title?: string, buttonLabels?: string[]): Promise<number> { return; }
|
||||
|
||||
/**
|
||||
* Displays a native dialog box that is more customizable than the browser's prompt function.
|
||||
|
102
src/@ionic-native/plugins/document-viewer/index.ts
Normal file
102
src/@ionic-native/plugins/document-viewer/index.ts
Normal file
@ -0,0 +1,102 @@
|
||||
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
export interface DocumentViewerOptions {
|
||||
title: string;
|
||||
documentView: {
|
||||
closeLabel: string;
|
||||
};
|
||||
navigationView: {
|
||||
closeLabel: string;
|
||||
};
|
||||
email: {
|
||||
enabled: boolean;
|
||||
};
|
||||
print: {
|
||||
enabled: boolean;
|
||||
};
|
||||
openWith: {
|
||||
enabled: boolean;
|
||||
};
|
||||
bookmarks: {
|
||||
enabled: boolean;
|
||||
};
|
||||
search: {
|
||||
enabled: boolean;
|
||||
};
|
||||
autoClose: {
|
||||
onPause: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @name Document Viewer
|
||||
* @description
|
||||
* This plugin offers a slim API to view PDF files which are either stored in the apps assets folder (/www/*) or in any other file system directory available via the cordova file plugin.
|
||||
*
|
||||
* @usage
|
||||
* ```typescript
|
||||
* import { DocumentViewer } from '@ionic-native/document-viewer';
|
||||
*
|
||||
*
|
||||
* constructor(private document: DocumentViewer) { }
|
||||
*
|
||||
* ...
|
||||
* const options: DocumentViewerOptions = {
|
||||
* title: 'My PDF'
|
||||
* }
|
||||
*
|
||||
* this.document.viewDocument('assets/myFile.pdf', 'application/pdf', options)
|
||||
*
|
||||
* ```
|
||||
*
|
||||
* @interfaces
|
||||
* DocumentViewerOptions
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: 'Document Viewer',
|
||||
plugin: 'cordova-plugin-document-viewer',
|
||||
pluginRef: 'SitewaertsDocumentViewer',
|
||||
repo: 'https://github.com/sitewaerts/cordova-plugin-document-viewer',
|
||||
platforms: ['Android', 'iOS', 'Windows']
|
||||
})
|
||||
@Injectable()
|
||||
export class DocumentViewer extends IonicNativePlugin {
|
||||
|
||||
/**
|
||||
* Displays the email composer pre-filled with data.
|
||||
*
|
||||
* @returns {Promise<any>} Resolves promise when the EmailComposer has been opened
|
||||
*/
|
||||
@Cordova()
|
||||
getSupportInfo(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Check if the document can be shown
|
||||
*
|
||||
* @param url {string} Url to the file
|
||||
* @param contentType {string} Content type of the file
|
||||
* @param options {Array<DocumentViewerOptions>} options
|
||||
* @param [onPossible] {Function}
|
||||
* @param [onMissingApp] {Function}
|
||||
* @param [onImpossible] {Function}
|
||||
* @param [onError] {Function}
|
||||
*/
|
||||
@Cordova({ sync: true })
|
||||
canViewDocument(url: string, contentType: string, options: DocumentViewerOptions, onPossible?: Function, onMissingApp?: Function, onImpossible?: Function, onError?: Function): void { }
|
||||
|
||||
/**
|
||||
* Opens the file
|
||||
*
|
||||
* @param url {string} Url to the file
|
||||
* @param contentType {string} Content type of the file
|
||||
* @param options {Array<DocumentViewerOptions>} options
|
||||
* @param [onShow] {Function}
|
||||
* @param [onClose] {Function}
|
||||
* @param [onMissingApp] {Function}
|
||||
* @param [onError] {Function}
|
||||
*/
|
||||
@Cordova({ sync: true })
|
||||
viewDocument(url: string, contentType: string, options: Array<DocumentViewerOptions>, onShow?: Function, onClose?: Function, onMissingApp?: Function, onError?: Function): void { }
|
||||
|
||||
}
|
@ -1,7 +1,11 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Cordova, Plugin, CordovaCheck, IonicNativePlugin } from '@ionic-native/core';
|
||||
|
||||
declare var cordova: any;
|
||||
interface Cordova {
|
||||
plugins: CordovaPlugins & { email: any };
|
||||
}
|
||||
|
||||
declare const cordova: Cordova;
|
||||
|
||||
export interface EmailComposerOptions {
|
||||
|
||||
@ -25,14 +29,11 @@ export interface EmailComposerOptions {
|
||||
|
||||
|
||||
/**
|
||||
* @beta
|
||||
* @name Email Composer
|
||||
* @description
|
||||
*
|
||||
* Requires Cordova plugin: cordova-plugin-email-composer. For more info, please see the [Email Composer plugin docs](https://github.com/hypery2k/cordova-email-plugin).
|
||||
*
|
||||
* DISCLAIMER: This plugin is experiencing issues with the latest versions of Cordova. Use at your own risk. Functionality is not guaranteed. Please stay tuned for a more stable version.
|
||||
* A good alternative to this plugin is the social sharing plugin.
|
||||
*
|
||||
* @usage
|
||||
* ```typescript
|
||||
@ -91,7 +92,7 @@ export class EmailComposer extends IonicNativePlugin {
|
||||
isAvailable(app?: string): Promise<any> {
|
||||
return new Promise<boolean>((resolve, reject) => {
|
||||
if (app) {
|
||||
cordova.plugins.email.isAvailable(app, (isAvailable) => {
|
||||
cordova.plugins.email.isAvailable(app, (isAvailable: boolean) => {
|
||||
if (isAvailable) {
|
||||
resolve();
|
||||
} else {
|
||||
@ -99,7 +100,7 @@ export class EmailComposer extends IonicNativePlugin {
|
||||
}
|
||||
});
|
||||
} else {
|
||||
cordova.plugins.email.isAvailable((isAvailable) => {
|
||||
cordova.plugins.email.isAvailable((isAvailable: boolean) => {
|
||||
if (isAvailable) {
|
||||
resolve();
|
||||
} else {
|
||||
|
@ -104,6 +104,8 @@ export interface FacebookLoginResponse {
|
||||
* .catch(e => console.log('Error logging into Facebook', e));
|
||||
*
|
||||
*
|
||||
* this.fb.logEvent(this.fb.EVENTS.EVENT_NAME_ADDED_TO_CART);
|
||||
*
|
||||
* ```
|
||||
*
|
||||
*/
|
||||
@ -119,6 +121,41 @@ export interface FacebookLoginResponse {
|
||||
@Injectable()
|
||||
export class Facebook extends IonicNativePlugin {
|
||||
|
||||
EVENTS: {
|
||||
EVENT_NAME_ACTIVATED_APP: 'fb_mobile_activate_app',
|
||||
EVENT_NAME_DEACTIVATED_APP: 'fb_mobile_deactivate_app',
|
||||
EVENT_NAME_SESSION_INTERRUPTIONS: 'fb_mobile_app_interruptions',
|
||||
EVENT_NAME_TIME_BETWEEN_SESSIONS: 'fb_mobile_time_between_sessions',
|
||||
EVENT_NAME_COMPLETED_REGISTRATION: 'fb_mobile_complete_registration',
|
||||
EVENT_NAME_VIEWED_CONTENT: 'fb_mobile_content_view',
|
||||
EVENT_NAME_SEARCHED: 'fb_mobile_search',
|
||||
EVENT_NAME_RATED: 'fb_mobile_rate',
|
||||
EVENT_NAME_COMPLETED_TUTORIAL: 'fb_mobile_tutorial_completion',
|
||||
EVENT_NAME_PUSH_TOKEN_OBTAINED: 'fb_mobile_obtain_push_token',
|
||||
EVENT_NAME_ADDED_TO_CART: 'fb_mobile_add_to_cart',
|
||||
EVENT_NAME_ADDED_TO_WISHLIST: 'fb_mobile_add_to_wishlist',
|
||||
EVENT_NAME_INITIATED_CHECKOUT: 'fb_mobile_initiated_checkout',
|
||||
EVENT_NAME_ADDED_PAYMENT_INFO: 'fb_mobile_add_payment_info',
|
||||
EVENT_NAME_PURCHASED: 'fb_mobile_purchase',
|
||||
EVENT_NAME_ACHIEVED_LEVEL: 'fb_mobile_level_achieved',
|
||||
EVENT_NAME_UNLOCKED_ACHIEVEMENT: 'fb_mobile_achievement_unlocked',
|
||||
EVENT_NAME_SPENT_CREDITS: 'fb_mobile_spent_credits',
|
||||
EVENT_PARAM_CURRENCY: 'fb_currency',
|
||||
EVENT_PARAM_REGISTRATION_METHOD: 'fb_registration_method',
|
||||
EVENT_PARAM_CONTENT_TYPE: 'fb_content_type',
|
||||
EVENT_PARAM_CONTENT_ID: 'fb_content_id',
|
||||
EVENT_PARAM_SEARCH_STRING: 'fb_search_string',
|
||||
EVENT_PARAM_SUCCESS: 'fb_success',
|
||||
EVENT_PARAM_MAX_RATING_VALUE: 'fb_max_rating_value',
|
||||
EVENT_PARAM_PAYMENT_INFO_AVAILABLE: 'fb_payment_info_available',
|
||||
EVENT_PARAM_NUM_ITEMS: 'fb_num_items',
|
||||
EVENT_PARAM_LEVEL: 'fb_level',
|
||||
EVENT_PARAM_DESCRIPTION: 'fb_description',
|
||||
EVENT_PARAM_SOURCE_APPLICATION: 'fb_mobile_launch_source',
|
||||
EVENT_PARAM_VALUE_YES: '1',
|
||||
EVENT_PARAM_VALUE_NO: '0'
|
||||
};
|
||||
|
||||
/**
|
||||
* Browser wrapper
|
||||
* @param {number} appId Your Facebook AppID from their dashboard
|
||||
@ -135,16 +172,17 @@ export class Facebook extends IonicNativePlugin {
|
||||
*
|
||||
* ```typescript
|
||||
* {
|
||||
* status: "connected",
|
||||
* status: 'connected',
|
||||
* authResponse: {
|
||||
* session_key: true,
|
||||
* accessToken: "kgkh3g42kh4g23kh4g2kh34g2kg4k2h4gkh3g4k2h4gk23h4gk2h34gk234gk2h34AndSoOn",
|
||||
* accessToken: 'kgkh3g42kh4g23kh4g2kh34g2kg4k2h4gkh3g4k2h4gk23h4gk2h34gk234gk2h34AndSoOn',
|
||||
* expiresIn: 5183979,
|
||||
* sig: "...",
|
||||
* secret: "...",
|
||||
* userID: "634565435"
|
||||
* sig: '...',
|
||||
* secret: '...',
|
||||
* userID: '634565435'
|
||||
* }
|
||||
* }
|
||||
*
|
||||
* ```
|
||||
*
|
||||
* @param {string[]} permissions List of [permissions](https://developers.facebook.com/docs/facebook-login/permissions) this app has upon logging in.
|
||||
@ -174,13 +212,13 @@ export class Facebook extends IonicNativePlugin {
|
||||
* ```
|
||||
* {
|
||||
* authResponse: {
|
||||
* userID: "12345678912345",
|
||||
* accessToken: "kgkh3g42kh4g23kh4g2kh34g2kg4k2h4gkh3g4k2h4gk23h4gk2h34gk234gk2h34AndSoOn",
|
||||
* userID: '12345678912345',
|
||||
* accessToken: 'kgkh3g42kh4g23kh4g2kh34g2kg4k2h4gkh3g4k2h4gk23h4gk2h34gk234gk2h34AndSoOn',
|
||||
* session_Key: true,
|
||||
* expiresIn: "5183738",
|
||||
* sig: "..."
|
||||
* expiresIn: '5183738',
|
||||
* sig: '...'
|
||||
* },
|
||||
* status: "connected"
|
||||
* status: 'connected'
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
@ -204,10 +242,10 @@ export class Facebook extends IonicNativePlugin {
|
||||
*
|
||||
* ```
|
||||
* {
|
||||
* method: "share",
|
||||
* href: "http://example.com",
|
||||
* caption: "Such caption, very feed.",
|
||||
* description: "Much description",
|
||||
* method: 'share',
|
||||
* href: 'http://example.com',
|
||||
* caption: 'Such caption, very feed.',
|
||||
* description: 'Much description',
|
||||
* picture: 'http://example.com/image.png'
|
||||
* }
|
||||
* ```
|
||||
|
118
src/@ionic-native/plugins/fcm/index.ts
Normal file
118
src/@ionic-native/plugins/fcm/index.ts
Normal file
@ -0,0 +1,118 @@
|
||||
import { Plugin, IonicNativePlugin, Cordova } from '@ionic-native/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
|
||||
export interface NotificationData {
|
||||
|
||||
/**
|
||||
* Determines whether the notification was pressed or not
|
||||
*/
|
||||
|
||||
wasTapped: boolean;
|
||||
|
||||
/**
|
||||
* Notification data hash item
|
||||
*/
|
||||
|
||||
[name: string]: any;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @name FCM
|
||||
* @description
|
||||
* Provides basic functionality for Firebase Cloud Messaging
|
||||
*
|
||||
* @usage
|
||||
* ```typescript
|
||||
* import { FCM } from 'ionic-native';
|
||||
*
|
||||
* constructor(private fcm: FCM) {}
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* fcm.subscribeToTopic('marketing');
|
||||
*
|
||||
* fcm.getToken().then(token=>{
|
||||
* backend.registerToken(token);
|
||||
* })
|
||||
*
|
||||
* fcm.onNotification().subscribe(data=>{
|
||||
* if(data.wasPressed){
|
||||
* console.log("Received in background");
|
||||
* } else {
|
||||
* console.log("Received in foreground");
|
||||
* };
|
||||
* })
|
||||
*
|
||||
* fcm.onTokenRefresh().subscribe(token=>{
|
||||
* backend.registerToken(token);
|
||||
* })
|
||||
*
|
||||
* fcm.unsubscribeFromTopic('marketing');
|
||||
*
|
||||
* ```
|
||||
* @interfaces
|
||||
* NotificationData
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: 'FCM',
|
||||
plugin: 'cordova-plugin-fcm',
|
||||
pluginRef: 'FCMPlugin',
|
||||
repo: 'https://github.com/fechanique/cordova-plugin-fcm',
|
||||
platforms: ['iOS', 'Android']
|
||||
})
|
||||
@Injectable()
|
||||
export class FCM extends IonicNativePlugin {
|
||||
|
||||
/**
|
||||
* Get's device's current registration id
|
||||
*
|
||||
* @returns {Promise<string>} Returns a Promise that resolves with the registration id token
|
||||
*/
|
||||
@Cordova()
|
||||
getToken(): Promise<string> { return; }
|
||||
|
||||
/**
|
||||
* Event firing on the token refresh
|
||||
*
|
||||
* @returns {Observable<string>} Returns an Observable that notifies with the change of device's registration id
|
||||
*/
|
||||
@Cordova({
|
||||
observable: true
|
||||
})
|
||||
onTokenRefresh(): Observable<string> { return; }
|
||||
|
||||
/**
|
||||
* Subscribes you to a [topic](https://firebase.google.com/docs/notifications/android/console-topics)
|
||||
*
|
||||
* @param {string} topic Topic to be subscribed to
|
||||
*
|
||||
* @returns {Promise<any>} Returns a promise resolving in result of subscribing to a topic
|
||||
*/
|
||||
@Cordova()
|
||||
subscribeToTopic(topic: string): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Unubscribes you from a [topic](https://firebase.google.com/docs/notifications/android/console-topics)
|
||||
*
|
||||
* @param {string} topic Topic to be unsubscribed from
|
||||
*
|
||||
* @returns {Promise<any>} Returns a promise resolving in result of unsubscribing from a topic
|
||||
*/
|
||||
@Cordova()
|
||||
unsubscribeFromTopic(topic: string): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Watch for incoming notifications
|
||||
*
|
||||
* @returns {Observable<any>} returns an object with data from the notification
|
||||
*/
|
||||
@Cordova({
|
||||
observable: true,
|
||||
successIndex: 0,
|
||||
errorIndex: 2
|
||||
})
|
||||
onNotification(): Observable<NotificationData> { return; }
|
||||
|
||||
}
|
@ -8,7 +8,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
* Opens the file picker on Android for the user to select a file, returns a file URI.
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { FileChooser } from '@ionic-native/file-chooser';
|
||||
*
|
||||
* constructor(private fileChooser: FileChooser) { }
|
||||
@ -23,7 +23,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: 'FileChooser',
|
||||
plugin: 'http://github.com/don/cordova-filechooser.git',
|
||||
plugin: 'https://github.com/don/cordova-filechooser.git',
|
||||
pluginRef: 'fileChooser',
|
||||
repo: 'https://github.com/don/cordova-filechooser',
|
||||
platforms: ['Android']
|
||||
|
52
src/@ionic-native/plugins/file-encryption/index.ts
Normal file
52
src/@ionic-native/plugins/file-encryption/index.ts
Normal file
@ -0,0 +1,52 @@
|
||||
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
/**
|
||||
* @name File Encryption
|
||||
* @description
|
||||
* Simple file encryption for Cordova.
|
||||
*
|
||||
* @usage
|
||||
* ```typescript
|
||||
* import { FileEncryption } from '@ionic-native/file-encryption';
|
||||
*
|
||||
*
|
||||
* constructor(private fileEncryption: FileEncryption) { }
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* this.fileEncryption.decrypt('assets/json/topSecret.json', 'secretKey');
|
||||
*
|
||||
* this.fileEncryption.encrypt('assets/json/topSecret.json', 'secretKey');
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: 'FileEncryption',
|
||||
plugin: 'cordova-safe',
|
||||
pluginRef: 'cordova.plugins.disusered',
|
||||
repo: 'https://github.com/disusered/cordova-safe',
|
||||
platforms: ['Android', 'iOS']
|
||||
})
|
||||
@Injectable()
|
||||
export class FileEncryption extends IonicNativePlugin {
|
||||
|
||||
/**
|
||||
* Enrcypt a file
|
||||
* @param file {string} A string representing a local URI
|
||||
* @param key {string} A key for the crypto operations
|
||||
* @return {Promise<any>} Returns a promise that resolves when something happens
|
||||
*/
|
||||
@Cordova()
|
||||
encrypt(file: string, key: string): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Decrypt a file
|
||||
* @param file {string} A string representing a local URI
|
||||
* @param key {string} A key for the crypto operations
|
||||
* @return {Promise<any>} Returns a promise that resolves when something happens
|
||||
*/
|
||||
@Cordova()
|
||||
decrypt(file: string, key: string): Promise<any> { return; }
|
||||
|
||||
}
|
@ -7,7 +7,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
* This plugin will open a file on your device file system with its default application.
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { FileOpener } from '@ionic-native/file-opener';
|
||||
*
|
||||
* constructor(private fileOpener: FileOpener) { }
|
||||
@ -41,7 +41,7 @@ export class FileOpener extends IonicNativePlugin {
|
||||
successName: 'success',
|
||||
errorName: 'error'
|
||||
})
|
||||
open(filePath: string, fileMIMEType: string): Promise<any> {return; }
|
||||
open(filePath: string, fileMIMEType: string): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Uninstalls a package
|
||||
@ -53,7 +53,7 @@ export class FileOpener extends IonicNativePlugin {
|
||||
successName: 'success',
|
||||
errorName: 'error'
|
||||
})
|
||||
uninstall(packageId: string): Promise<any> {return; }
|
||||
uninstall(packageId: string): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Check if an app is already installed
|
||||
@ -65,6 +65,6 @@ export class FileOpener extends IonicNativePlugin {
|
||||
successName: 'success',
|
||||
errorName: 'error'
|
||||
})
|
||||
appIsInstalled(packageId: string): Promise<any> {return; }
|
||||
appIsInstalled(packageId: string): Promise<any> { return; }
|
||||
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
|
||||
declare var window: any;
|
||||
declare const window: any;
|
||||
|
||||
/**
|
||||
* @name File Path
|
||||
@ -10,7 +10,7 @@ declare var window: any;
|
||||
* This plugin allows you to resolve the native filesystem path for Android content URIs and is based on code in the aFileChooser library.
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { FilePath } from '@ionic-native/file-path';
|
||||
*
|
||||
* constructor(private filePath: FilePath) { }
|
||||
@ -39,6 +39,6 @@ export class FilePath extends IonicNativePlugin {
|
||||
* @returns {Promise<string>}
|
||||
*/
|
||||
@Cordova()
|
||||
resolveNativePath(path: string): Promise<string> {return; }
|
||||
resolveNativePath(path: string): Promise<string> { return; }
|
||||
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -20,7 +20,6 @@ export interface FingerprintOptions {
|
||||
}
|
||||
|
||||
/**
|
||||
* @beta
|
||||
* @name Fingerprint AIO
|
||||
* @description
|
||||
* Use simple fingerprint authentication on Android and iOS.
|
||||
@ -35,8 +34,8 @@ export interface FingerprintOptions {
|
||||
* ...
|
||||
*
|
||||
* this.faio.show({
|
||||
* clientId: "Fingerprint-Demo",
|
||||
* clientSecret: "password", //Only necessary for Android
|
||||
* clientId: 'Fingerprint-Demo',
|
||||
* clientSecret: 'password', //Only necessary for Android
|
||||
* disableBackup:true //Only for Android(optional)
|
||||
* })
|
||||
* .then((result: any) => console.log(result))
|
||||
|
@ -3,12 +3,13 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
|
||||
/**
|
||||
* @beta
|
||||
* @name Firebase
|
||||
* @description
|
||||
* This plugin brings push notifications, analytics, event tracking, crash reporting and more from Google Firebase to your Cordova project! Android and iOS supported (including iOS 10).
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { Firebase } from '@ionic-native/firebase';
|
||||
*
|
||||
* constructor(private firebase: Firebase) { }
|
||||
@ -60,7 +61,7 @@ export class Firebase extends IonicNativePlugin {
|
||||
onNotificationOpen(): Observable<any> { return; }
|
||||
|
||||
/**
|
||||
* Grant permission to recieve push notifications
|
||||
* Grant permission to receive push notifications
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova({
|
||||
@ -68,13 +69,11 @@ export class Firebase extends IonicNativePlugin {
|
||||
})
|
||||
grantPermission(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Check permission to recieve push notifications
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova({
|
||||
platforms: ['iOS']
|
||||
})
|
||||
/**
|
||||
* Check permission to receive push notifications
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
hasPermission(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
@ -117,6 +116,14 @@ export class Firebase extends IonicNativePlugin {
|
||||
@Cordova()
|
||||
logEvent(type: string, data: any): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Log an Error using FirebaseCrash
|
||||
* @param message {string}
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
logError(message: string): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Set the name of the current screen in Analytics
|
||||
* @param name {string} Screen name
|
||||
@ -148,7 +155,6 @@ export class Firebase extends IonicNativePlugin {
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova({
|
||||
platforms: ['Android'],
|
||||
successIndex: 1,
|
||||
errorIndex: 2
|
||||
})
|
||||
@ -158,9 +164,7 @@ export class Firebase extends IonicNativePlugin {
|
||||
* Activate the Remote Config fetched config
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova({
|
||||
platforms: ['Android']
|
||||
})
|
||||
@Cordova()
|
||||
activateFetched(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
@ -170,7 +174,6 @@ export class Firebase extends IonicNativePlugin {
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova({
|
||||
platforms: ['Android'],
|
||||
successIndex: 2,
|
||||
errorIndex: 3
|
||||
})
|
||||
|
@ -17,7 +17,6 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
|
||||
*
|
||||
* this.flashlight.switchOn();
|
||||
*
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
@Plugin({
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Plugin, CordovaInstance, checkAvailability, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
export interface FlurryAnalyticsOptions {
|
||||
@ -72,91 +72,47 @@ export interface FlurryAnalyticsLocation {
|
||||
horizontalAccuracy?: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* @name Flurry Analytics
|
||||
* @description
|
||||
* This plugin connects to Flurry Analytics SDK
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* import { FlurryAnalytics } from 'ionic-native/flurry-analytics';
|
||||
*
|
||||
* constructor(private flurryAnalytics: FlurryAnalytics) { }
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* constant options: FlurryAnalyticsOptions = {
|
||||
* reportSessionsOnClose: true,
|
||||
* enableLogging: true
|
||||
* }
|
||||
*
|
||||
* FlurryAnalytics.init('12345678965412303214', options)
|
||||
* .then((something: any) => doSomething(something))
|
||||
* .catch((error: any) => console.log(error));
|
||||
*
|
||||
* ```
|
||||
* @interfaces
|
||||
* FlurryAnalyticsOptions
|
||||
* FlurryAnalyticsLocation
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: 'FlurryAnalyticsPlugin',
|
||||
plugin: 'cordova-plugin-flurryanalytics',
|
||||
pluginRef: 'fa',
|
||||
repo: 'https://github.com/blakgeek/cordova-plugin-flurryanalytics.git',
|
||||
platforms: ['Android', 'iOS', 'Browser']
|
||||
})
|
||||
@Injectable()
|
||||
export class FlurryAnalytics extends IonicNativePlugin {
|
||||
export class FlurryAnalyticsObject {
|
||||
|
||||
/**
|
||||
* Set the setting for Flurry Analytics
|
||||
* @param appKey {string} API key is required
|
||||
* @param options {FlurryAnalyticsOptions} is optional
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
init(appKey: string, options?: FlurryAnalyticsOptions): Promise<any> {
|
||||
return;
|
||||
}
|
||||
constructor(private _objectInstance: any) { }
|
||||
|
||||
/**
|
||||
* This function set the Event
|
||||
* @param eventName {string} The param to configure name of Event
|
||||
* @param params {Object} optional
|
||||
* @return {Promise<any>} Returns a promise that resolves when event is set
|
||||
* @param eventName {string} Name of the event
|
||||
* @param [params] {Object} Optional params
|
||||
* @return {Promise<any>} Returns a promise that resolves when event is sent
|
||||
*/
|
||||
@Cordova({
|
||||
successIndex: 1,
|
||||
errorIndex: 0
|
||||
@CordovaInstance({
|
||||
successIndex: 2,
|
||||
errorIndex: 3
|
||||
})
|
||||
logEvent(eventName: string, params?: any): Promise<any> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function start a timed event
|
||||
* @param eventName
|
||||
* @param params {Object} optional
|
||||
* Start a timed event
|
||||
* @param eventName {string} Name of the event
|
||||
* @param [params] {Object} Optional params
|
||||
* @return {Promise<any>} Returns a promise that resolves when timed event is started tracking
|
||||
*/
|
||||
@Cordova({
|
||||
successIndex: 1,
|
||||
errorIndex: 0
|
||||
@CordovaInstance({
|
||||
successIndex: 2,
|
||||
errorIndex: 3
|
||||
})
|
||||
startTimedEvent(eventName: string, params?: Object): Promise<any> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function complete a timed event
|
||||
* @param eventName
|
||||
* @param params {Object} optional
|
||||
* Complete a timed event
|
||||
* @param eventName {string} Name of the event
|
||||
* @param [params] {Object} Optional params
|
||||
* @return {Promise<any>} Returns a promise that resolves when timed event is ended tracking
|
||||
*/
|
||||
@Cordova({
|
||||
successIndex: 1,
|
||||
errorIndex: 0
|
||||
@CordovaInstance({
|
||||
successIndex: 2,
|
||||
errorIndex: 3
|
||||
})
|
||||
endTimedEvent(eventName: string, params?: Object): Promise<any> {
|
||||
return;
|
||||
@ -168,11 +124,8 @@ export class FlurryAnalytics extends IonicNativePlugin {
|
||||
* @param message
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova({
|
||||
successIndex: 1,
|
||||
errorIndex: 0
|
||||
})
|
||||
logError(code, message): Promise<any> {
|
||||
@CordovaInstance()
|
||||
logError(code: any, message: any): Promise<any> {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -180,7 +133,7 @@ export class FlurryAnalytics extends IonicNativePlugin {
|
||||
* This function log a page view
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
@CordovaInstance()
|
||||
logPageView(): Promise<any> {
|
||||
return;
|
||||
}
|
||||
@ -188,14 +141,12 @@ export class FlurryAnalytics extends IonicNativePlugin {
|
||||
/**
|
||||
* This function set the location for the event
|
||||
* (this is will only be used for very course grained statistics like city)
|
||||
* @param location
|
||||
* @param location {FlurryAnalyticsLocation}
|
||||
* @param message {string}
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova({
|
||||
successIndex: 1,
|
||||
errorIndex: 0
|
||||
})
|
||||
setLocation(location: FlurryAnalyticsLocation): Promise<any> {
|
||||
@CordovaInstance()
|
||||
setLocation(location: FlurryAnalyticsLocation, message: string): Promise<any> {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -204,7 +155,7 @@ export class FlurryAnalytics extends IonicNativePlugin {
|
||||
* Only needed for older versions of Android
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
@CordovaInstance()
|
||||
startSession(): Promise<any> {
|
||||
return;
|
||||
}
|
||||
@ -214,8 +165,70 @@ export class FlurryAnalytics extends IonicNativePlugin {
|
||||
* Only needed for older versions of Android
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
@CordovaInstance()
|
||||
endSession(): Promise<any> {
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @name Flurry Analytics
|
||||
* @description
|
||||
* This plugin connects to Flurry Analytics SDK
|
||||
*
|
||||
* @usage
|
||||
* ```typescript
|
||||
* import { FlurryAnalytics, FlurryAnalyticsObject, FlurryAnalyticsOptions } from 'ionic-native/flurry-analytics';
|
||||
*
|
||||
* constructor(private flurryAnalytics: FlurryAnalytics) { }
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* const options: FlurryAnalyticsOptions = {
|
||||
* appKey: '<your app key>', // REQUIRED
|
||||
* reportSessionsOnClose: true,
|
||||
* enableLogging: true
|
||||
* };
|
||||
*
|
||||
* let fa: FlurryAnalyticsObject = this.flurryAnalytics.create(options);
|
||||
*
|
||||
* fa.logEvent('event name')
|
||||
* .then(() => console.log('Logged an event!'))
|
||||
* .catch(e => console.log('Error logging the event', e));
|
||||
*
|
||||
* ```
|
||||
* @interfaces
|
||||
* FlurryAnalyticsOptions
|
||||
* FlurryAnalyticsLocation
|
||||
* @classes
|
||||
* FlurryAnalyticsObject
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: 'FlurryAnalytics',
|
||||
plugin: 'cordova-plugin-flurryanalytics',
|
||||
pluginRef: 'FlurryAnalytics',
|
||||
repo: 'https://github.com/blakgeek/cordova-plugin-flurryanalytics.git',
|
||||
platforms: ['Android', 'iOS', 'Browser']
|
||||
})
|
||||
@Injectable()
|
||||
export class FlurryAnalytics extends IonicNativePlugin {
|
||||
|
||||
/**
|
||||
* Creates a new instance of FlurryAnalyticsObject
|
||||
* @param options {FlurryAnalyticsOptions} options
|
||||
* @return {FlurryAnalyticsObject}
|
||||
*/
|
||||
create(options: FlurryAnalyticsOptions): FlurryAnalyticsObject {
|
||||
|
||||
let instance: any;
|
||||
|
||||
if (checkAvailability(FlurryAnalytics.pluginRef, null, FlurryAnalytics.pluginName) === true) {
|
||||
instance = new (window as any).FlurryAnalaytics(options);
|
||||
}
|
||||
|
||||
return new FlurryAnalyticsObject(instance);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2,14 +2,14 @@ import { Injectable } from '@angular/core';
|
||||
import { Cordova, Plugin, CordovaFunctionOverride, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
|
||||
declare var window: any;
|
||||
declare const window: any;
|
||||
|
||||
/**
|
||||
* @name Geofence
|
||||
* @description Monitors circular geofences around latitude/longitude coordinates, and sends a notification to the user when the boundary of a geofence is crossed. Notifications can be sent when the user enters and/or exits a geofence.
|
||||
* Geofences persist after device reboot. Geofences will be monitored even when the app is not running.
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { Geofence } from '@ionic-native/geofence';
|
||||
*
|
||||
* ...
|
||||
@ -28,15 +28,15 @@ declare var window: any;
|
||||
* private addGeofence() {
|
||||
* //options describing geofence
|
||||
* let fence = {
|
||||
* id: "69ca1b88-6fbe-4e80-a4d4-ff4d3748acdb", //any unique ID
|
||||
* id: '69ca1b88-6fbe-4e80-a4d4-ff4d3748acdb', //any unique ID
|
||||
* latitude: 37.285951, //center of geofence radius
|
||||
* longitude: -121.936650,
|
||||
* radius: 100, //radius to edge of geofence
|
||||
* radius: 100, //radius to edge of geofence in meters
|
||||
* transitionType: 3, //see 'Transition Types' below
|
||||
* notification: { //notification settings
|
||||
* id: 1, //any unique ID
|
||||
* title: "You crossed a fence", //notification title
|
||||
* text: "You just arrived to Gliwice city center.", //notification body
|
||||
* title: 'You crossed a fence', //notification title
|
||||
* text: 'You just arrived to Gliwice city center.', //notification body
|
||||
* openAppOnClick: true //open app when notification is tapped
|
||||
* }
|
||||
* }
|
||||
@ -148,7 +148,7 @@ export class Geofence extends IonicNativePlugin {
|
||||
|
||||
return new Observable<any>((observer) => {
|
||||
window && window.geofence && (window.geofence.onTransitionReceived = observer.next.bind(observer));
|
||||
return () => window.geofence.onTransitionReceived = () => {};
|
||||
return () => window.geofence.onTransitionReceived = () => { };
|
||||
});
|
||||
|
||||
}
|
||||
@ -162,7 +162,7 @@ export class Geofence extends IonicNativePlugin {
|
||||
|
||||
return new Observable<any>((observer) => {
|
||||
window && window.geofence && (window.geofence.onNotificationClicked = observer.next.bind(observer));
|
||||
return () => window.geofence.onNotificationClicked = () => {};
|
||||
return () => window.geofence.onNotificationClicked = () => { };
|
||||
});
|
||||
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
|
||||
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
|
||||
declare var navigator: any;
|
||||
declare const navigator: any;
|
||||
|
||||
export interface Coordinates {
|
||||
|
||||
@ -74,7 +74,7 @@ export interface PositionError {
|
||||
/**
|
||||
* A message that can describe the error that occurred
|
||||
*/
|
||||
message: string;
|
||||
message: string;
|
||||
|
||||
}
|
||||
|
||||
@ -174,7 +174,7 @@ export class Geolocation extends IonicNativePlugin {
|
||||
* Observable changes.
|
||||
*
|
||||
* ```typescript
|
||||
* var subscription = Geolocation.watchPosition()
|
||||
* const subscription = this.geolocation.watchPosition()
|
||||
* .filter((p) => p.coords !== undefined) //Filter Out Errors
|
||||
* .subscribe(position => {
|
||||
* console.log(position.coords.longitude + ' ' + position.coords.latitude);
|
||||
|
@ -72,12 +72,12 @@ export class Globalization extends IonicNativePlugin {
|
||||
/**
|
||||
* Returns a pattern string to format and parse dates according to the client's user preferences.
|
||||
* @param options Object with the format length and selector
|
||||
* @returns {Promise<{pattern: string}>} Returns a promise.
|
||||
* @returns {Promise<{ pattern: string, timezone: string, utf_offset: number, dst_offset: number }>} Returns a promise.
|
||||
*/
|
||||
@Cordova({
|
||||
callbackOrder: 'reverse'
|
||||
})
|
||||
getDatePattern(options: { formatLength: string, selector: string }): Promise<{ pattern: string }> { return; }
|
||||
getDatePattern(options: { formatLength: string, selector: string }): Promise<{ pattern: string, timezone: string, utf_offset: number, dst_offset: number }> { return; }
|
||||
|
||||
/**
|
||||
* Returns an array of the names of the months or days of the week, depending on the client's user preferences and calendar.
|
||||
|
@ -1,8 +1,6 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
|
||||
|
||||
declare var window;
|
||||
|
||||
/**
|
||||
* @name Google Analytics
|
||||
* @description
|
||||
|
@ -3,7 +3,7 @@ import { Cordova, CordovaInstance, CordovaCheck, Plugin, InstanceProperty, Insta
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import 'rxjs/add/observable/fromEvent';
|
||||
|
||||
declare var plugin: any;
|
||||
declare const plugin: any;
|
||||
|
||||
/**
|
||||
* @hidden
|
||||
@ -42,12 +42,12 @@ export const GoogleMapsAnimation = {
|
||||
* @hidden
|
||||
*/
|
||||
export const GoogleMapsMapTypeId = {
|
||||
HYBRID: 'MAP_TYPE_HYBRID',
|
||||
NONE: 'MAP_TYPE_NONE',
|
||||
NORMAL: 'MAP_TYPE_NORMAL',
|
||||
ROADMAP: 'MAP_TYPE_ROADMAP',
|
||||
SATELLITE: 'MAP_TYPE_SATELLITE',
|
||||
TERAIN: 'MAP_TYPE_TERRAIN'
|
||||
HYBRID: 'MAP_TYPE_HYBRID',
|
||||
NONE: 'MAP_TYPE_NONE',
|
||||
NORMAL: 'MAP_TYPE_NORMAL',
|
||||
ROADMAP: 'MAP_TYPE_ROADMAP',
|
||||
SATELLITE: 'MAP_TYPE_SATELLITE',
|
||||
TERAIN: 'MAP_TYPE_TERRAIN'
|
||||
};
|
||||
|
||||
/**
|
||||
@ -214,13 +214,13 @@ export class GoogleMap {
|
||||
@InstanceCheck()
|
||||
addMarker(options: MarkerOptions): Promise<Marker | any> {
|
||||
return new Promise<Marker>((resolve, reject) => {
|
||||
this._objectInstance.addMarker(options, (marker: any) => {
|
||||
if (marker) {
|
||||
resolve(new Marker(marker));
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
});
|
||||
this._objectInstance.addMarker(options, (marker: any) => {
|
||||
if (marker) {
|
||||
resolve(new Marker(marker));
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@ -230,13 +230,13 @@ export class GoogleMap {
|
||||
@InstanceCheck()
|
||||
addCircle(options: CircleOptions): Promise<Circle | any> {
|
||||
return new Promise<Circle>((resolve, reject) => {
|
||||
this._objectInstance.addCircle(options, (circle: any) => {
|
||||
if (circle) {
|
||||
resolve(new Circle(circle));
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
});
|
||||
this._objectInstance.addCircle(options, (circle: any) => {
|
||||
if (circle) {
|
||||
resolve(new Circle(circle));
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@ -246,13 +246,13 @@ export class GoogleMap {
|
||||
@InstanceCheck()
|
||||
addPolygon(options: PolygonOptions): Promise<Polygon | any> {
|
||||
return new Promise<Polygon>((resolve, reject) => {
|
||||
this._objectInstance.addPolygon(options, (polygon: any) => {
|
||||
if (polygon) {
|
||||
resolve(new Polygon(polygon));
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
});
|
||||
this._objectInstance.addPolygon(options, (polygon: any) => {
|
||||
if (polygon) {
|
||||
resolve(new Polygon(polygon));
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@ -262,13 +262,13 @@ export class GoogleMap {
|
||||
@InstanceCheck()
|
||||
addPolyline(options: PolylineOptions): Promise<Polyline | any> {
|
||||
return new Promise<Polyline>((resolve, reject) => {
|
||||
this._objectInstance.addPolyline(options, (polyline: any) => {
|
||||
if (polyline) {
|
||||
resolve(new Polyline(polyline));
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
});
|
||||
this._objectInstance.addPolyline(options, (polyline: any) => {
|
||||
if (polyline) {
|
||||
resolve(new Polyline(polyline));
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@ -278,13 +278,13 @@ export class GoogleMap {
|
||||
@InstanceCheck()
|
||||
addTileOverlay(options: TileOverlayOptions): Promise<TileOverlay | any> {
|
||||
return new Promise<TileOverlay>((resolve, reject) => {
|
||||
this._objectInstance.addTileOverlay(options, (tileOverlay: any) => {
|
||||
if (tileOverlay) {
|
||||
resolve(new TileOverlay(tileOverlay));
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
});
|
||||
this._objectInstance.addTileOverlay(options, (tileOverlay: any) => {
|
||||
if (tileOverlay) {
|
||||
resolve(new TileOverlay(tileOverlay));
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@ -294,13 +294,13 @@ export class GoogleMap {
|
||||
@InstanceCheck()
|
||||
addGroundOverlay(options: GroundOverlayOptions): Promise<GroundOverlay | any> {
|
||||
return new Promise<GroundOverlay>((resolve, reject) => {
|
||||
this._objectInstance.addGroundOverlay(options, (groundOverlay: any) => {
|
||||
if (groundOverlay) {
|
||||
resolve(new GroundOverlay(groundOverlay));
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
});
|
||||
this._objectInstance.addGroundOverlay(options, (groundOverlay: any) => {
|
||||
if (groundOverlay) {
|
||||
resolve(new GroundOverlay(groundOverlay));
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@ -310,13 +310,13 @@ export class GoogleMap {
|
||||
@InstanceCheck()
|
||||
addKmlOverlay(options: KmlOverlayOptions): Promise<KmlOverlay | any> {
|
||||
return new Promise<KmlOverlay>((resolve, reject) => {
|
||||
this._objectInstance.addKmlOverlay(options, (kmlOverlay: any) => {
|
||||
if (kmlOverlay) {
|
||||
resolve(new KmlOverlay(kmlOverlay));
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
});
|
||||
this._objectInstance.addKmlOverlay(options, (kmlOverlay: any) => {
|
||||
if (kmlOverlay) {
|
||||
resolve(new KmlOverlay(kmlOverlay));
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@ -351,7 +351,7 @@ export class GoogleMap {
|
||||
* @returns {Promise<LatLng>}
|
||||
*/
|
||||
@CordovaInstance()
|
||||
fromPointToLatLng(point: any, latLng: LatLng): Promise<LatLng> { return; }
|
||||
fromPointToLatLng(point: any): Promise<LatLng> { return; }
|
||||
|
||||
/**
|
||||
* @returns {Promise<any>}
|
||||
@ -363,14 +363,14 @@ export class GoogleMap {
|
||||
remove(): void { }
|
||||
|
||||
@CordovaInstance({ sync: true })
|
||||
panBy(): void { }
|
||||
panBy(x: string | number, y: string | number): void { }
|
||||
}
|
||||
|
||||
/**
|
||||
* @name Google Maps
|
||||
* @description This plugin uses the native Google Maps SDK
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import {
|
||||
* GoogleMaps,
|
||||
* GoogleMap,
|
||||
@ -403,7 +403,12 @@ export class GoogleMap {
|
||||
*
|
||||
* // listen to MAP_READY event
|
||||
* // You must wait for this event to fire before adding something to the map or modifying it in anyway
|
||||
* map.one(GoogleMapsEvent.MAP_READY).then(() => console.log('Map is ready!'));
|
||||
* map.one(GoogleMapsEvent.MAP_READY).then(
|
||||
* () => {
|
||||
* console.log('Map is ready!');
|
||||
* // Now you can add elements to the map like the marker
|
||||
* }
|
||||
* );
|
||||
*
|
||||
* // create LatLng object
|
||||
* let ionic: LatLng = new LatLng(43.0741904,-89.3809802);
|
||||
@ -450,7 +455,7 @@ export class GoogleMap {
|
||||
pluginRef: 'plugin.google.maps.Map',
|
||||
plugin: 'cordova-plugin-googlemaps',
|
||||
repo: 'https://github.com/mapsplugin/cordova-plugin-googlemaps',
|
||||
install: 'ionic plugin add cordova-plugin-googlemaps --variable API_KEY_FOR_ANDROID="YOUR_ANDROID_API_KEY_IS_HERE" --variable API_KEY_FOR_IOS="YOUR_IOS_API_KEY_IS_HERE"',
|
||||
install: 'ionic cordova plugin add cordova-plugin-googlemaps --variable API_KEY_FOR_ANDROID="YOUR_ANDROID_API_KEY_IS_HERE" --variable API_KEY_FOR_IOS="YOUR_IOS_API_KEY_IS_HERE"',
|
||||
installVariables: ['API_KEY_FOR_ANDROID', 'API_KEY_FOR_IOS'],
|
||||
platforms: ['Android', 'iOS']
|
||||
})
|
||||
@ -1468,7 +1473,7 @@ export class GroundOverlay {
|
||||
return Promise.reject({ error: 'plugin_not_installed' });
|
||||
}
|
||||
return new Promise<any>(
|
||||
resolve => this._objectInstance.addListenerOnce(eventName, resolve)
|
||||
(resolve: Function) => this._objectInstance.addListenerOnce(eventName, resolve)
|
||||
);
|
||||
}
|
||||
|
||||
@ -1761,7 +1766,7 @@ export class Geocoder {
|
||||
*/
|
||||
@CordovaCheck()
|
||||
geocode(request: GeocoderRequest): Promise<GeocoderResult[] | any> {
|
||||
return new Promise<GeocoderResult[]>(resolve => {
|
||||
return new Promise<GeocoderResult[]>((resolve: Function) => {
|
||||
plugin.google.maps.Geocoder.geocode(request, resolve);
|
||||
});
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
declare var navigator: any;
|
||||
declare const navigator: any;
|
||||
|
||||
/**
|
||||
* @hidden
|
||||
@ -43,7 +43,7 @@ export interface GyroscopeOptions {
|
||||
* @name Gyroscope
|
||||
* @description Read Gyroscope sensor data
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { Gyroscope, GyroscopeOrientation, GyroscopeOptions } from '@ionic-native/gyroscope';
|
||||
*
|
||||
*
|
||||
@ -89,7 +89,7 @@ export class Gyroscope extends IonicNativePlugin {
|
||||
* @return {Observable<GyroscopeOrientation>} Returns an Observable that resolves GyroscopeOrientation
|
||||
*/
|
||||
watch(options?: GyroscopeOptions): Observable<GyroscopeOrientation> {
|
||||
return new Observable<GyroscopeOrientation> (
|
||||
return new Observable<GyroscopeOrientation>(
|
||||
(observer: any) => {
|
||||
let watchId = navigator.gyroscope.watch(observer.next.bind(observer), observer.next.bind(observer), options);
|
||||
return () => navigator.gyroscope.clearWatch(watchId);
|
||||
|
@ -4,7 +4,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
/**
|
||||
* @name Header Color
|
||||
* @description
|
||||
* Cordova plugin to change color of header in multitask view
|
||||
* Cordova plugin to change color of header in Android Multitask View
|
||||
*
|
||||
* @usage
|
||||
* ```typescript
|
||||
@ -14,7 +14,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* this.headerColor.tint("#becb29");
|
||||
* this.headerColor.tint('#becb29');
|
||||
* ```
|
||||
*/
|
||||
@Plugin({
|
||||
|
309
src/@ionic-native/plugins/health-kit/index.ts
Normal file
309
src/@ionic-native/plugins/health-kit/index.ts
Normal file
@ -0,0 +1,309 @@
|
||||
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
export interface HealthKitOptions {
|
||||
/**
|
||||
* HKWorkoutActivityType constant
|
||||
* Read more here: https://developer.apple.com/library/ios/documentation/HealthKit/Reference/HKWorkout_Class/#//apple_ref/c/tdef/HKWorkoutActivityType
|
||||
*/
|
||||
activityType?: string; //
|
||||
|
||||
/**
|
||||
* 'hour', 'week', 'year' or 'day', default 'day'
|
||||
*/
|
||||
aggregation?: string;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
amount?: number;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
correlationType?: string;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
date?: any;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
distance?: number;
|
||||
|
||||
/**
|
||||
* probably useful with the former param
|
||||
*/
|
||||
distanceUnit?: string;
|
||||
|
||||
/**
|
||||
* in seconds, optional, use either this or endDate
|
||||
*/
|
||||
duration?: number;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
endDate?: any;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
energy?: number;
|
||||
|
||||
/**
|
||||
* J|cal|kcal
|
||||
*/
|
||||
energyUnit?: string;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
extraData?: any;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
metadata?: any;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
quantityType?: string;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
readTypes?: any;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
requestWritePermission?: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
samples?: any;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
sampleType?: string;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
startDate?: any;
|
||||
|
||||
/**
|
||||
* m|cm|mm|in|ft
|
||||
*/
|
||||
unit?: string;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
requestReadPermission?: boolean;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
writeTypes?: any;
|
||||
}
|
||||
|
||||
/**
|
||||
* @name Health Kit
|
||||
* @description
|
||||
* The HealthKit plugin allows you to read data from and write data to the iOS 8+ HealthKit framework.
|
||||
* Any data saved shows up in the iOS Health app and is available for other iOS apps.
|
||||
*
|
||||
* @usage
|
||||
* ```typescript
|
||||
* import { HealthKit } from '@ionic-native/health-kit';
|
||||
*
|
||||
*
|
||||
* constructor(private healthKit: HealthKit) { }
|
||||
*
|
||||
* ...
|
||||
* ```
|
||||
*
|
||||
* @interfaces
|
||||
* HealthKitOptions
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: 'HealthKit',
|
||||
plugin: 'com.telerik.plugins.healthkit',
|
||||
pluginRef: 'window.plugins.healthkit',
|
||||
repo: 'https://github.com/Telerik-Verified-Plugins/HealthKit',
|
||||
platforms: ['iOS']
|
||||
})
|
||||
@Injectable()
|
||||
export class HealthKit extends IonicNativePlugin {
|
||||
|
||||
/**
|
||||
* Check if HealthKit is supported (iOS8+, not on iPad)
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
available(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Pass in a type and get back on of undetermined | denied | authorized
|
||||
* @param options {HealthKitOptions}
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
checkAuthStatus(options: HealthKitOptions): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Ask some or all permissions up front
|
||||
* @param options {HealthKitOptions}
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
requestAuthorization(options: HealthKitOptions): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Formatted as yyyy-MM-dd
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
readDateOfBirth(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Output = male|female|other|unknown
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
readGender(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Output = A+|A-|B+|B-|AB+|AB-|O+|O-|unknown
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
readBloodType(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Output = I|II|III|IV|V|VI|unknown
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
readFitzpatrickSkinType(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Pass in unit (g=gram, kg=kilogram, oz=ounce, lb=pound, st=stone) and amount
|
||||
* @param options {HealthKitOptions}
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
saveWeight(options: HealthKitOptions): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Pass in unit (g=gram, kg=kilogram, oz=ounce, lb=pound, st=stone)
|
||||
* @param options {HealthKitOptions}
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
readWeight(options: HealthKitOptions): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Pass in unit (mm=millimeter, cm=centimeter, m=meter, in=inch, ft=foot) and amount
|
||||
* @param options {HealthKitOptions}
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
saveHeight(options: HealthKitOptions): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Pass in unit (mm=millimeter, cm=centimeter, m=meter, in=inch, ft=foot)
|
||||
* @param options {HealthKitOptions}
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
readHeight(options: HealthKitOptions): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* no params yet, so this will return all workouts ever of any type
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
findWorkouts(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param options {HealthKitOptions}
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
saveWorkout(options: HealthKitOptions): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param options {HealthKitOptions}
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
querySampleType(options: HealthKitOptions): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param options {HealthKitOptions}
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
querySampleTypeAggregated(options: HealthKitOptions): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param options {HealthKitOptions}
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
deleteSamples(options: HealthKitOptions): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param options {HealthKitOptions}
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
monitorSampleType(options: HealthKitOptions): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param options {HealthKitOptions}
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
sumQuantityType(options: HealthKitOptions): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param options {HealthKitOptions}
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
saveQuantitySample(options: HealthKitOptions): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param options {HealthKitOptions}
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
saveCorrelation(options: HealthKitOptions): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param options {HealthKitOptions}
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
queryCorrelationType(options: HealthKitOptions): Promise<any> { return; }
|
||||
|
||||
|
||||
}
|
@ -160,7 +160,7 @@ export interface HealthData {
|
||||
* A plugin that abstracts fitness and health repositories like Apple HealthKit or Google Fit.
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { Health } from '@ionic-native/health';
|
||||
*
|
||||
*
|
||||
|
@ -30,7 +30,7 @@ export interface HTTPResponse {
|
||||
* - SSL Pinning
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { HTTP } from '@ionic-native/http';
|
||||
*
|
||||
* constructor(private http: HTTP) { }
|
||||
|
@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
|
||||
import { Cordova, Plugin, CordovaCheck, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
|
||||
declare var cordova: any;
|
||||
declare const cordova: any;
|
||||
|
||||
export interface Beacon {
|
||||
/**
|
||||
@ -434,7 +434,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
|
||||
* native layer acknowledged the request and started to send events.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
onDomDelegateReady(): Promise<void> { return; }
|
||||
|
||||
/**
|
||||
@ -442,7 +442,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<boolean>} Returns a promise which is resolved with a {Boolean}
|
||||
* indicating whether bluetooth is active.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
isBluetoothEnabled(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
@ -451,7 +451,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<void>} Returns a promise which is resolved when Bluetooth
|
||||
* could be enabled. If not, the promise will be rejected with an error.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
enableBluetooth(): Promise<void> { return; }
|
||||
|
||||
/**
|
||||
@ -460,7 +460,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<void>} Returns a promise which is resolved when Bluetooth
|
||||
* could be enabled. If not, the promise will be rejected with an error.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
disableBluetooth(): Promise<void> { return; }
|
||||
|
||||
/**
|
||||
@ -480,7 +480,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<string>} Returns a promise which is resolved as soon as the
|
||||
* native layer acknowledged the dispatch of the monitoring request.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
startMonitoringForRegion(region: BeaconRegion): Promise<string> { return; }
|
||||
|
||||
/**
|
||||
@ -497,7 +497,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
|
||||
* native layer acknowledged the dispatch of the request to stop monitoring.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
stopMonitoringForRegion(region: BeaconRegion): Promise<void> { return; }
|
||||
|
||||
/**
|
||||
@ -513,7 +513,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
|
||||
* native layer acknowledged the dispatch of the request to stop monitoring.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
requestStateForRegion(region: Region): Promise<void> { return; }
|
||||
|
||||
|
||||
@ -531,7 +531,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
|
||||
* native layer acknowledged the dispatch of the monitoring request.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
startRangingBeaconsInRegion(region: BeaconRegion): Promise<void> { return; }
|
||||
|
||||
/**
|
||||
@ -548,7 +548,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
|
||||
* native layer acknowledged the dispatch of the request to stop monitoring.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
stopRangingBeaconsInRegion(region: BeaconRegion): Promise<void> { return; }
|
||||
|
||||
/**
|
||||
@ -557,7 +557,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<IBeaconPluginResult>} Returns a promise which is resolved with the
|
||||
* requested authorization status.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
getAuthorizationStatus(): Promise<IBeaconPluginResult> { return; }
|
||||
|
||||
/**
|
||||
@ -569,7 +569,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* If you are using this plugin on Android devices only, you will never have to use this, nor {@code requestAlwaysAuthorization}
|
||||
* @returns {Promise<void>} Returns a promise that is resolved when the request dialog is shown.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
requestWhenInUseAuthorization(): Promise<void> { return; }
|
||||
|
||||
|
||||
@ -579,7 +579,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<void>} Returns a promise which is resolved when the native layer
|
||||
* shows the request dialog.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
requestAlwaysAuthorization(): Promise<void> { return; }
|
||||
|
||||
/**
|
||||
@ -587,7 +587,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<Region[]>} Returns a promise which is resolved with an {Array}
|
||||
* of {Region} instances that are being monitored by the native layer.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
getMonitoredRegions(): Promise<Region[]> { return; }
|
||||
|
||||
/**
|
||||
@ -595,7 +595,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<Region[]>} Returns a promise which is resolved with an {Array}
|
||||
* of {Region} instances that are being ranged by the native layer.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
getRangedRegions(): Promise<Region[]> { return; }
|
||||
|
||||
/**
|
||||
@ -603,7 +603,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<boolean>} Returns a promise which is resolved with a {Boolean}
|
||||
* indicating whether ranging is available or not.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
isRangingAvailable(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
@ -615,7 +615,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<boolean>} Returns a promise which is resolved with a {Boolean}
|
||||
* indicating whether the region type is supported or not.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
isMonitoringAvailableForClass(region: Region): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
@ -635,7 +635,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
|
||||
* native layer acknowledged the dispatch of the advertising request.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
startAdvertising(region: Region, measuredPower: number): Promise<void> { return; }
|
||||
|
||||
/**
|
||||
@ -646,7 +646,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
|
||||
* native layer acknowledged the dispatch of the request to stop advertising.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
stopAdvertising(region: Region): Promise<void> { return; }
|
||||
|
||||
/**
|
||||
@ -654,7 +654,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<void>} Returns a promise which is resolved with a {Boolean}
|
||||
* indicating whether advertising is available or not.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
isAdvertisingAvailable(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
@ -662,7 +662,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<void>} Returns a promise which is resolved with a {Boolean}
|
||||
* indicating whether advertising is active.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
isAdvertising(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
@ -672,7 +672,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
|
||||
* native layer has set the logging level accordingly.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
disableDebugLogs(): Promise<void> { return; }
|
||||
|
||||
/**
|
||||
@ -683,7 +683,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
|
||||
* native layer has set the flag to enabled.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
enableDebugNotifications(): Promise<void> { return; }
|
||||
|
||||
/**
|
||||
@ -693,7 +693,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
|
||||
* native layer has set the flag to disabled.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
disableDebugNotifications(): Promise<void> { return; }
|
||||
|
||||
/**
|
||||
@ -703,7 +703,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* @returns {Promise<void>} Returns a promise which is resolved as soon as the
|
||||
* native layer has set the logging level accordingly.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
enableDebugLogs(): Promise<void> { return; }
|
||||
|
||||
/**
|
||||
@ -716,7 +716,7 @@ export class IBeacon extends IonicNativePlugin {
|
||||
* message received by the native layer for appending. The returned message
|
||||
* is expected to be equivalent to the one provided in the original call.
|
||||
*/
|
||||
@Cordova({otherPromise: true})
|
||||
@Cordova({ otherPromise: true })
|
||||
appendToDeviceLog(message: string): Promise<void> { return; }
|
||||
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
|
||||
|
||||
export interface ImagePickerOptions {
|
||||
/**
|
||||
* max images to be selected, defaults to 15. If this is set to 1, upon selection of a single image, the plugin will return it.
|
||||
* max images to be selected, defaults to 15. If this is set to 1, upon selection of a single image, the plugin will return it. (Android only)
|
||||
*/
|
||||
maximumImagesCount?: number;
|
||||
|
||||
|
@ -2,39 +2,39 @@ import { Injectable } from '@angular/core';
|
||||
import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core';
|
||||
|
||||
export interface ImageResizerOptions {
|
||||
/**
|
||||
* The URI for the image on the device to get scaled
|
||||
*/
|
||||
uri: string;
|
||||
/**
|
||||
* The URI for the image on the device to get scaled
|
||||
*/
|
||||
uri: string;
|
||||
|
||||
/**
|
||||
* The width of the new image
|
||||
*/
|
||||
width: number;
|
||||
/**
|
||||
* The width of the new image
|
||||
*/
|
||||
width: number;
|
||||
|
||||
/**
|
||||
* The height of the new image
|
||||
*/
|
||||
height: number;
|
||||
/**
|
||||
* The height of the new image
|
||||
*/
|
||||
height: number;
|
||||
|
||||
/**
|
||||
* The name of the folder the image should be put
|
||||
* (Android only)
|
||||
*/
|
||||
folderName?: string;
|
||||
/**
|
||||
* The name of the folder the image should be put
|
||||
* (Android only)
|
||||
*/
|
||||
folderName?: string;
|
||||
|
||||
/**
|
||||
*
|
||||
* Quality given as Number for the quality of the new image
|
||||
* (Android and iOS only)
|
||||
*/
|
||||
quality?: number;
|
||||
/**
|
||||
*
|
||||
* Quality given as Number for the quality of the new image
|
||||
* (Android and iOS only)
|
||||
*/
|
||||
quality?: number;
|
||||
|
||||
/**
|
||||
* A custom name for the file. Default name is a timestamp
|
||||
* (Android and Windows only)
|
||||
*/
|
||||
fileName?: string;
|
||||
/**
|
||||
* A custom name for the file. Default name is a timestamp
|
||||
* (Android and Windows only)
|
||||
*/
|
||||
fileName?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -3,7 +3,7 @@ import { Plugin, CordovaInstance, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import 'rxjs/add/observable/fromEvent';
|
||||
|
||||
declare var cordova: any;
|
||||
declare const cordova: Cordova & { InAppBrowser: any; };
|
||||
|
||||
export interface InAppBrowserOptions {
|
||||
/** Set to yes or no to turn the InAppBrowser's location bar on or off. */
|
||||
@ -48,6 +48,11 @@ export interface InAppBrowserOptions {
|
||||
/** (Windows only) Set to yes to create the browser control without a border around it.
|
||||
* Please note that if location=no is also specified, there will be no control presented to user to close IAB window. */
|
||||
fullscreen?: 'yes';
|
||||
|
||||
/**
|
||||
* @hidden
|
||||
*/
|
||||
[key: string]: any;
|
||||
}
|
||||
export interface InAppBrowserEvent extends Event {
|
||||
/** the eventname, either loadstart, loadstop, loaderror, or exit. */
|
||||
@ -71,18 +76,27 @@ export class InAppBrowserObject {
|
||||
* Opens a URL in a new InAppBrowser instance, the current browser instance, or the system browser.
|
||||
* @param {string} url The URL to load.
|
||||
* @param {string} [target="self"] The target in which to load the URL, an optional parameter that defaults to _self.
|
||||
* _self: Opens in the WebView if the URL is in the white list, otherwise it opens in the InAppBrowser.
|
||||
* _blank: Opens in the InAppBrowser.
|
||||
* _system: Opens in the system's web browser.
|
||||
* @param {string | InAppBrowserOptions} [options] Options for the InAppBrowser. Optional, defaulting to: location=yes.
|
||||
* The options string must not contain any blank space, and each feature's
|
||||
* name/value pairs must be separated by a comma. Feature names are case insensitive.
|
||||
*/
|
||||
constructor(url: string, target?: string, options?: string | InAppBrowserOptions) {
|
||||
try {
|
||||
if (options && typeof options !== 'string')
|
||||
options = Object.keys(options).map(key => `${key}=${options[key]}`).join(',');
|
||||
|
||||
if (options && typeof options !== 'string') {
|
||||
options = Object.keys(options).map((key: string) => `${key}=${(<InAppBrowserOptions>options)[key]}`).join(',');
|
||||
}
|
||||
|
||||
this._objectInstance = cordova.InAppBrowser.open(url, target, options);
|
||||
|
||||
} catch (e) {
|
||||
window.open(url);
|
||||
|
||||
window.open(url, target);
|
||||
console.warn('Native: InAppBrowser is not installed or you are running on a browser. Falling back to window.open.');
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -145,7 +159,7 @@ export class InAppBrowserObject {
|
||||
* ...
|
||||
*
|
||||
*
|
||||
* const browser = this.iab.create('https://ionic.io');
|
||||
* const browser = this.iab.create('https://ionicframework.com/');
|
||||
*
|
||||
* browser.executeScript(...);
|
||||
* browser.insertCSS(...);
|
||||
|
@ -8,7 +8,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
* A lightweight Cordova plugin for in app purchases on iOS/Android.
|
||||
*
|
||||
* @usage
|
||||
* ```ts
|
||||
* ```typescript
|
||||
* import { InAppPurchase } from '@ionic-native/in-app-purchase';
|
||||
*
|
||||
* constructor(private iap: InAppPurchase) { }
|
||||
@ -16,7 +16,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
* ...
|
||||
*
|
||||
* this.iap
|
||||
* .getProducts(['com.yourapp.prod1', 'com.yourapp.prod2', ...])
|
||||
* .getProducts(['prod1', 'prod2', ...])
|
||||
* .then((products) => {
|
||||
* console.log(products);
|
||||
* // [{ productId: 'com.yourapp.prod1', 'title': '...', description: '...', price: '...' }, ...]
|
||||
@ -27,7 +27,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
*
|
||||
*
|
||||
* this.iap
|
||||
* .buy('com.yourapp.prod1')
|
||||
* .buy('prod1')
|
||||
* .then((data)=> {
|
||||
* console.log(data);
|
||||
* // {
|
||||
@ -44,10 +44,10 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
*
|
||||
* @advanced
|
||||
*
|
||||
* ```ts
|
||||
* ```typescript
|
||||
* // fist buy the product...
|
||||
* this.iap
|
||||
* .buy('com.yourapp.consumable_prod1')
|
||||
* .buy('consumable_prod1')
|
||||
* .then(data => this.iap.consume(data.productType, data.receipt, data.signature))
|
||||
* .then(() => console.log('product was successfully consumed!'))
|
||||
* .catch( err=> console.log(err))
|
||||
@ -81,7 +81,7 @@ export class InAppPurchase extends IonicNativePlugin {
|
||||
@Cordova({
|
||||
otherPromise: true
|
||||
})
|
||||
buy(productId: string): Promise<{transactionId: string, receipt: string, signature: string, productType: string}> { return; }
|
||||
buy(productId: string): Promise<{ transactionId: string, receipt: string, signature: string, productType: string }> { return; }
|
||||
|
||||
/**
|
||||
* Same as buy, but for subscription based products.
|
||||
@ -91,7 +91,7 @@ export class InAppPurchase extends IonicNativePlugin {
|
||||
@Cordova({
|
||||
otherPromise: true
|
||||
})
|
||||
subscribe(productId: string): Promise<{transactionId: string, receipt: string, signature: string, productType: string}> { return; }
|
||||
subscribe(productId: string): Promise<{ transactionId: string, receipt: string, signature: string, productType: string }> { return; }
|
||||
|
||||
/**
|
||||
* Call this function after purchasing a "consumable" product to mark it as consumed. On Android, you must consume products that you want to let the user purchase multiple times. If you will not consume the product after a purchase, the next time you will attempt to purchase it you will get the error message:
|
||||
|
@ -6,7 +6,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
* @description Share a photo with the instagram app
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { Instagram } from '@ionic-native/instagram';
|
||||
*
|
||||
* constructor(private instagram: Instagram) { }
|
||||
@ -37,7 +37,7 @@ export class Instagram extends IonicNativePlugin {
|
||||
@Cordova({
|
||||
callbackStyle: 'node'
|
||||
})
|
||||
isInstalled(): Promise<boolean|string> { return; }
|
||||
isInstalled(): Promise<boolean | string> { return; }
|
||||
|
||||
/**
|
||||
* Share an image on Instagram
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
declare var window: any;
|
||||
declare const window: any;
|
||||
|
||||
export interface IntelSecurityDataOptions {
|
||||
/** Non-empty string. **/
|
||||
@ -40,7 +40,7 @@ export interface IntelSecurityDataOptions {
|
||||
* For more information please visit the [API documentation](https://software.intel.com/en-us/app-security-api/api).
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { IntelSecurity } from '@ionic-native/intel-security';
|
||||
* ...
|
||||
* constructor(private intelSecurity: IntelSecurity) { }
|
||||
|
158
src/@ionic-native/plugins/intercom/index.ts
Normal file
158
src/@ionic-native/plugins/intercom/index.ts
Normal file
@ -0,0 +1,158 @@
|
||||
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
/**
|
||||
* @name Intercom
|
||||
* @description
|
||||
* This is a plugin that allows your Ionic app to use Intercom for iOS and/or Intercom for Android.
|
||||
* Follow the offical documentation to setup this plugin correctly: https://developers.intercom.com/docs/cordova-phonegap-configuration
|
||||
*
|
||||
* @usage
|
||||
* ```typescript
|
||||
* import { Intercom } from '@ionic-native/intercom';
|
||||
*
|
||||
*
|
||||
* constructor(private intercom: Intercom) { }
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* this.intercom.registerUnidentifiedUser();
|
||||
* ...
|
||||
* this.intercom.registerForPush();
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: 'Intercom',
|
||||
plugin: 'cordova-plugin-intercom',
|
||||
pluginRef: 'intercom',
|
||||
repo: 'https://github.com/intercom/intercom-cordova',
|
||||
platforms: ['Android', 'iOS'],
|
||||
})
|
||||
@Injectable()
|
||||
export class Intercom extends IonicNativePlugin {
|
||||
|
||||
/**
|
||||
* Register a identified user
|
||||
* @param options {any} Options
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
registerIdentifiedUser(options: any): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Register a unidentified user
|
||||
* @param options {any} Options
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
registerUnidentifiedUser(options: any): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* This resets the Intercom integration's cache of your user's identity and wipes the slate clean.
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
reset(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param secureHash {string}
|
||||
* @param secureData {any}
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
setSecureMode(secureHash: string, secureData: any): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param secureHash {string}
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
setUserHash(secureHash: string): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param attributes {any}
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
updateUser(attributes: any): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param eventName {string}
|
||||
* @param metaData {any}
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
logEvent(eventName: string, metaData: any): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
displayMessenger(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
displayMessageComposer(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param initialMessage {string}
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
displayMessageComposerWithInitialMessage(initialMessage: string): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
displayConversationsList(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
unreadConversationCount(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param visibility {string}
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
setLauncherVisibility(visibility: string): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param visibility {string}
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
setInAppMessageVisibility(visibility: string): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
hideMessenger(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @return {Promise<any>} Returns a promise
|
||||
*/
|
||||
@Cordova()
|
||||
registerForPush(): Promise<any> { return; }
|
||||
|
||||
}
|
@ -8,7 +8,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
* Debug mode is when the app is built and installed locally via xcode / eclipse / the cordova cli etc, compared to release mode when the app was downloaded from the app / play store via an end user.
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { IsDebug } from '@ionic-native/is-debug';
|
||||
*
|
||||
* constructor(private isDebug: IsDebug) { }
|
||||
|
@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
|
||||
import { Plugin, Cordova, CordovaCheck, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
|
||||
declare var cordova: any;
|
||||
declare const cordova: any;
|
||||
|
||||
/**
|
||||
* @name Jins Meme
|
||||
@ -10,7 +10,7 @@ declare var cordova: any;
|
||||
* Implementation of the JINS MEME SDK
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { JinsMeme } from '@ionic-native/jins-meme';
|
||||
*
|
||||
* constructor(private jinsMeme: JinsMeme) { }
|
||||
@ -75,11 +75,11 @@ export class JinsMeme extends IonicNativePlugin {
|
||||
observable: true
|
||||
})
|
||||
connect(target: string): Observable<any> {
|
||||
return new Observable<any>((observer: any) => {
|
||||
let data = cordova.plugins.JinsMemePlugin.connect(target, observer.next.bind(observer), observer.complete.bind(observer), observer.error.bind(observer));
|
||||
return () => console.log(data);
|
||||
});
|
||||
}
|
||||
return new Observable<any>((observer: any) => {
|
||||
let data = cordova.plugins.JinsMemePlugin.connect(target, observer.next.bind(observer), observer.complete.bind(observer), observer.error.bind(observer));
|
||||
return () => console.log(data);
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Set auto connection mode.
|
||||
*@param {Boolean} flag
|
||||
@ -109,10 +109,10 @@ export class JinsMeme extends IonicNativePlugin {
|
||||
clearWithArgs: true
|
||||
})
|
||||
startDataReport(): Observable<any> { return; }
|
||||
/**
|
||||
* Stops receiving data.
|
||||
*@returns {Promise<any>}
|
||||
*/
|
||||
/**
|
||||
* Stops receiving data.
|
||||
*@returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
stopDataReport(): Promise<any> { return; }
|
||||
/**
|
||||
|
@ -34,7 +34,7 @@ export class Keyboard extends IonicNativePlugin {
|
||||
* Hide the keyboard accessory bar with the next, previous and done buttons.
|
||||
* @param hide {boolean}
|
||||
*/
|
||||
@Cordova({sync: true})
|
||||
@Cordova({ sync: true })
|
||||
hideKeyboardAccessoryBar(hide: boolean): void { }
|
||||
|
||||
/**
|
||||
|
@ -56,7 +56,7 @@ export class Keychain extends IonicNativePlugin {
|
||||
@Cordova({
|
||||
callbackOrder: 'reverse'
|
||||
})
|
||||
set(key: string, value: string|number|boolean, useTouchID?: boolean): Promise<any> { return; }
|
||||
set(key: string, value: string | number | boolean, useTouchID?: boolean): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Gets a JSON value for a key
|
||||
|
@ -10,7 +10,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
* On iOS, the plugin opens the app's storepage in the App Store and focuses the Review tab, where the user can leave a review by pressing "Write a review".
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { LaunchReview } from '@ionic-native/launch-review';
|
||||
*
|
||||
* constructor(private launchReview: LaunchReview) { }
|
||||
|
@ -11,7 +11,7 @@ export type LinkedInLoginScopes = 'r_basicprofile' | 'r_emailaddress' | 'rw_comp
|
||||
* Please see the [plugin's repo](https://github.com/zyramedia/cordova-plugin-linkedin#installation) for detailed installation steps.
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { LinkedIn } from '@ionic-native/linkedin';
|
||||
*
|
||||
* constructor(private linkedin: LinkedIn) { }
|
||||
@ -100,10 +100,17 @@ export class LinkedIn extends IonicNativePlugin {
|
||||
openProfile(memberId: string): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Checks if there is already an existing active session. This should be used to avoid unecessary login.
|
||||
* Checks if there is already an existing active session. This should be used to avoid unnecessary login.
|
||||
* @return {Promise<boolean>} returns a promise that resolves with a boolean that indicates whether there is an active session
|
||||
*/
|
||||
@Cordova()
|
||||
hasActiveSession(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
* Checks if there is an active session and returns the access token if it exists.
|
||||
* @return {Promise<any>} returns a promise that resolves with an object that contains an access token if there is an active session
|
||||
*/
|
||||
@Cordova()
|
||||
getActiveSession(): Promise<any> { return; }
|
||||
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
* This Cordova/Phonegap plugin for Android and iOS to request enabling/changing of Location Services by triggering a native dialog from within the app, avoiding the need for the user to leave your app to change location settings manually.
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { LocationAccuracy } from '@ionic-native/location-accuracy';
|
||||
*
|
||||
* constructor(private locationAccuracy: LocationAccuracy) { }
|
||||
|
@ -6,7 +6,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
* Opens an app's page in the market place (Google Play, App Store)
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { Market } from '@ionic-native/market';
|
||||
*
|
||||
* constructor(private market: Market) { }
|
||||
|
@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
|
||||
import { Cordova, CordovaProperty, Plugin, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
|
||||
declare var navigator: any;
|
||||
declare const navigator: any;
|
||||
|
||||
export interface MediaFile {
|
||||
/**
|
||||
@ -33,7 +33,7 @@ export interface MediaFile {
|
||||
* @param {Function} successCallback
|
||||
* @param {Function} errorCallback
|
||||
*/
|
||||
getFormatData(successCallback: (data: MediaFileData) => any, errorCallback?: (err: any) => any);
|
||||
getFormatData(successCallback: (data: MediaFileData) => any, errorCallback?: (err: any) => any): void;
|
||||
}
|
||||
|
||||
export interface MediaFileData {
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { CordovaInstance, Plugin, CordovaCheck, IonicNativePlugin } from '@ionic-native/core';
|
||||
|
||||
declare var Media: any;
|
||||
declare const Media: any;
|
||||
|
||||
|
||||
/**
|
||||
@ -147,6 +147,31 @@ export type MediaErrorCallback = (error: MediaError) => void;
|
||||
/**
|
||||
* @name Media
|
||||
* @description
|
||||
* Some hints if you are using iOS and recording doesn't work:
|
||||
* 1.) Try to use a absolute file path but remove beginning "file://".
|
||||
* Then it looks like: `/var/mobile/Containers/Data/Application/AF438B8B-7724-4FBB-8E69-083463224FC4/tmp/my_file.m4a`
|
||||
* Example: `this.media.create(this.file.tempDirectory.replace(/^file:\/\//, '') + 'my_file.m4a')`
|
||||
* 2.) If that's not working, too, create the file before using.
|
||||
* Example:
|
||||
* ```typescript
|
||||
* import { MediaPlugin, MediaObject } from '@ionic-native/media';
|
||||
* import { File } from '@ionic-native/file';
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* constructor(private media: MediaPlugin, private file: File) { }
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* this.file.createFile(this.file.tempDirectory, 'my_file.m4a', true).then(() => {
|
||||
* let file = this.media.create(this.file.tempDirectory.replace(/^file:\/\//, '') + 'my_file.m4a');
|
||||
* file.startRecord();
|
||||
* window.setTimeout(() => file.stopRecord(), 10000);
|
||||
* });
|
||||
* ```
|
||||
*
|
||||
* You can find the reasons here: https://github.com/driftyco/ionic-native/issues/1452#issuecomment-299605906
|
||||
*
|
||||
* @usage
|
||||
* ```typescript
|
||||
* import { MediaPlugin, MediaObject } from '@ionic-native/media';
|
||||
|
@ -9,8 +9,8 @@ declare var mixpanel: any;
|
||||
* Cordova Plugin that wraps Mixpanel SDK for Android and iOS
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* import { Mixpanel, MixpanelPeople } from '@ionic-native/mixpanel';
|
||||
* ```typescript
|
||||
* import { Mixpanel } from '@ionic-native/mixpanel';
|
||||
*
|
||||
* constructor(private mixpanel: Mixpanel, private mixpanelPeople: MixpanelPeople) { }
|
||||
*
|
||||
@ -86,6 +86,14 @@ export class Mixpanel extends IonicNativePlugin {
|
||||
@Cordova()
|
||||
reset(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param eventName {string}
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
timeEvent(eventName: string): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param eventName {string}
|
||||
@ -98,13 +106,6 @@ export class Mixpanel extends IonicNativePlugin {
|
||||
})
|
||||
track(eventName: string, eventProperties?: any): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
showSurvey(): Promise<any> { return; }
|
||||
|
||||
}
|
||||
/**
|
||||
* @hidden
|
||||
|
224
src/@ionic-native/plugins/mobile-accessibility/index.ts
Normal file
224
src/@ionic-native/plugins/mobile-accessibility/index.ts
Normal file
@ -0,0 +1,224 @@
|
||||
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
/**
|
||||
* @name Mobile Accessibility
|
||||
* @description
|
||||
* This plugin exposes information on the status of various accessibility features of mobile operating systems, including, for example, whether a screen reader is running, invert colors is enabled, and the preferred scaling for text.
|
||||
* It also allows an application to send a string to be spoken by the screen reader, or a command to stop the screen reader from speaking.
|
||||
*
|
||||
* @usage
|
||||
* ```typescript
|
||||
* import { MobileAccessibility } from 'ionic-native';
|
||||
*
|
||||
*
|
||||
* constructor(private mobileAccessibility: MobileAccessibility) { }
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* if(this.mobileAccessibility.isScreenReaderRunningCallback();
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
@Plugin({
|
||||
pluginName: 'MobileAccessibility',
|
||||
plugin: 'https://github.com/phonegap/phonegap-mobile-accessibility.git',
|
||||
pluginRef: 'MobileAccessibilityNotifications',
|
||||
repo: 'https://github.com/phonegap/phonegap-mobile-accessibility',
|
||||
platforms: ['Amazon Fire OS', 'Android', 'iOS']
|
||||
})
|
||||
@Injectable()
|
||||
export class MobileAccessibility extends IonicNativePlugin {
|
||||
|
||||
MobileAccessibilityNotifications: {
|
||||
ANNOUNCEMENT: 'ANNOUNCEMENT',
|
||||
BOLD_TEXT_STATUS_CHANGED: 'BOLD_TEXT_STATUS_CHANGED',
|
||||
CLOSED_CAPTIONING_STATUS_CHANGED: 'CLOSED_CAPTIONING_STATUS_CHANGED',
|
||||
DARKER_SYSTEM_COLORS_STATUS_CHANGED: 'DARKER_SYSTEM_COLORS_STATUS_CHANGED',
|
||||
GRAYSCALE_STATUS_CHANGED: 'GRAYSCALE_STATUS_CHANGED',
|
||||
GUIDED_ACCESS_STATUS_CHANGED: 'GUIDED_ACCESS_STATUS_CHANGED',
|
||||
INVERT_COLORS_STATUS_CHANGED: 'INVERT_COLORS_STATUS_CHANGED',
|
||||
LAYOUT_CHANGED: 'LAYOUT_CHANGED',
|
||||
MONO_AUDIO_STATUS_CHANGED: 'MONO_AUDIO_STATUS_CHANGED',
|
||||
PAGE_SCROLLED: 'PAGE_SCROLLED',
|
||||
REDUCE_MOTION_STATUS_CHANGED: 'REDUCE_MOTION_STATUS_CHANGED',
|
||||
REDUCE_TRANSPARENCY_STATUS_CHANGED: 'REDUCE_TRANSPARENCY_STATUS_CHANGED',
|
||||
SCREEN_CHANGED: 'SCREEN_CHANGED',
|
||||
SCREEN_READER_STATUS_CHANGED: 'SCREEN_READER_STATUS_CHANGED',
|
||||
SPEAK_SCREEN_STATUS_CHANGED: 'SPEAK_SCREEN_STATUS_CHANGED',
|
||||
SPEAK_SELECTION_STATUS_CHANGED: 'SPEAK_SELECTION_STATUS_CHANGED',
|
||||
SWITCH_CONTROL_STATUS_CHANGED: 'SWITCH_CONTROL_STATUS_CHANGED',
|
||||
TOUCH_EXPLORATION_STATUS_CHANGED: 'TOUCH_EXPLORATION_STATUS_CHANGED'
|
||||
};
|
||||
|
||||
/**
|
||||
* Makes an asynchronous call to native MobileAccessibility to determine if a screen reader is running.
|
||||
* @returns {Promise<boolean>} A result method to receive the boolean result asynchronously from the native MobileAccessibility plugin.
|
||||
*/
|
||||
@Cordova()
|
||||
isScreenReaderRunning(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
* An iOS-specific proxy for the MobileAccessibility.isScreenReaderRunning method
|
||||
* @returns {Promise<boolean>} A result method to receive the boolean result asynchronously from the native MobileAccessibility plugin.
|
||||
*/
|
||||
@Cordova({ platforms: ['iOS'] })
|
||||
isVoiceOverRunningCallback(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
* An Android/Amazon Fire OS-specific proxy for the MobileAccessibility.isScreenReaderRunning method.
|
||||
* @returns {Promise<boolean>} A result method to receive the boolean result asynchronously from the native MobileAccessibility plugin.
|
||||
*/
|
||||
@Cordova({ platforms: ['Amazon Fire OS', 'Android'] })
|
||||
isTalkBackRunningCallback(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
* On Android, this method returns true if ChromeVox is active and properly initialized with access to the text to speech API in the WebView.
|
||||
* If TalkBack is running but ChromeVox is not active, this method is useful to alert the user of a potential problem.
|
||||
* @returns {Promise<boolean>} Returns the result
|
||||
*/
|
||||
@Cordova({ platforms: ['Amazon Fire OS', 'Android'] })
|
||||
isChromeVoxActive(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {Promise<boolean>} Returns the result
|
||||
*/
|
||||
@Cordova({ platforms: ['iOS'] })
|
||||
isBoldTextEnabledCallback(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {Promise<boolean>} Returns the result
|
||||
*/
|
||||
@Cordova()
|
||||
isClosedCaptioningEnabledCallback(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {Promise<boolean>} Returns the result
|
||||
*/
|
||||
@Cordova({ platforms: ['iOS'] })
|
||||
isDarkerSystemColorsEnabledCallback(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {Promise<boolean>} Returns the result
|
||||
*/
|
||||
@Cordova({ platforms: ['iOS'] })
|
||||
isGrayscaleEnabledCallback(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {Promise<boolean>} Returns the result
|
||||
*/
|
||||
@Cordova({ platforms: ['iOS'] })
|
||||
isGuidedAccessEnabledCallback(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {Promise<boolean>} Returns the result
|
||||
*/
|
||||
@Cordova({ platforms: ['iOS'] })
|
||||
isInvertColorsEnabledCallback(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {Promise<boolean>} Returns the result
|
||||
*/
|
||||
@Cordova({ platforms: ['iOS'] })
|
||||
isMonoAudioEnabledCallback(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {Promise<boolean>} Returns the result
|
||||
*/
|
||||
@Cordova({ platforms: ['iOS'] })
|
||||
isReduceMotionEnabledCallback(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {Promise<boolean>} Returns the result
|
||||
*/
|
||||
@Cordova({ platforms: ['iOS'] })
|
||||
isReduceTransparencyEnabledCallback(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {Promise<boolean>} Returns the result
|
||||
*/
|
||||
@Cordova({ platforms: ['iOS'] })
|
||||
isSpeakScreenEnabledCallback(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {Promise<boolean>} Returns the result
|
||||
*/
|
||||
@Cordova({ platforms: ['iOS'] })
|
||||
isSpeakSelectionEnabledCallback(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {Promise<boolean>} Returns the result
|
||||
*/
|
||||
@Cordova({ platforms: ['iOS'] })
|
||||
isSwitchControlRunningCallback(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {Promise<boolean>} Returns the result
|
||||
*/
|
||||
@Cordova({ platforms: ['Amazon Fire OS', 'Android'] })
|
||||
isTouchExplorationEnabledCallback(): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
*
|
||||
* * @returns {Promise<number>} Returns the result
|
||||
*/
|
||||
@Cordova()
|
||||
getTextZoomCallback(): Promise<number> { return; }
|
||||
|
||||
/**
|
||||
* @param textZoom {nuber} A percentage value by which text in the WebView should be scaled.
|
||||
*/
|
||||
@Cordova({ sync: true })
|
||||
setTextZoom(textZoom: number): void { }
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Cordova({ sync: true })
|
||||
updateTextZoom(): void { }
|
||||
|
||||
/**
|
||||
* A Boolean value which specifies whether to use the preferred text zoom of a default percent value of 100.
|
||||
* @param value {boolean} Returns the result
|
||||
*/
|
||||
@Cordova({ sync: true })
|
||||
usePreferredTextZoom(value: boolean): void { }
|
||||
|
||||
/**
|
||||
* Posts a notification with a string for the screen reader to announce if it is running.
|
||||
* @param mobileAccessibilityNotification {any}
|
||||
* @param value {string} A string to be announced by a screen reader.
|
||||
* @returns {Promise<boolean>} Returns the result
|
||||
*/
|
||||
@Cordova({ platforms: ['iOS'] })
|
||||
postNotification(mobileAccessibilityNotification: any, value: string): Promise<boolean> { return; }
|
||||
|
||||
/**
|
||||
* Speaks a given string through the screenreader. On Android, if ChromeVox is active, it will use the specified queueMode and properties.
|
||||
* @param value {string}
|
||||
* @param queueMode {mumber}
|
||||
* @param properties {any}
|
||||
*/
|
||||
@Cordova({ sync: true })
|
||||
speak(value: string, queueMode?: number, properties?: any): void { }
|
||||
|
||||
/**
|
||||
* Stops speech.
|
||||
*/
|
||||
@Cordova({ sync: true })
|
||||
stop(): void { }
|
||||
|
||||
}
|
@ -25,7 +25,7 @@ export interface MusicControlsOptions {
|
||||
* Handle also headset event (plug, unplug, headset button).
|
||||
*
|
||||
* @usage
|
||||
* ```
|
||||
* ```typescript
|
||||
* import { MusicControls } from '@ionic-native/music-controls';
|
||||
*
|
||||
* constructor(private musicControls: MusicControls) { }
|
||||
@ -115,14 +115,14 @@ export class MusicControls extends IonicNativePlugin {
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
create(options: MusicControlsOptions): Promise<any> {return; }
|
||||
create(options: MusicControlsOptions): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Destroy the media controller
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
@Cordova()
|
||||
destroy(): Promise<any> {return; }
|
||||
destroy(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Subscribe to the events of the media controller
|
||||
@ -131,25 +131,25 @@ export class MusicControls extends IonicNativePlugin {
|
||||
@Cordova({
|
||||
observable: true
|
||||
})
|
||||
subscribe(): Observable<any> {return; }
|
||||
subscribe(): Observable<any> { return; }
|
||||
|
||||
/**
|
||||
* Start listening for events, this enables the Observable from the subscribe method
|
||||
*/
|
||||
@Cordova({sync: true})
|
||||
listen(): void {}
|
||||
@Cordova({ sync: true })
|
||||
listen(): void { }
|
||||
|
||||
/**
|
||||
* Toggle play/pause:
|
||||
* @param isPlaying {boolean}
|
||||
*/
|
||||
@Cordova()
|
||||
updateIsPlaying(isPlaying: boolean): void {}
|
||||
updateIsPlaying(isPlaying: boolean): void { }
|
||||
|
||||
/**
|
||||
* Toggle dismissable:
|
||||
* @param dismissable {boolean}
|
||||
*/
|
||||
@Cordova()
|
||||
updateDismissable(dismissable: boolean): void {}
|
||||
updateDismissable(dismissable: boolean): void { }
|
||||
}
|
||||
|
@ -16,11 +16,11 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||
* ...
|
||||
*
|
||||
* this.nativeGeocoder.reverseGeocode(52.5072095, 13.1452818)
|
||||
* .then((result: NativeGeocoderReverseResult) => console.log("The address is " + result.street + " in " + result.countryCode))
|
||||
* .then((result: NativeGeocoderReverseResult) => console.log('The address is ' + result.street + ' in ' + result.countryCode))
|
||||
* .catch((error: any) => console.log(error));
|
||||
*
|
||||
* this.nativeGeocoder.forwardGeocode("Berlin")
|
||||
* .then((coordinates: NativeGeocoderForwardResult) => console.log("The coordinates are latitude=" + coordinates.latitude + " and longitude=" + coordinates.longitude))
|
||||
* this.nativeGeocoder.forwardGeocode('Berlin')
|
||||
* .then((coordinates: NativeGeocoderForwardResult) => console.log('The coordinates are latitude=' + coordinates.latitude + ' and longitude=' + coordinates.longitude))
|
||||
* .catch((error: any) => console.log(error));
|
||||
* ```
|
||||
* @interfaces
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user