我最近一直在探索safari保存的密码,我参加了WWDC会议,详细讨论了如何从safari访问保存的凭据并添加保存的凭据。
https://developer.apple.com/videos/play/wwdc2014-506/
我也读过这篇文章,发现这是从Safari中获取保存凭据的代码,
SecRequestSharedWebCredential(NULL, NULL, ^(CFArrayRef credentials, CFErrorRef error) {
if (error != NULL) {
// If an error occurs, handle the error here.
[self handleError:error];
return;
}
BOOL success = NO;
CFStringRef server = NULL;
CFStringRef userName = NULL;
CFStringRef password = NULL;
// If credentials are found, use them.
if (CFArrayGetCount(credentials) > 0) {
// There will only ever be one credential dictionary
CFDictionaryRef credentialDict =
CFArrayGetValueAtIndex(credentials, 0);
server = CFDictionaryGetValue(credentialDict, kSecAttrServer);
userName = CFDictionaryGetValue(credentialDict, kSecAttrAccount);
password = CFDictionaryGetValue(credentialDict, kSecSharedPassword);
}
});
很明显,我们可以从safari访问共享凭据,我看到应用程序执行这些操作,我也看到了tutorial详细说明了进行集成的步骤。
此时一切顺利,现在我也看到您可以在Safari中保存信用卡信息,它会自动帮助用户在付款网站上预先填写信用卡信息。
现在问题是,第三方应用可以获取保存在safari中的已保存信用卡信息,反之亦然?我做了很多谷歌搜索,它是点黑色,没有完全匹配如何以编程方式这样做。有可能吗?
答案 0 :(得分:1)
假设您的应用有一个配套网站/后端,一个选项是使用Safari View Controller(SFSafariViewController)在您的网站上启动“添加信用卡”页面 - Safari视图控制器可以访问已保存的信用额度卡信息(以及其他自动填充信息)。用户输入新的信用卡后,您可以返回到应用的主流。