Skip to content

Commit

Permalink
feat(keychain): add Keychain plugin (#1420)
Browse files Browse the repository at this point in the history
* feat(keychain): adding keychain plugin

ionic-native for cordova ios keychain plugin

* feat(keychain): make touchID params optional in type def
  • Loading branch information
ajcrites authored and ihadeed committed Apr 27, 2017
1 parent b58149f commit 16dc71a
Showing 1 changed file with 94 additions and 0 deletions.
94 changes: 94 additions & 0 deletions src/@ionic-native/plugins/keychain/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
import { Injectable } from '@angular/core';
import { Cordova, Plugin } from '@ionic-native/core';


/**
* @name Keychain
* @description
* Get and set data in the iOS Keychain
*
* Requires Cordova plugin: `cordova-plugin-ios-keychain`. For more info, please see the [Keychain plugin docs](https://github.com/driftyco/cordova-plugin-ios-keychain).
*
* @usage
* ```typescript
* import { Keychain } from '@ionic-native/keychain';
*
* constructor(private keychain: Keychain) { }
*
* ...
*
* this.keychain.set(key, value).then(() => {
* this.keychain.get(key)
* .then(value => console.log('Got value', value))
* .catch(err => console.error('Error getting', err));
* })
* .catch(err => console.error('Error setting', err));
* ```
*/
@Plugin({
pluginName: 'Keychain',
plugin: 'cordova-plugin-ios-keychain',
pluginRef: 'window.Keychain',
repo: 'https://github.com/driftyco/cordova-plugin-ios-keychain/',
platforms: ['iOS']
})
@Injectable()
export class Keychain {

/**
* Retrieves a value for a key
*
* @param {string} key the key to retrieve
* @param {string} TouchIDMessage the message to show underneath the TouchID prompt (if any)
*/
@Cordova({
callbackOrder: 'reverse'
})
get(key: string, touchIDMessage?: string): Promise<any> { return; }

/**
* Sets a value for a key
*
* @param {string} key the key to set
* @param {string|number|boolean} value the value to set
* @param {boolean} useTouchID whether to store the value with security such that TouchID will be needed to grab it
*/
@Cordova({
callbackOrder: 'reverse'
})
set(key: string, value: string|number|boolean, useTouchID?: boolean): Promise<any> { return; }

/**
* Gets a JSON value for a key
*
* @param {string} key the key to retrieve
* @param {string} TouchIDMessage the message to show underneath the TouchID prompt (if any)
*/
@Cordova({
callbackOrder: 'reverse'
})
getJson(key: string, touchIDMessage?: string): Promise<any> { return; }

/**
* Sets a JSON value for a key
*
* @param {string} key the key to set
* @param {any} value the value to set
* @param {boolean} Wether to store the value with security such that TouchID will be needed to grab it
*/
@Cordova({
callbackOrder: 'reverse'
})
setJson(key: string, obj: any, useTouchId?: boolean): Promise<any> { return; }

/**
* Removes a value for a key
*
* @param {string} key the key to remove
*/
@Cordova({
callbackOrder: 'reverse'
})
remove(key: string): Promise<any> { return; }

}

0 comments on commit 16dc71a

Please sign in to comment.