KeyChain(钥匙串)插件
封装了iOS系统的KeyChain相关功能.iOS的keychain服务提供了一种安全的保存私密信息(如密码,序列号)的方式,每个ios程序都有一个独立的keychain存储. 对于一些私密信息,比如密码等等,就需要使用更为安全的keychain了.keychain里保存的信息不会因App被删除而丢失,在用户重新安装App后依然有效,数据还在.
插件测试用例与源码下载:点击至插件详情页 (插件测试用例与插件源码已经提供)
本插件的所有API默认只支持iOS7.0+操作系统,不支持Android.
有特殊版本要求的API会在文档中额外说明.
本插件所有API默认在插件版本4.0.0+可用.
setItem //设置KeyChain数据
uexKeyChain.setItem(param,cb)
说明
设置KeyChain数据
参数
参数名称 | 参数类型 | 是否必选 | 说明 |
---|---|---|---|
param | Object | 是 | 接口所需数据,形式见下: |
cb | Function | 是 | 回调方法 |
var param = {
service:,
key:,
value:,
accessibility:,
iCloudSync:,
TouchIDProtected:,
TouchIDPrompt:
}
各字段含义如下:
字段名称 | 类型 | 是否必选 | 说明 |
---|---|---|---|
service | String | 是 | keyChain item关键字 |
key | String | 是 | keyChain item关键字 |
value | String | 是 | keyChain item内保存的数据 |
accessibility | Number | 否 | KeyChain数据保护设置 ,默认值为2 |
iCloudSync | Boolean | 否 | 是否允许iCloud同步 仅限iOS7+ 默认false |
TouchIDProtected | Boolean | 否 | 是否设置TouchID保护 仅限iOS 8+ 默认false |
TouchIDPrompt | String | 否 | 覆写受到TouchID保护的数据时,弹出的TouchID提示文字 仅限iOS 8+ |
回调参数
var cb = function(error,data){}
参数名称 | 参数类型 | 说明 |
---|---|---|
error | Number | 为0表示操作成功,非0时表示操作失败 |
data | Object | 操作回调结果,形式见下: |
var data = {
service:,//String,必选 keyChain item关键字
key:,//String,必选 keyChain item关键字
value:,//String,可选 keyChain item内保存的数据
errorCode:,//Number 可选 系统错误代码 操作失败时才有此值
errorInfo:,//String 可选 系统错误描述 操作失败时才有此值
}
示例
var param = {
service: "AppCan",
key: "password",
value: "123456",
accessibility: 4,//注释掉TouchIDProtected那一行 ,此设置才会生效
iCloudSync: true,//注释掉TouchIDProtected那一行 ,此设置才会生效
TouchIDProtected: true,
TouchIDPrompt: "您需要通过验证指纹以获得AppCan数据"
};
uexKeyChain.setItem(param,function(err,data){
if(err){
alert("发生错误!");
}else{
alert("设置成功!");
}
});
getItem //获取KeyChain数据
uexKeyChain.getItem(param,cb)
说明
获取KeyChain数据
参数
参数名称 | 参数类型 | 是否必选 | 说明 |
---|---|---|---|
param | Object | 是 | 接口所需数据,形式见下: |
cb | Function | 是 | 回调方法 |
var param={
service:,
key:,
TouchIDPrompt:
}
各字段含义如下:
字段名称 | 类型 | 是否必选 | 说明 |
---|---|---|---|
service | String | 是 | keyChain item关键字 |
key | String | 是 | keyChain item关键字 |
TouchIDPrompt | String | 否 | 获取受到TouchID保护的数据时,弹出的TouchID提示文字 仅限iOS 8+ |
uexKeyChain.setItem(param)
中的参数说明回调参数
var cb = function(error,data){}
参数名称 | 参数类型 | 说明 |
---|---|---|
error | Number | 为0表示操作成功,非0时表示操作失败 |
data | Object | 操作回调结果,形式见下: |
var data = {
service:,//String,必选 keyChain item关键字
key:,//String,必选 keyChain item关键字
value:,//String,可选 keyChain item内保存的数据
errorCode:,//Number 可选 系统错误代码 操作失败时才有此值
errorInfo:,//String 可选 系统错误描述 操作失败时才有此值
}
示例
var param = {
service: "AppCan",
key: "password",
TouchIDPrompt: "您需要通过验证指纹以获得AppCan数据"
};
uexKeyChain.getItem(param,function(err,data){
if(err){
alert("发生错误!");
}else{
alert("获取到的值为: " + data.value);
}
});
removeItem //移除KeyChain数据
uexKeyChain.removeItem(param,cb)
说明
移除KeyChain数据
参数
参数名称 | 参数类型 | 是否必选 | 说明 |
---|---|---|---|
param | Object | 是 | 接口所需数据,形式见下: |
cb | Function | 是 | 回调方法 |
var param={
service:,
key:
}
各字段含义如下:
字段名称 | 类型 | 是否必选 | 说明 |
---|---|---|---|
service | String | 是 | keyChain item关键字 |
key | String | 是 | keyChain item关键字 |
uexKeyChain.setItem(param)
中的参数说明回调参数
var cb = function(error,data){}
参数名称 | 参数类型 | 说明 |
---|---|---|
error | Number | 为0表示操作成功,非0时表示操作失败 |
data | Object | 操作回调结果,形式见下: |
var data = {
service:,//String,必选 keyChain item关键字
key:,//String,必选 keyChain item关键字
errorCode:,//Number 可选 系统错误代码 操作失败时才有此值
errorInfo:,//String 可选 系统错误描述 操作失败时才有此值
}
示例
var param = {
service:"AppCan",
key:"password"
};
uexKeyChain.removeItem(param,function(err,data){
if(err){
alert("发生错误!");
}else{
alert("删除成功!");
}
});
getDeviceUniqueIdentifier //生成设备唯一标识
uexKeyChain.getDeviceUniqueIdentifier()
说明
参数
无
返回值
返回生成的唯一标识,是长度为32的String
示例
var uid = uexKeyChain.getDeviceUniqueIdentifier();
alert(uid);
KeyChain
accessibility
KeyChain数据保护设置说明
accessibility值 | 对应的属性 | 说明 | 备注 |
---|---|---|---|
0 | kSecAttrAccessibleAlways | 总是允许任何访问 | 完全无保护,不推荐 使用 |
1 | kSecAttrAccessibleAlwaysThisDeviceOnly | 总是允许任何访问,但仅限此设备 | |
2 | kSecAttrAccessibleAfterFirstUnlock | 当iPhone首次解锁完成后,允许访问 | 默认值 |
3 | kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly | 当iPhone首次解锁完成后,允许访问,但仅限此设备 | |
4 | kSecAttrAccessibleWhenUnlocked | 当iPhone没有被锁定时,允许访问 | 需要后台访问的数 据不要用此项 |
5 | kSecAttrAccessibleWhenUnlockedThisDeviceOnly | 当iPhone没有被锁定时,允许访问,但仅限此设备 | |
6 | kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly | 仅限此设备,并且启用设备密码验证,见下方说明 | 仅限iOS8+ |
关于启用设备密码验证,这是iOS 8新出的一个非常严格的keyChain保护设置
传1~6之外的其他值,或者在iOS 8以下的系统上传6,此设置将会被忽略,插件会认为保护设置为默认值2
API版本: uexKeyChain-4.0.0
最近更新时间:2016-1-21
历史发布版本 | 更新内容 |
---|---|
uexKeyChain不支持Android