iOS在第三方应用中获取Safari保存的信用卡信息

时间:2016-01-05 06:32:06

标签: ios iphone safari

我最近一直在探索safari保存的密码,我参加了WWDC会议,详细讨论了如何从safari访问保存的凭据并添加保存的凭据。

https://developer.apple.com/videos/play/wwdc2014-506/

http://devstreaming.apple.com/videos/wwdc/2014/506xxeo80e5kykp/506/506_ensuring_continuity_between_your_app_and_web_site.pdf

我也读过这篇文章,发现这是从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中保存信用卡信息,它会自动帮助用户在付款网站上预先填写信用卡信息。

enter image description here

enter image description here

现在问题是,第三方应用可以获取保存在safari中的已保存信用卡信息,反之亦然?我做了很多谷歌搜索,它是点黑色,没有完全匹配如何以编程方式这样做。有可能吗?

1 个答案:

答案 0 :(得分:1)

假设您的应用有一个配套网站/后端,一个选项是使用Safari View Controller(SFSafariViewController)在您的网站上启动“添加信用卡”页面 - Safari视图控制器可以访问已保存的信用额度卡信息(以及其他自动填充信息)。用户输入新的信用卡后,您可以返回到应用的主流。