ios - Cordova Keychain 插件和 SSKeychain 插件不能一起工作

标签 ios cordova cordova-plugins keychain

我们在尝试使用钥匙串(keychain)服务在两个应用程序之间共享信息时遇到了困难。

我们有两个应用:

1.- CoreApp,它是原生的并使用这个插件 SSKEYCHAIN设置值:

+ (BOOL)setPassword:(NSString *)password forService:(NSString *)serviceName account:(NSString *)account; 

在哪里为参数设置以下值:

password = aaa
serviceName = bbb
account = ccc

2.- SatelliteApp,它是混合 (cordova) 并使用此插件 KeychainPlugin获取值:

kc.getForKey(successCallback, failureCallback, 'ccc', 'bbb');

failureCallback 由以下消息触发:

"Error retrieving vale for key ccc : (null)"

我们做了一些测试:

1.- 我们已经做了另一个 native 应用程序来查询由 CoreApp 填充的钥匙串(keychain)并且它运行良好。

2.- 我们做了另一个混合应用程序,它在钥匙串(keychain)中设置值并且 SatelliteApp 成功查询它。

似乎我们没有在从其他应用程序检索值的同一容器中设置值。但是我们不知道如何将所有应用指向同一个地方。

有人知道会发生什么吗?任何提示、要做的测试或建议都将不胜感激。

非常感谢。

最佳答案

我遇到了同样的问题。我的解决方案是通过 com.crypho.plugins.securestorage ( http://plugins.cordova.io/#/package/com.crypho.plugins.securestorage ) 更改 Cordova 中的插件。

问题是 SSKeychain 插件有一个不同于 Cordova Keychain 插件的钥匙串(keychain)访问组,所以在使用相同插件的应用程序之间工作良好,但当插件不同时就不起作用了。

com.crypho.plugins.securestorage 文档:在 iOS 上, secret 通过 SSKeychain 库直接存储在 KeyChain 中。

关于ios - Cordova Keychain 插件和 SSKeychain 插件不能一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30913992/

相关文章:

ios - 关闭键盘时,如何将现有文本字段保留在同一位置?

ios - 如何在 Swift 中打印格式化的 Decimal 值?

node.js - 我如何正确地将 https 请求代理到 cordova 的另一个 https 服务器

javascript - 将音频切成背景音乐-PhoneGap应用

javascript - 未处理的 promise 拒绝警告(Cordova Angular)

iOS 7,使用默认的 interactivePopGestureRecognizer 快速向后滑动时损坏 UINavigationBar

ios - Xcode 7 警告 : The launch image does not have a valid extension

android - Cordova 将错误的参数传递给 native

angular - 添加 SMS 插件 Ionic 时,Type Error Object 不是函数

node.js - SignatureDoesNotMatch $cordovaFileTransfer