# Modules.Identity.KeychainItem
Represents a keychain item to communicate with the native iOS Keychain and Android Keystore.
# Overview
The following example demonstrates the basic usage to save, read and delete values with the native iOS Keychain and/or Android Keystore:
var Identity = require('ti.identity');
// Create a keychain item
var keychainItem = Identity.createKeychainItem({
identifier: 'password'
});
// Triggered when the keychain item was successfully saved
keychainItem.addEventListener('save', function(e) {
// Notify the user that the operation succeeded or failed
});
// Write to the keychain
keychainItem.save('s3cr3t_p4$$w0rd');
For advanced security options, you can specify accessibility mode to the keychain that will be applied when writing items to the keychain, for example:
var Identity = require('ti.identity');
// Create a keychain item
var keychainItem = Identity.createKeychainItem({
identifier: 'mypassword',
service: 'my_service', // iOS only. Defaults to 'ti.touchid' for backwards compatibility
accessGroup: '<YOUR-TEAM-ID>.com.appc.identitytest',
accessibilityMode: Identity.ACCESSIBLE_WHEN_PASSCODE_SET_THIS_DEVICE_ONLY,
accessControlMode: Identity.ACCESS_CONTROL_TOUCH_ID_ANY,
// Pass more native options to the keychain. Since there are hundrets of them,
// look up the value of the constant and pass it here. Example:
options: {
// The value of kSecUseOperationPrompt
'u_OpPrompt': 'Please authenticate yourself!'
}
});
# Properties
# apiName READONLY
The name of the API that this proxy corresponds to.
The value of this property is the fully qualified name of the API. For example, Titanium.UI.Button
returns Ti.UI.Button
.
# bubbleParent
Indicates if the proxy will bubble an event to its parent.
Some proxies (most commonly views) have a relationship to other proxies, often established by the add() method. For example, for a button added to a window, a click event on the button would bubble up to the window. Other common parents are table sections to their rows, table views to their sections, and scrollable views to their views. Set this property to false to disable the bubbling to the proxy's parent.
Default: true
# lifecycleContainer
The Window or TabGroup whose Activity lifecycle should be triggered on the proxy.
If this property is set to a Window or TabGroup, then the corresponding Activity lifecycle event callbacks will also be called on the proxy. Proxies that require the activity lifecycle will need this property set to the appropriate containing Window or TabGroup.
# Methods
# addEventListener
Adds the specified callback as an event listener for the named event.
Parameters
Name | Type | Description |
---|---|---|
name | String | Name of the event. |
callback | Callback<Titanium.Event> | Callback function to invoke when the event is fired. |
Returns
- Type
- void
# applyProperties
Applies the properties to the proxy.
Properties are supplied as a dictionary. Each key-value pair in the object is applied to the proxy such that myproxy[key] = value.
Parameters
Name | Type | Description |
---|---|---|
props | Dictionary | A dictionary of properties to apply. |
Returns
- Type
- void
# fetchExistence
Asynchronously determines whether or not a value of the specified identifier exists in the keychain item.
Parameters
Name | Type | Description |
---|---|---|
result | Callback | Use the event key |
Returns
- Type
- void
# fireEvent
Fires a synthesized event to any registered listeners.
Parameters
Name | Type | Description |
---|---|---|
name | String | Name of the event. |
event | Dictionary | A dictionary of keys and values to add to the Titanium.Event object sent to the listeners. |
Returns
- Type
- void
# read
Reads an existing value to the native keychain.
The read event is triggered when
an item is fetched. If an error occurs, the error
key informs you
about the exact error.
Returns
- Type
- void
# removeEventListener
Removes the specified callback as an event listener for the named event.
Multiple listeners can be registered for the same event, so the
callback
parameter is used to determine which listener to remove.
When adding a listener, you must save a reference to the callback function in order to remove the listener later:
var listener = function() { Ti.API.info("Event listener called."); }
window.addEventListener('click', listener);
To remove the listener, pass in a reference to the callback function:
window.removeEventListener('click', listener);
Parameters
Name | Type | Description |
---|---|---|
name | String | Name of the event. |
callback | Callback<Titanium.Event> | Callback function to remove. Must be the same function passed to |
Returns
- Type
- void
# reset
Resets an existing value from the native keychain.
The reset event is triggered when
a new item is saved. If an error occurs, the error
key informs you
about the exact error.
Returns
- Type
- void
# save
Saves a new value to the native keychain.
The save event is triggered when
a new item is saved. If an error occurs, the error
key informs you
about the exact error.
On Android this will also overwrite any existing value.
Parameters
Name | Type | Description |
---|---|---|
value | String | The value to be stored in the native keychain. |
Returns
- Type
- void
# update
Updates an existing value to the native keychain.
The update event is triggered when
an item is updated. If an error occurs, the error
key informs you
about the exact error.
Parameters
Name | Type | Description |
---|---|---|
value | String | The value to be stored in the native keychain. |
Returns
- Type
- void