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

4

最近我一直在查看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中保存的信用卡信息,反之亦然?我已经进行了很多谷歌搜索,但毫无头绪,没有确切的匹配项来编写程序。这是否可能?

遇到了同样的问题。http://9to5mac.com/2014/10/11/ios-8-how-to-use-camera-to-enter-in-credit-card-info/ 我想在我的应用程序中实现类似的功能。 - Abhi
@Abhi 抱歉,目前没有这样的API可用,甚至在iOS 10中也不行。 - Satheesh
有关最新的iOS版本是否有更新?iOS 12具有自动填充框架来存储密码,但不支持卡片。 - Piyush Hirpara
1个回答

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

你能否提供一些这种技术的示例? - actuosus
@actuosus 并不是很难。这是一种非常直接的技术。你在哪个部分遇到了理解或实现上的困难? - JosephH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接