Compare commits

..

73 Commits

Author SHA1 Message Date
Ibby
db55342329 chore(): update changelog 2017-01-20 15:53:35 -05:00
Ibby
d54ce83c8f 2.2.17 2017-01-20 15:52:47 -05:00
elless
ab681cccbe fix(app-rate): onRateDialogShow callback (#985) 2017-01-18 12:52:36 -05:00
Dennis Bruijn
9008aa264b docs(google-maps): make it clear that the map element needs a height (#984)
I added a change that makes it clear that the map element needs a height to be visible.

I tried to follow the docs but It didn't work, after that I thought my API keys were invalid, at the end it turned out the map wasn't visible at all.
2017-01-18 10:37:02 -05:00
Ibby Hadeed
33ca56a151 remove static method open 2017-01-18 10:34:52 -05:00
Attila Oláh
d8892e195b docs(file): clarify what unit getFreeDiskSpace returns with (#981) 2017-01-18 10:30:38 -05:00
Max Lynch
0ab14a085e fix(core): increase deviceready timeout for sanity 2017-01-16 15:33:59 -06:00
Vlado Velichkovski
a88cf7034b docs(nfc): fix return type (#961)
Doc fix for stringToBytes function
2017-01-15 22:48:23 -05:00
Diego
c44071d117 docs(file-chooser): added missing ")" (#971) 2017-01-13 14:02:19 -05:00
perry
fb275e0d9f amend(docs): typo in the last commit 2017-01-11 13:02:00 -06:00
perry
5c7d7ac527 chore(docs): add beta warning to docs pages 2017-01-11 13:00:52 -06:00
perry
1134ac96b6 chore(docs): mark static properties as properties Closes #962 2017-01-11 11:28:59 -06:00
Abdelaziz Bennouna
e902856089 feat(barcodescanner): add missing options (#966)
Fixes #965
2017-01-11 11:31:29 -05:00
Ibby
67adb23a14 chore(): optimize CordovaProperty
closes #954
2017-01-10 20:45:11 -05:00
Ibby
028a568515 chore(): update changelog 2017-01-10 20:39:12 -05:00
Ibby
7a8d30f4e1 2.2.16 2017-01-10 20:38:53 -05:00
Ibby
9541009742 chore(): fix the callCordovaPlugin check
the previous approach doesn't handle __proto__ methods
2017-01-10 20:38:48 -05:00
Ibby
9dee2fbc0c chore(): update changelog 2017-01-10 19:17:27 -05:00
Ibby
60b9c69763 2.2.15 2017-01-10 19:17:16 -05:00
Ibby
b98fa28b4b fix(apprate): captialize URL in storeAppURL property 2017-01-10 18:49:53 -05:00
Ibby
603aa9f6d2 chore(): ignore errors when deleting old docs 2017-01-10 16:46:35 -05:00
Ibby
f4fa8c31f0 chore(): ignore errors when deleting old docs 2017-01-10 16:42:40 -05:00
Ibby
8e787fdd5f docs(video-player): update install source
closes #959
2017-01-10 16:39:36 -05:00
Ibby
c5ec7c33b5 refractor(): lodash contains to includes 2017-01-10 16:34:56 -05:00
Ibby
c6dbf343fb chore(): add beta tags 2017-01-10 07:41:44 -05:00
Ibby
fa311e6a7c chore(): update packages 2017-01-10 07:40:21 -05:00
Ibby
04347c3df8 chore(): bump tslint ionic rules to 0.0.7 2017-01-10 07:15:57 -05:00
Ibby
8adb36e2a0 chore(): remove old tsconfig 2017-01-10 07:15:00 -05:00
Ibby
c700c31127 chore(): bump rxjs to 5.0.0-beta.12 2017-01-10 07:13:08 -05:00
Ibby Hadeed
5981622f3a chore(): replace try/catch with better approach (#956)
* chore(): replace try/catch with better approach

* optimize last commit
2017-01-10 07:06:44 -05:00
perry
77d6308bca chore(dgeni): add beta tag support 2017-01-09 13:59:03 -06:00
Ibby
92e0bb55c3 Merge branch 'master' of github.com:driftyco/ionic-native 2017-01-09 07:13:04 -05:00
Ibby
452aa5d8c9 chore(): lock typescript to 2.0.x 2017-01-09 07:12:58 -05:00
MSadiqR
2ddb8be775 Typescript error solved (#947)
Added a placeholder parameter to resolve typescript error
2017-01-09 06:10:08 -05:00
Josh Gibbs
ebf07161b6 fix(onesignal): OSNotification.app_id is optional (#946)
OSNotification::app_id is not required when sending a selfNotification.
2017-01-09 05:07:57 -05:00
Thomas Kemmer
6ddd2aa184 fix(ble): stopScan takes no args when used as clear function (#944) 2017-01-09 05:06:33 -05:00
Ibby
9974a1fbd8 chore(): update changelog 2017-01-07 08:04:21 -05:00
Ibby
67edb835f2 2.2.14 2017-01-07 08:03:34 -05:00
Jonathan Samines
5b6cb6e19f docs(device): fix reference (#930) 2017-01-07 08:00:56 -05:00
Ibby
9a5a62bc3a chore(): tslint 2017-01-07 07:59:06 -05:00
Ibby
d192dee1ee docs(google-plus): add basic docs 2017-01-07 07:43:27 -05:00
Ibby
0d6997cbdd fix(push): fix typing for additionalData
closes #868
2017-01-07 06:42:38 -05:00
Ibby
49325e8b93 Merge branch 'master' of github.com:driftyco/ionic-native 2017-01-07 05:44:45 -05:00
Ibby
de07df6f20 fix(inappbrowser): fix insertCSS method name
closes #921
2017-01-07 05:44:38 -05:00
Vlado Velichkovski
ca60c5b912 fix(nfc): add missing param for addMimeTypeListener (#937)
Add missing  `mimeType` parameter in `addMimeTypeListener` function
2017-01-07 05:29:08 -05:00
Ibby
54d1a9891b chore(): add try/catch for callCordovaPlugin method
closes #882
2017-01-07 05:26:38 -05:00
Ibby
2c57bc965c docs(globalization): add platforms information
closes #935
2017-01-07 04:47:15 -05:00
Ibby
d62779a2a6 feat(market): add search method, return promises 2017-01-07 04:38:37 -05:00
Ibby
009a20608e docs(ibeacon): fix method reference
closes #933
2017-01-07 04:32:18 -05:00
Ibby
ca14bf6a75 fix(google-plus): fixes login without options
closes #932
2017-01-07 04:27:58 -05:00
Ibby
49fe24dee2 fix(google-analytics): fix startTrackerWithId when interval is not provided 2017-01-01 06:30:33 -05:00
Ibby
d9d89341d2 docs(onesignal): fix docs 2017-01-01 04:11:51 -05:00
Guille
bbf75bcbd7 fix(mixpanel): fix issue when not passing eventProperties (#927) 2016-12-30 06:32:53 -05:00
Megan Kearl
9441928884 style(): fix whitespace lint issue (#923) 2016-12-30 00:47:51 -05:00
Watchara S
8eb656cce8 feat(background-geolocation): add altitudeAccuracy into response typings (#922) 2016-12-29 04:39:16 -05:00
Alexey Vasiliev
bf0486cb8b Fix doc about changed property (#919) 2016-12-27 16:44:03 -05:00
Ibby
e681761f56 chore(): update changelog 2016-12-27 08:43:56 -05:00
Ibby
84ec3fa8d2 2.2.13 2016-12-27 08:43:12 -05:00
Ibby
c618ceb693 chore(): tslint 2016-12-27 08:43:06 -05:00
Ibby
46a9b6d50d docs(google-analytics): add usage
closes #883
2016-12-27 08:07:45 -05:00
Ibby
44fe04bbbd docs(): add interfaces 2016-12-27 08:03:21 -05:00
Job
3385c1b6dc fix(diagnostic): add permissionStatus types (#890) 2016-12-27 07:58:28 -05:00
Matthew Wheatley
a1b0f885a7 feat(android-fingerprint-auth): update to v1.2.1 (#910)
* update to use plugin v1.1.0

Updated example
Added new configuration options.
Added new show() result fields
Added new delete method

* Update to plugin v1.2.0

Removed show()
Added encrypt()
Added decrypt()
Removed requirement of username

* edit comments

* edited comments
2016-12-27 07:57:54 -05:00
Louis Orleans
56e8eaeb5d feat(onesignal): improve typings (#888)
* Adding platforms list to decorator

* feat(onesignal): Adding more complete type defs

* refactor(onesignal): Prefixing interfaces / enums with `OS`
2016-12-27 07:55:29 -05:00
Ibby
ba77fd70c3 fix(background-mode): isEnabled and isActive return booleans
fixes #908
2016-12-27 07:37:03 -05:00
Ibby
1841220359 fix(diagnostic): add missing types
closes #905
2016-12-27 07:28:34 -05:00
Vlado Velichkovski
c44fb75adc feat(nfc): add new functions (#853)
Added:
- bytesToHexString
- stringToBytes
- bytesToString

Fixed:
- addTagDiscoveredListener
2016-12-27 07:23:05 -05:00
Ibby
ad6badef1f docs(): add platform info 2016-12-27 07:17:27 -05:00
Ibby
7bcf1bfc74 Merge branch 'master' of github.com:driftyco/ionic-native 2016-12-27 07:17:01 -05:00
Peter Bakondy
0c36988544 feat(sim): add new methods (#894) 2016-12-27 07:16:48 -05:00
Ibby
71e49da8ad docs(media): add instructions to listen to status change 2016-12-27 07:06:41 -05:00
Alex Muramoto
c28df732d5 Merge pull request #907 from amuramoto/admob-patch
fix(admob): add adId prop to AdMobOptions
2016-12-22 10:16:40 -08:00
Alex Muramoto
d5dfdf83f3 fix(admob): add adId prop to AdMobOptions 2016-12-22 10:15:49 -08:00
41 changed files with 644 additions and 128 deletions

View File

@@ -1,3 +1,78 @@
<a name="2.2.17"></a>
## [2.2.17](https://github.com/driftyco/ionic-native/compare/v2.2.16...v2.2.17) (2017-01-20)
### Bug Fixes
* **app-rate:** onRateDialogShow callback ([#985](https://github.com/driftyco/ionic-native/issues/985)) ([ab681cc](https://github.com/driftyco/ionic-native/commit/ab681cc))
* **core:** increase deviceready timeout for sanity ([0ab14a0](https://github.com/driftyco/ionic-native/commit/0ab14a0))
### Features
* **barcodescanner:** add missing options ([#966](https://github.com/driftyco/ionic-native/issues/966)) ([e902856](https://github.com/driftyco/ionic-native/commit/e902856)), closes [#965](https://github.com/driftyco/ionic-native/issues/965)
<a name="2.2.16"></a>
## [2.2.16](https://github.com/driftyco/ionic-native/compare/v2.2.15...v2.2.16) (2017-01-11)
<a name="2.2.15"></a>
## [2.2.15](https://github.com/driftyco/ionic-native/compare/v2.2.14...v2.2.15) (2017-01-11)
### Bug Fixes
* **apprate:** captialize URL in storeAppURL property ([b98fa28](https://github.com/driftyco/ionic-native/commit/b98fa28))
* **ble:** stopScan takes no args when used as clear function ([#944](https://github.com/driftyco/ionic-native/issues/944)) ([6ddd2aa](https://github.com/driftyco/ionic-native/commit/6ddd2aa))
* **onesignal:** OSNotification.app_id is optional ([#946](https://github.com/driftyco/ionic-native/issues/946)) ([ebf0716](https://github.com/driftyco/ionic-native/commit/ebf0716))
<a name="2.2.14"></a>
## [2.2.14](https://github.com/driftyco/ionic-native/compare/v2.2.13...v2.2.14) (2017-01-07)
### Bug Fixes
* **google-analytics:** fix startTrackerWithId when interval is not provided ([49fe24d](https://github.com/driftyco/ionic-native/commit/49fe24d))
* **google-plus:** fixes login without options ([ca14bf6](https://github.com/driftyco/ionic-native/commit/ca14bf6)), closes [#932](https://github.com/driftyco/ionic-native/issues/932)
* **inappbrowser:** fix insertCSS method name ([de07df6](https://github.com/driftyco/ionic-native/commit/de07df6)), closes [#921](https://github.com/driftyco/ionic-native/issues/921)
* **mixpanel:** fix issue when not passing eventProperties ([#927](https://github.com/driftyco/ionic-native/issues/927)) ([bbf75bc](https://github.com/driftyco/ionic-native/commit/bbf75bc))
* **nfc:** add missing param for addMimeTypeListener ([#937](https://github.com/driftyco/ionic-native/issues/937)) ([ca60c5b](https://github.com/driftyco/ionic-native/commit/ca60c5b))
* **push:** fix typing for additionalData ([0d6997c](https://github.com/driftyco/ionic-native/commit/0d6997c)), closes [#868](https://github.com/driftyco/ionic-native/issues/868)
### Features
* **background-geolocation:** add altitudeAccuracy into response typings ([#922](https://github.com/driftyco/ionic-native/issues/922)) ([8eb656c](https://github.com/driftyco/ionic-native/commit/8eb656c))
* **market:** add search method, return promises ([d62779a](https://github.com/driftyco/ionic-native/commit/d62779a))
<a name="2.2.13"></a>
## [2.2.13](https://github.com/driftyco/ionic-native/compare/v2.2.12...v2.2.13) (2016-12-27)
### Bug Fixes
* **admob:** add adId prop to AdMobOptions ([d5dfdf8](https://github.com/driftyco/ionic-native/commit/d5dfdf8))
* **background-mode:** isEnabled and isActive return booleans ([ba77fd7](https://github.com/driftyco/ionic-native/commit/ba77fd7)), closes [#908](https://github.com/driftyco/ionic-native/issues/908)
* **diagnostic:** add missing types ([1841220](https://github.com/driftyco/ionic-native/commit/1841220)), closes [#905](https://github.com/driftyco/ionic-native/issues/905)
* **diagnostic:** add permissionStatus types ([#890](https://github.com/driftyco/ionic-native/issues/890)) ([3385c1b](https://github.com/driftyco/ionic-native/commit/3385c1b))
### Features
* **android-fingerprint-auth:** update to v1.2.1 ([#910](https://github.com/driftyco/ionic-native/issues/910)) ([a1b0f88](https://github.com/driftyco/ionic-native/commit/a1b0f88))
* **nfc:** add new functions ([#853](https://github.com/driftyco/ionic-native/issues/853)) ([c44fb75](https://github.com/driftyco/ionic-native/commit/c44fb75))
* **onesignal:** improve typings ([#888](https://github.com/driftyco/ionic-native/issues/888)) ([56e8eae](https://github.com/driftyco/ionic-native/commit/56e8eae))
* **sim:** add new methods ([#894](https://github.com/driftyco/ionic-native/issues/894)) ([0c36988](https://github.com/driftyco/ionic-native/commit/0c36988))
<a name="2.2.12"></a>
## [2.2.12](https://github.com/driftyco/ionic-native/compare/v2.2.11...v2.2.12) (2016-12-16)

View File

@@ -1,6 +1,6 @@
{
"name": "ionic-native",
"version": "2.2.12",
"version": "2.2.17",
"description": "Native plugin wrappers for Cordova and Ionic with TypeScript, ES6+, Promise and Observable support",
"main": "dist/es5/index.js",
"module": "dist/esm/index.js",
@@ -9,40 +9,40 @@
"dist"
],
"dependencies": {
"rxjs": "^5.0.0-beta.6"
"rxjs": "5.0.0-beta.12"
},
"devDependencies": {
"browserify": "^13.0.1",
"browserify": "^13.3.0",
"canonical-path": "0.0.2",
"conventional-changelog-cli": "^1.2.0",
"conventional-github-releaser": "^1.1.3",
"cpr": "^1.0.0",
"cz-conventional-changelog": "^1.1.6",
"cpr": "^2.0.2",
"cz-conventional-changelog": "^1.2.0",
"decamelize": "^1.2.0",
"dgeni": "^0.4.2",
"dgeni-packages": "^0.10.18",
"es6-shim": "~0.35.1",
"glob": "^6.0.4",
"es6-shim": "~0.35.2",
"glob": "^7.1.1",
"gulp": "^3.9.1",
"gulp-rename": "^1.2.2",
"gulp-replace": "^0.5.4",
"gulp-tslint": "^6.1.2",
"gulp-uglify": "^1.5.4",
"jasmine-core": "~2.5.0",
"karma": "~1.2.0",
"gulp-uglify": "^2.0.0",
"jasmine-core": "~2.5.2",
"karma": "~1.3.0",
"karma-browserify": "~5.1.0",
"karma-jasmine": "~1.0.2",
"karma-jasmine": "~1.1.0",
"karma-phantomjs-launcher": "~1.0.2",
"lodash": "3.10.1",
"lodash": "4.17.4",
"minimist": "^1.1.3",
"mkdirp": "^0.5.1",
"node-html-encoder": "0.0.2",
"q": "1.4.1",
"semver": "^5.0.1",
"tsify": "~1.0.4",
"semver": "^5.3.0",
"tsify": "~3.0.0",
"tslint": "^3.15.1",
"tslint-ionic-rules": "0.0.5",
"typescript": "^2.0.1",
"tslint-ionic-rules": "0.0.7",
"typescript": "~2.0.10",
"watchify": "~3.7.0"
},
"scripts": {
@@ -50,7 +50,6 @@
"test:watch": "npm test -- --watch",
"start": "npm run test:watch",
"lint": "gulp lint",
"watch": "tsc -w",
"build": "npm run lint && npm run build:js && npm run build:esm && npm run build:bundle && npm run build:minify",
"build:js": "tsc -p tsconfig-es5.json",
"build:esm": "tsc -p tsconfig-esm.json",

View File

@@ -76,7 +76,7 @@ module.exports = function(currentVersion) {
versions = [];
// new version, add it to the versions list
if (currentVersion != 'nightly' && !_.contains(versions, currentVersion)) {
if (currentVersion != 'nightly' && !_.includes(versions, currentVersion)) {
versions.unshift(currentVersion);
}
//First semver valid version is latest

View File

@@ -30,7 +30,7 @@ function run {
git pull origin master
fi
git rm -rf content/docs/v2/native/*/
git rm -rf content/docs/v2/native/*/ || true
}

View File

@@ -5,6 +5,15 @@ module.exports = function collectInputsOutputs() {
$process: function(docs) {
docs.forEach(function(doc) {
if (doc.statics && doc.statics.length) {
for (var i in doc.statics) {
// identify properties to differentiate from methods
if (typeof doc.statics[i].parameters == 'undefined') {
doc.statics[i].isProperty = true;
}
}
}
if (doc.members && doc.members.length) {
var members = [];
var inputs = [];

View File

@@ -20,7 +20,9 @@ module.exports = function jekyll(renderDocsProcessor) {
doc.outputPath = doc.outputPath.toLowerCase().replace(' ', '-');
docs[i].URL = doc.outputPath.replace('docs/v2//', 'docs/v2/')
.replace('/index.md', '')
.replace('content/','');
.replace('content/', '');
docs[i].demo = !!docs[i].demo;
});
docs.push({

View File

@@ -1,6 +1,10 @@
module.exports = [
{'name': 'advanced'},
{'name': 'demo'},
{'name': 'beta', transforms: function(doc, tag, value) {
// make the value true or undefined instead of '' or undefined
return typeof value !== 'undefined';
}},
{'name': 'usage'},
{'name': 'classes'}, // related classes
{'name': 'interfaces'} // related interfaces

View File

@@ -200,7 +200,9 @@ docType: "<$ doc.docType $>"
Delegate: <$ doc.delegate $>
</small>
<@ endif @>
<@- if doc.beta == true -@>
<span class="beta" title="beta">&beta;</span>
<@- endif -@>
</h1>
<a class="improve-v2-docs" href="http://github.com/driftyco/ionic-native/edit/master/<$ doc.fileInfo.relativePath|replace('/home/ubuntu/ionic-native/', '')|replace('//','/') $>#L<$ doc.location.start.line $>">
@@ -213,6 +215,15 @@ docType: "<$ doc.docType $>"
<@- if doc.decorators @>
<@ for prop in doc.decorators[0].argumentInfo @>
<@ if doc.beta == true @>
<p class="beta-notice">
This plugin is still in beta stage and may not work as expected. Please
submit any issues to the <a target="_blank"
href="<$ prop.repo $>/issues">plugin repo</a>.
</p>
<@ endif @>
<pre><code>$ <@ if prop.install @><$ prop.install $><@ else @>ionic plugin add <$ prop.plugin $><@ endif -@></code></pre>
<p>Repo:
<a href="<$ prop.repo $>">
@@ -244,7 +255,7 @@ docType: "<$ doc.docType $>"
<!-- @platforms tag end -->
<@ endif @>
<@ endfor @>
<@ endif -@>
<@ endif -@><!-- if doc.decorators -->
<!-- @usage tag -->
<@ if doc.usage @>

View File

@@ -1,4 +1,9 @@
<@ for doc in docs @><@ if doc.URL and doc.private != true @>
<@ for doc in docs @><@ if doc.URL and doc.private != true and doc.beta != true @>
<li class="capitalize {% if page.id == '<$ doc.name|lower|replace(' ','-') $>' %}active{% endif %}">
<a href="/<$ doc.URL $>"><$ doc.name $></a>
</li><@ endif @><@ endfor @>
<@ for doc in docs @><@ if doc.URL and doc.private != true and doc.beta == true @>
<li class="capitalize {% if page.id == '<$ doc.name|lower|replace(' ','-') $>' %}active{% endif %}">
<a href="/<$ doc.URL $>"><$ doc.name $> <span class="beta">&beta;</span></a>
</li><@ endif @><@ endfor @>

View File

@@ -1,6 +1,6 @@
import { initAngular1 } from './ng1';
const DEVICE_READY_TIMEOUT = 2000;
const DEVICE_READY_TIMEOUT = 5000;
declare var window;

View File

@@ -5,6 +5,11 @@ export type AdMobAdSize = 'SMART_BANNER' | 'BANNER' | 'MEDIUM_RECTANGLE' | 'FULL
export interface AdMobOptions {
/**
* Banner ad ID
*/
adId?: string;
/**
* Banner Ad Size, defaults to `SMART_BANNER`. IT can be: `SMART_BANNER`, `BANNER`, `MEDIUM_RECTANGLE`, `FULL_BANNER`, `LEADERBOARD`, `SKYSCRAPER`, or `CUSTOM`
*/

View File

@@ -3,14 +3,26 @@ import { Cordova, Plugin } from './plugin';
export interface AndroidFingerprintAuthOptions {
/**
* Required
* Used as the alias for your key in the Android Key Store.
*/
clientId: string;
/**
* Used to encrypt the token returned upon successful fingerprint authentication.
* Used to create credential string for encrypted token and as alias to retrieve the cipher.
*/
clientSecret: string;
username?: string;
/**
* Used to create credential string for encrypted token
*/
password?: string;
/**
* Required for decrypt()
* Encrypted user credentials to decrypt upon successful authentication.
*/
token?: string;
/**
* Set to true to remove the "USE BACKUP" button
@@ -22,6 +34,33 @@ export interface AndroidFingerprintAuthOptions {
*/
locale?: string;
/**
* The device max is 5 attempts. Set this parameter if you want to allow fewer than 5 attempts.
*/
maxAttempts?: number;
/**
* Require the user to authenticate with a fingerprint to authorize every use of the key.
* New fingerprint enrollment will invalidate key and require backup authenticate to
* re-enable the fingerprint authentication dialog.
*/
userAuthRequired?: boolean;
/**
* Set the title of the fingerprint authentication dialog.
*/
dialogTitle?: string;
/**
* Set the message of the fingerprint authentication dialog.
*/
dialogMessage?: string;
/**
* Set the hint displayed by the fingerprint icon on the fingerprint authentication dialog.
*/
dialogHint?: string;
}
/**
@@ -37,15 +76,20 @@ export interface AndroidFingerprintAuthOptions {
* if(result.isAvailable){
* // it is available
*
* AndroidFingerprintAuth.show({ clientId: "myAppName", clientSecret: "so_encrypted_much_secure_very_secret" })
* AndroidFingerprintAuth.encrypt({ clientId: "myAppName", username: "myUsername", password: "myPassword" })
* .then(result => {
* if(result.withFingerprint) {
* console.log('Successfully authenticated with fingerprint!');
* } else if(result.withPassword) {
* if (result.withFingerprint) {
* 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 => console.error(error));
* .catch(error => {
* if (error === "Cancelled") {
* console.log("Fingerprint authentication cancelled");
* } else console.error(error)
* });
*
* } else {
* // fingerprint auth isn't available
@@ -70,15 +114,41 @@ export class AndroidFingerprintAuth {
* @returns {Promise<any>}
*/
@Cordova()
static show(options: AndroidFingerprintAuthOptions): Promise<{
static encrypt(options: AndroidFingerprintAuthOptions): Promise<{
/**
* Base64 encoded string
* Biometric authentication
*/
withFingerprint: string;
withFingerprint: boolean;
/**
*
* Authentication using backup credential activity
*/
withPassword: boolean;
withBackup: boolean;
/**
* base64encoded string representation of user credentials
*/
token: string;
}> {return; }
/**
* Opens a native dialog fragment to use the device hardware fingerprint scanner to authenticate against fingerprints registered for the device.
* @param options {AndroidFingerprintAuthOptions} Options
* @returns {Promise<any>}
*/
@Cordova()
static decrypt(options: AndroidFingerprintAuthOptions): Promise<{
/**
* Biometric authentication
*/
withFingerprint: boolean;
/**
* Authentication using backup credential activity
*/
withBackup: boolean;
/**
* FingerprintAuth.CipherMode.DECRYPT
* Decrypted password
*/
password: string;
}> {return; }
/**
@@ -86,6 +156,12 @@ export class AndroidFingerprintAuth {
* @returns {Promise<any>} Returns a Promise that resolves if fingerprint auth is available on the device
*/
@Cordova()
static isAvailable(): Promise<{isAvailable: boolean}> {return; }
static 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()
static delete(options: {clientId: string; username: string; }): Promise<{deleted: boolean}> { return; }
}

View File

@@ -16,7 +16,7 @@ import { Cordova, Plugin } from './plugin';
*
* if (Device.platform === 'iOS') {
* app = 'twitter://';
* } else if (device.platform === 'Android') {
* } else if (Device.platform === 'Android') {
* app = 'com.twitter.android';
* }
*

View File

@@ -47,7 +47,7 @@ export interface AppRatePreferences {
/**
* App Store URLS
*/
storeAppUrl?: AppRateStoreAppUrls;
storeAppURL?: AppRateStoreAppUrls;
}
@@ -61,7 +61,7 @@ export interface AppRateCallbacks {
/**
* call back function. called when rate-dialog showing
*/
onRateDialogShowed?: Function;
onRateDialogShow?: Function;
}

View File

@@ -49,6 +49,11 @@ export interface BackgroundGeolocationResponse {
*/
altitude: number;
/**
* accuracy of the altitude if available.
*/
altitudeAccuracy: number;
/**
* bearing, in degrees.
*/

View File

@@ -76,17 +76,21 @@ export class BackgroundMode {
/**
* Checks if background mode is enabled or not.
* @returns {Promise<boolean>} returns a promise that resolves with boolean that indicates if the background mode is enabled.
* @returns {boolean} returns a boolean that indicates if the background mode is enabled.
*/
@Cordova()
static isEnabled(): Promise<boolean> { return; }
@Cordova({
sync: true
})
static isEnabled(): boolean { return; }
/**
* Can be used to get the information if the background mode is active.
* @returns {Promise<boolean>} returns a promise that resolves with boolean that indicates if the background mode is active.
* @returns {boolean} returns a boolean that indicates if the background mode is active.
*/
@Cordova()
static isActive(): Promise<boolean> { return; }
@Cordova({
sync: true
})
static isActive(): boolean { return; }
/**
* Override the default title, ticker and text.

View File

@@ -37,6 +37,16 @@ export interface BarcodeScannerOptions {
*/
orientation?: string;
/**
* Launch with the torch switched on (if available). Supported on Android only.
*/
torchOn?: boolean;
/**
* Display scanned text for X ms. 0 suppresses it entirely, default 1500. Supported on Android only.
*/
resultDisplayDuration?: number;
}
/**

View File

@@ -205,7 +205,7 @@ export class BLE {
@Cordova({
observable: true,
clearFunction: 'stopScan',
clearWithArgs: true
clearWithArgs: false
})
static startScan(services: string[]): Observable<any> { return; }
@@ -218,7 +218,7 @@ export class BLE {
@Cordova({
observable: true,
clearFunction: 'stopScan',
clearWithArgs: true
clearWithArgs: false
})
static startScanWithOptions(services: string[], options: {reportDuplicates?: boolean} | any): Observable<any> { return; }

View File

@@ -22,6 +22,7 @@ export interface CameraPreviewSize {
}
/**
* @beta
* @name CameraPreview
* @description
* Showing camera preview in HTML

View File

@@ -66,12 +66,12 @@ export class Diagnostic {
@CordovaProperty
static permissionStatus: {
GRANTED;
DENIED;
NOT_REQUESTED;
DENIED_ALWAYS;
RESTRICTED;
GRANTED_WHEN_IN_USE;
GRANTED: string;
DENIED: string;
NOT_REQUESTED: string;
DENIED_ALWAYS: string;
RESTRICTED: string;
GRANTED_WHEN_IN_USE: string;
};
static locationAuthorizationMode = {

View File

@@ -24,6 +24,7 @@ export interface EmailComposerOptions {
/**
* @beta
* @name Email Composer
* @description
*

View File

@@ -11,8 +11,8 @@ import { Plugin, Cordova } from './plugin';
* import {FileChooser} from 'ionic-native';
*
* FileChooser.open()
* .then(uri => console.log(uri);
* .catch(e => console.log(e);
* .then(uri => console.log(uri));
* .catch(e => console.log(e));
*
* ```
*/

View File

@@ -385,8 +385,8 @@ export class File {
};
/**
* Get free disk space
* @returns {Promise<number>} Returns a promise that resolves with the remaining free disk space
* Get free disk space in Bytes
* @returns {Promise<number>} Returns a promise that resolves with the remaining free disk space in Bytes
*/
static getFreeDiskSpace(): Promise<number> {
return new Promise<any>((resolve, reject) => {

View File

@@ -14,7 +14,8 @@ import { Cordova, Plugin } from './plugin';
pluginName: 'Globalization',
plugin: 'cordova-plugin-globalization',
pluginRef: 'navigator.globalization',
repo: 'https://github.com/apache/cordova-plugin-globalization'
repo: 'https://github.com/apache/cordova-plugin-globalization',
platforms: ['Amazon Fire OS', 'Android', 'BlackBerry 10', 'Firefox OS', 'iOS', 'Windows Phone 8', 'Widnows', 'Browser']
})
export class Globalization {

View File

@@ -7,6 +7,9 @@ import { Cordova, Plugin } from './plugin';
* ```typescript
* import { GooglePlus } from 'ionic-native';
*
* GooglePlus.login()
* .then(res => console.log(res))
* .catch(err => console.error(err));
*
* ```
*/
@@ -25,7 +28,10 @@ export class GooglePlus {
* @param options
* @returns {Promise<any>}
*/
@Cordova()
@Cordova({
successIndex: 1,
errorIndex: 2
})
static login(options?: any): Promise<any> { return; }
/**

View File

@@ -10,6 +10,20 @@ declare var window;
* - A Cordova 3.0+ project for iOS and/or Android
* - A Mobile App property through the Google Analytics Admin Console
* - (Android) Google Play Services SDK installed via [Android SDK Manager](https://developer.android.com/sdk/installing/adding-packages.html)
* @usage
* ```typescript
* import { GoogleAnalytics } from 'ionic-native';
*
* GoogleAnalytics.startTrackerWithId('YOUR_TRACKER_ID')
* .then(() => {
* console.log('Google analytics is ready now');
* // Tracker is ready
* // You can now track pages or set additional information such as AppVersion or UserId
* })
* .catch(e => console.log('Error starting GoogleAnalytics', e));
*
*
* ```
*/
@Plugin({
pluginName: 'GoogleAnalytics',
@@ -27,7 +41,10 @@ export class GoogleAnalytics {
* @param {number} interval Optional dispatch period in seconds. Defaults to 30.
* @returns {Promise<any>}
*/
@Cordova()
@Cordova({
successIndex: 2,
errorIndex: 3
})
static startTrackerWithId(id: string, interval?: number): Promise<any> { return; }
/**

View File

@@ -60,8 +60,9 @@ export const GoogleMapsAnimation = {
*
* loadMap() {
* // make sure to create following structure in your view.html file
* // and add a height (for example 100%) to it, else the map won't be visible
* // <ion-content>
* // <div #map id="map"></div>
* // <div #map id="map" style="height:100%;"></div>
* // </ion-content>
*
* // create a new map by passing HTMLElement

View File

@@ -103,6 +103,7 @@ export interface HotspotDevice {
}
/**
* @beta
* @name Hotspot
* @description
* @usage

View File

@@ -237,7 +237,7 @@ export interface IBeaconDelegate {
* // Request permission to use location on iOS
* IBeacon.requestAlwaysAuthorization();
* // create a new delegate and register it with the native layer
* let delegate = IBeacon.IBeaconDelegate();
* let delegate = IBeacon.Delegate();
*
* // Subscribe to some of the delegate's event handlers
* delegate.didRangeBeaconsInRegion()

View File

@@ -40,13 +40,6 @@ export interface InAppBrowserEvent extends Event {
})
export class InAppBrowser {
/**
* @private
*/
static open(url: string, target?: string, options?: string): void {
console.warn('Native: Your current usage of the InAppBrowser plugin is deprecated as of ionic-native@1.3.8. Please check the Ionic Native docs for the latest usage details.');
}
private _objectInstance: any;
/**
@@ -81,7 +74,7 @@ export class InAppBrowser {
/**
* Injects JavaScript code into the InAppBrowser window.
* @param script Details of the script to run, specifying either a file or code key.
* @param script {Object} Details of the script to run, specifying either a file or code key.
* @returns {Promise<any>}
*/
@CordovaInstance()
@@ -89,11 +82,11 @@ export class InAppBrowser {
/**
* Injects CSS into the InAppBrowser window.
* @param {Object} Details of the script to run, specifying either a file or code key.
* @param css {Object} Details of the script to run, specifying either a file or code key.
* @returns {Promise<any>}
*/
@CordovaInstance()
insertCss(css: {file?: string, code?: string}): Promise<any> {return; }
insertCSS(css: {file?: string, code?: string}): Promise<any> {return; }
/**
* A method that allows you to listen to events happening in the browser.

View File

@@ -19,12 +19,30 @@ import { Plugin, Cordova } from './plugin';
repo: 'https://github.com/xmartlabs/cordova-plugin-market'
})
export class Market {
/**
* Opens an app in Google Play / App Store
* @param appId {string} Package name
* @param callbacks {Object} Optional callbacks in the format {success?: Function, failure?: Function}
* @return {Promise<any>}
*/
@Cordova({sync: true})
static open(appId: string, callbacks?: {success?: Function, failure?: Function}): void { }
@Cordova({
callbackStyle: 'object',
successName: 'success',
errorName: 'failure'
})
static open(appId: string): Promise<any> { return; }
/**
* Search apps by keyword
* @param keyword {string} Keyword
* @return {Promise<any>}
*/
@Cordova({
callbackStyle: 'object',
successName: 'success',
errorName: 'failure',
platforms: ['Android']
})
static search(keyword: string): Promise<any> { return; }
}

View File

@@ -17,7 +17,11 @@ export interface MediaError {
*
*
* // Create a MediaPlugin instance. Expects path to file or url as argument
* var file = new MediaPlugin('path/to/file.mp3');
* // We can optionally pass a second argument to track the status of the media
*
* const onStatusUpdate = (status) => console.log(status);
*
* const file = new MediaPlugin('path/to/file.mp3', onStatusUpdate);
*
* // Catch the Success & Error Output
* // Platform Quirks

View File

@@ -85,7 +85,10 @@ export class Mixpanel {
* @param eventProperties {any} optional
* @returns {Promise<any>}
*/
@Cordova()
@Cordova({
successIndex: 2,
errorIndex: 3
})
static track(eventName: string, eventProperties?: any): Promise<any> { return; }
/**

View File

@@ -40,7 +40,7 @@ declare var navigator: any;
*
* ```
* @advanced
* The `connection` property will return one of the following connection types: `unknown`, `ethernet`, `wifi`, `2g`, `3g`, `4g`, `cellular`, `none`
* The `type` property will return one of the following connection types: `unknown`, `ethernet`, `wifi`, `2g`, `3g`, `4g`, `cellular`, `none`
*/
@Plugin({
pluginName: 'Network',

View File

@@ -47,6 +47,21 @@ export class NFC {
/**
* Registers an event listener for tags matching any tag type.
* @param onSuccess
* @param onFailure
* @returns {Observable<any>}
*/
@Cordova({
observable: true,
successIndex: 0,
errorIndex: 3,
clearFunction: 'removeTagDiscoveredListener',
clearWithArgs: true
})
static addTagDiscoveredListener(onSuccess?: Function, onFailure?: Function): Observable<any> {return; }
/**
* Registers an event listener for NDEF tags matching a specified MIME type.
* @param mimeType
* @param onSuccess
* @param onFailure
@@ -56,25 +71,10 @@ export class NFC {
observable: true,
successIndex: 1,
errorIndex: 4,
clearFunction: 'removeTagDiscoveredListener',
clearWithArgs: true
})
static addTagDiscoveredListener(mimeType: string, onSuccess?: Function, onFailure?: Function): Observable<any> {return; }
/**
* Registers an event listener for NDEF tags matching a specified MIME type.
* @param onSuccess
* @param onFailure
* @returns {Observable<any>}
*/
@Cordova({
observable: true,
successIndex: 0,
errorIndex: 3,
clearFunction: 'removeMimeTypeListener',
clearWithArgs: true
})
static addMimeTypeListener(onSuccess?: Function, onFailure?: Function): Observable<any> {return; }
static addMimeTypeListener(mimeType: string, onSuccess?: Function, onFailure?: Function): Observable<any> {return; }
/**
* Registers an event listener for formatable NDEF tags.
@@ -152,6 +152,27 @@ export class NFC {
*/
@Cordova()
static enabled(): Promise<any> {return; }
/**
* Convert bytes to string
* @param bytes {number[]}
* @returns {string}
*/
@Cordova({ sync: true })
static bytesToString(bytes: number[]): string {return; }
/**
* Convert string to bytes
* @param str {string}
* @returns {number[]}
*/
@Cordova({ sync: true })
static stringToBytes(str: string): number[] {return; };
/**
* Convert bytes to hex string
* @param bytes {number[]}
* @returns {string}
*/
@Cordova({ sync: true })
static bytesToHexString(bytes: number[]): string {return; };
}
/**

View File

@@ -1,8 +1,32 @@
import { Cordova, Plugin } from './plugin';
import { Observable } from 'rxjs/Observable';
export interface OneSignalNotification {
app_id: string;
export interface OSNotification {
/**
* Was app in focus.
*/
isAppInFocus: boolean;
/**
* Was notification shown to the user. Will be false for silent notifications.
*/
shown: boolean;
/**
* **ANDROID** - Android Notification assigned to the notification. Can be used to cancel or replace the notification.
*/
androidNotificationId?: number;
/**
* Payload received from OneSignal.
*/
payload: OSNotificationPayload;
/**
* How the notification was displayed to the user. Can be set to `Notification`, `InAppAlert`, or `None` if it was not displayed.
*/
displayType: OSDisplayType;
/**
* **ANDROID** - Notification is a summary notification for a group this will contain all notification payloads it was created from.
*/
groupedNotifications?: OSNotificationPayload[];
app_id?: string;
contents: any;
headings?: any;
isIos?: boolean;
@@ -64,6 +88,177 @@ export interface OneSignalNotification {
ios_category?: string;
}
/**
* **ANDROID** - Privacy setting for how the notification should be shown on the lockscreen of Android 5+ devices.
*/
export enum OSLockScreenVisibility {
/**
* Fully visible (default)
*/
Public = 1,
/**
* Contents are hidden
*/
Private = 0,
/**
* Not shown
*/
Secret = -1
}
/**
* How the notification was displayed to the user. Part of OSNotification. See inFocusDisplaying for more information on how this is used.
*/
export enum OSDisplayType {
/**
* notification is silent, or inFocusDisplaying is disabled.
*/
None = 0,
/**
* (**DEFAULT**) - native alert dialog display.
*/
InAppAlert = 1,
/**
* native notification display.
*/
Notification = 2
}
/**
* Contents and settings of the notification the user received.
*/
export interface OSNotificationPayload {
/**
* OneSignal notification UUID.
*/
notificationID: string;
/**
* Title of the notification.
*/
title: string;
/**
* Body of the notification.
*/
body: string;
/**
* Custom additional data that was sent with the notification. Set on the dashboard under Options > Additional Data
* or with the 'data' field on the REST API.
*/
additionalData?: any;
/**
* **ANDROID** - Small icon resource name set on the notification.
*/
smallIcon?: string;
/**
* **ANDROID** - Large icon set on the notification.
*/
largeIcon?: string;
/**
* **ANDROID** - Big picture image set on the notification.
*/
bigPicture?: string;
/**
* **ANDROID** - Accent color shown around small notification icon on Android 5+ devices. ARGB format.
*/
smallIconAccentColor?: string;
/**
* URL to open when opening the notification.
*/
launchUrl?: string;
/**
* Sound resource to play when the notification is shown.
*/
sound: string;
/**
* **ANDROID** - Devices that have a notification LED will blink in this color. ARGB format.
*/
ledColor?: string;
lockScreenVisibility?: OSLockScreenVisibility;
/**
* **ANDROID** - Notifications with this same key will be grouped together as a single summary notification.
*/
groupKey?: string;
/**
* **ANDROID** - Summary text displayed in the summary notification.
*/
groupMessage?: string;
/**
* List of action buttons on the notification.
*/
actionButtons: OSActionButton[];
/**
* **ANDROID** - The Google project number the notification was sent under.
*/
fromProjectNumber?: string;
/**
* **ANDROID** - If a background image was set this object will be available.
*/
backgroundImageLayout?: OSBackgroundImageLayout;
priority?: number;
/**
* List of action buttons on the notification.
*/
rawPayload: string;
}
/**
* List of action buttons on the notification.
*/
export interface OSActionButton {
/**
* Id assigned to the button.
*/
id: string;
/**
* Text show on the button to the user.
*/
text: string;
/**
* **ANDROID** - Icon shown on the button.
*/
icon: string;
}
/**
* **ANDROID** - If a background image was set, this object will be available.
*/
export interface OSBackgroundImageLayout {
/**
* Image URL or name used as the background image.
*/
image: string;
/**
* Text color of the title on the notification. ARGB Format.
*/
titleTextColor: string;
/**
* Text color of the body on the notification. ARGB Format.
*/
bodyTextColor: string;
}
/**
* The information returned from a notification the user received.
*/
export interface OSNotificationOpenedResult {
action: {
/**
* Was the notification opened normally (`Opened`) or was a button pressed on the notification (`ActionTaken`).
*/
type: OSActionType;
/**
* If `type` == `ActionTaken` then this will contain the id of the button pressed.
*/
actionID?: string;
};
notification: OSNotification;
}
export enum OSActionType {
Opened = 0,
ActionTake = 1
}
/**
* @name OneSignal
* @description
@@ -91,13 +286,21 @@ export interface OneSignalNotification {
* OneSignal.endInit();
* ```
* @interfaces
* OneSignalNotification
* OSNotification
* OSLockScreenVisibility
* OSDisplayType
* OSNotificationPayload
* OSActionButton
* OSBackgroundImageLayout
* OSNotificationOpenedResult
* OSActionType
*/
@Plugin({
pluginName: 'OneSignal',
plugin: 'onesignal-cordova-plugin',
pluginRef: 'plugins.OneSignal',
repo: 'https://github.com/OneSignal/OneSignal-Cordova-SDK'
repo: 'https://github.com/OneSignal/OneSignal-Cordova-SDK',
platforms: ['Android', 'iOS', 'Windows', 'FireOS']
})
export class OneSignal {
@@ -111,45 +314,57 @@ export class OneSignal {
};
/**
* Start the initialization process. Once you are done configuring OneSignal, call the endInit function.
* Start the initialization process. Once you are done configuring OneSignal, call the `endInit` function.
*
* @param {string} appId Your AppId from your OneSignal app
* @param {string} googleProjectNumber The Google Project Number (which you can get from the Google Developer Portal) and the autoRegister option.
* @param {string} appId Your OneSignal app id
* @param {string} googleProjectNumber **ANDROID** - your Google project number; only required for Android GCM/FCM pushes.
* @returns {any}
*/
@Cordova({ sync: true })
static startInit(appId: string, googleProjectNumber: string): any { return; }
static startInit(appId: string, googleProjectNumber?: string): any { return; }
/**
* Callback to run when a notification is received
* @return {Observable<any>}
* Callback to run when a notification is received, whether it was displayed or not.
*
* @return {Observable<OneSignalReceivedNotification>}
*/
@Cordova({
observable: true
})
static handleNotificationReceived(): Observable<any> { return; }
static handleNotificationReceived(): Observable<OSNotification> { return; }
/**
* Callback to run when a notification is opened
* @return {Observable<any>}
* Callback to run when a notification is tapped on from the notification shade (**ANDROID**) or notification
* center (**iOS**), or when closing an Alert notification shown in the app (if InAppAlert is enabled in
* inFocusDisplaying).
*
* @return {Observable<OneSignalOpenedNotification>}
*/
@Cordova({
observable: true
})
static handleNotificationOpened(): Observable<any> { return; }
static handleNotificationOpened(): Observable<OSNotificationOpenedResult> { return; }
/**
* **iOS** - Settings for iOS apps
*
* @param settings
* kOSSettingsKeyAutoPrompt: boolean = true
* Auto prompt user for notification permissions.
*
* kOSSettingsKeyInAppLaunchURL: boolean = false
* Launch notifications with a launch URL as an in app webview.
* @returns {any}
*/
@Cordova({ sync: true })
static iOSSettings(settings: {
kOSSettingsKeyInAppLaunchURL: boolean;
kOSSettingsKeyAutoPrompt: boolean;
kOSSettingsKeyInAppLaunchURL: boolean;
}): any { return; }
/**
* Must be called after `startInit` to complete initialization of OneSignal.
*
* @returns {any}
*/
@Cordova({ sync: true })
@@ -167,11 +382,14 @@ export class OneSignal {
* Lets you retrieve the OneSignal user id and device token.
* Your handler is called after the device is successfully registered with OneSignal.
*
* @returns {Promise<any>} Returns a Promise that reolves if the device was successfully registered.
* It returns a JSON with `userId`and `pushToken`.
* @returns {Promise<Object>} Returns a Promise that resolves if the device was successfully registered.
*
* userId {string} OneSignal userId is a UUID formatted string. (unique per device per app)
*
* pushToken {string} A push token is a Google/Apple assigned identifier(unique per device per app).
*/
@Cordova()
static getIds(): Promise<any> { return; }
static getIds(): Promise<{userId: string; pushToken: string}> { return; }
/**
@@ -211,7 +429,7 @@ export class OneSignal {
/**
* Call this when you would like to prompt an iOS user to accept push notifications with the default system prompt.
* Only use if you passed false to autoRegister when calling init.
* Only works if you set `kOSSettingsAutoPrompt` to `false` in `iOSSettings`
*/
@Cordova({ sync: true })
static registerForPushNotifications(): void { }
@@ -244,10 +462,11 @@ export class OneSignal {
*
* Setting to control how OneSignal notifications will be shown when one is received while your app is in focus. By default this is set to inAppAlert, which can be helpful during development.
*
* @param {number} displayOption Options are 0 = None, 1 = InAppAlert, and 2 = Notification.
* @param {DisplayType} displayOption
* @returns {any}
*/
@Cordova({ sync: true })
static inFocusDisplaying(displayOption: number): void { }
static inFocusDisplaying(displayOption: OSDisplayType): any { return; }
/**
* You can call this method with false to opt users out of receiving all notifications through OneSignal.
@@ -264,7 +483,7 @@ export class OneSignal {
* @returns {Promise<any>} Returns a Promise that resolves if the notification was send successfully.
*/
@Cordova()
static postNotification(notificationObj: OneSignalNotification): Promise<any> { return; }
static postNotification(notificationObj: OSNotification): Promise<any> { return; }
/**
* Prompts the user for location permission to allow geotagging based on the "Location radius" filter on the OneSignal dashboard.

View File

@@ -108,7 +108,7 @@ function callCordovaPlugin(pluginObj: any, methodName: string, args: any[], opts
let pluginInstance = getPlugin(pluginObj.pluginRef);
if (!pluginInstance) {
if (!pluginInstance || pluginInstance[methodName] === 'undefined') {
// Do this check in here in the case that the Web API for this plugin is available (for example, Geolocation).
if (!window.cordova) {
cordovaWarn(pluginObj.pluginName, methodName);
@@ -123,8 +123,7 @@ function callCordovaPlugin(pluginObj: any, methodName: string, args: any[], opts
};
}
// TODO: Illegal invocation needs window context
return get(window, pluginObj.pluginRef)[methodName].apply(pluginInstance, args);
return pluginInstance[methodName].apply(pluginInstance, args);
}
/**
@@ -408,9 +407,9 @@ export function CordovaInstance(opts: any = {}) {
* Before calling the original method, ensure Cordova and the plugin are installed.
*/
export function CordovaProperty(target: any, key: string) {
const pluginInstance = getPlugin(target.pluginRef);
const exists = () => {
let pluginInstance = getPlugin(target.pluginRef);
if (!pluginInstance) {
if (!pluginInstance || pluginInstance[key] === 'undefined') {
pluginWarn(target, key);
return false;
}
@@ -420,14 +419,14 @@ export function CordovaProperty(target: any, key: string) {
Object.defineProperty(target, key, {
get: () => {
if (exists()) {
return getPlugin(target.pluginRef)[key];
return pluginInstance[key];
} else {
return {};
return null;
}
},
set: (value) => {
if (exists()) {
getPlugin(target.pluginRef)[key] = value;
pluginInstance[key] = value;
}
}
});

View File

@@ -36,7 +36,7 @@ export interface NotificationEventResponse {
/**
* An optional collection of data sent by the 3rd party push service that does not fit in the above properties.
*/
additionalData: NotificationEventAdditionalData;
additionalData: NotificationEventAdditionalData | any;
}
/**

View File

@@ -17,6 +17,15 @@ import { Cordova, Plugin } from './plugin';
* (info) => console.log('Sim info: ', info),
* (err) => console.log('Unable to get sim info: ', err)
* );
*
* Sim.hasReadPermission().then(
* (info) => console.log('Has permission: ', info)
* );
*
* Sim.requestReadPermission().then(
* () => console.log('Permission granted'),
* () => console.log('Permission denied')
* );
* ```
*/
@Plugin({
@@ -34,4 +43,21 @@ export class Sim {
@Cordova()
static getSimInfo(): Promise<any> { return; }
/**
* Check permission
* @returns {Promise<any>}
*/
@Cordova({
platforms: ['Android']
})
static hasReadPermission(): Promise<any> { return; }
/**
* Request permission
* @returns {Promise<any>}
*/
@Cordova({
platforms: ['Android']
})
static requestReadPermission(): Promise<any> { return; }
}

View File

@@ -21,7 +21,7 @@ declare var sqlitePlugin;
* })
* .then((db: SQLite) => {
*
* db.executeSql('create table danceMoves(name VARCHAR(32))').then(() => {}).catch(() => {});
* db.executeSql('create table danceMoves(name VARCHAR(32))', {}).then(() => {}).catch(() => {});
*
* })
* .catch(error => console.error('Error opening database', error);

View File

@@ -41,7 +41,7 @@ export interface VideoOptions {
*/
@Plugin({
pluginName: 'VideoPlayer',
plugin: 'cordova-plugin-videoplayer',
plugin: 'https://github.com/moust/cordova-plugin-videoplayer',
pluginRef: 'VideoPlayer',
repo: 'https://github.com/moust/cordova-plugin-videoplayer',
platforms: ['Android']