MastercardOpenBankingConnect 3.0.3

MastercardOpenBankingConnect 3.0.3

Prathamesh SalawkarAnupam 维护。



  • MastercardOpenBanking

Connect iOS SDK version

概述

Connect iOS SDK 允许您将我们的 Mastercard Connect 应用嵌入到您的移动应用中的任何地方。

iOS SDK 以编译的二进制形式作为 XCFramework 格式进行分发,这使得您能够轻松地将我们的 SDK 集成到您的开发项目中。我们的 iOS SDK 支持 full bitcode,因此当与 SDK 集成时,您不需要在您的应用程序中禁用 bitcode。

XCFramework 格式是 Apple官方支持的格式,用于在单个包中分发适用于多个平台和体系的二进制库。

有关 Connect iOS SDK 的额外文档可以在 (https://developer.mastercard.com/open-banking-us/documentation/connect/mobile-sdks/#ios) 找到

需求

Connect iOS SDK支持iOS 11及以上版本。

警告:从Connect iOS SDK 3.0.0版本开始,将不再支持deepLinkUrl参数,未来请使用支持通用链接和深度链接的redirectUrl参数。

安装

Connect iOS SDK可以通过CocoaPods或手动将Connect.xcframework拖入Xcode项目进行安装。

CocoaPods

Connect iOS SDK可以作为CocoaPod安装。要安装,请在Podfile中包含以下内容。

use_frameworks!

pod 'MastercardOpenBankingConnect'

手动

  1. 在Xcode中打开您的项目,然后将Connect.xcframework文件夹拖入项目中。

  1. 在您目标的构建设置中,选择“通用”选项卡,滚动到底部找到“框架、库和嵌入内容”,并选择Connect.xcframework。在“嵌入”列中,如果尚未选择,请从下拉菜单中选择“嵌入并签名”。

集成

  1. 将导入Connect添加到所有调用Connect iOS SDK的源文件。
import UIKit
import Connect
  1. 为加载、完成、取消、错误、路由和用户事件创建回调/代理函数。
    这些回调与Connect数据流中的以下事件相对应

    事件 描述
    onLoad 当Connect网页加载并准备好显示时调用。
    onDone 当用户成功完成 Connect 应用程序时调用。它还有一个包含事件信息的未标记的 NSDictionary? 参数。
    onCancel 当用户取消 Connect 应用程序时调用。
    onError 当用户在使用 Connect 应用程序时发生错误时调用。未标记的 NSDictionary? 参数包含事件信息。
    onRoute 当用户在 Connect 应用程序的屏幕之间导航时调用。包含事件信息的未标记的 NSDictionary? 参数。
    onUser 仅 Connect 2.0 调用用户执行动作时。用户事件提供关于用户在 Connect 应用程序中可能执行的操作的可见性。未标记的 NSDictionary? 参数包含事件信息。

    注意: onDone、onError、onRoute 和 onUser 回调函数将有一个 NSDictionary? 参数,其中包含有关事件的数据。

  2. 使用有效的 Connect URL 和回调函数,创建一个 Connect URL。请参阅生成 2.0 Connect URL API(在以下示例代码中用作 connectUrl)。

  3. 创建 ConnectViewController 类的实例并将 ConnectEventDelegate 分配给 ConnectViewController。

  4. 在加载回调中,使用 UINavigationController 展示 ConnectViewController,并将其设置为根视图控制器。

  5. 当 Connect 流完成、用户提前取消或遇到错误时,ConnectViewController 会自动消失。

示例

 ViewController: UIViewController, ConnectEventDelegate {
    
    @IBOutlet var activityIndicator: UIActivityIndicatorView!
    
   // Declaration of View and Navigation controllers
    var connectViewController: ConnectViewController!
    var connectNavController: UINavigationController!
    var connectUrl: String?
    
   // For regular Connect flow use below openConnect function
    func openConnect(connectUrl: String) {
      self.connectViewController = ConnectViewController()
      self.connectViewController.delegate = self
      self.connectViewController.load(connectUrl!)
    }

   // For App to App Connect flow use below openConnect function
    func openConnect(connectUrl: String) {
      self.connectViewController = ConnectViewController()
      self.connectViewController.delegate = self
      self.connectViewController.load(connectUrl,redirectUrl: "https://yourdomain.com/connect")
    }
    
    
    // Connect Delegate Methods
    func onCancel(_ data: NSDictionary?) {
        print("onCancel:")
        displayData(data)
        self.activityIndicator.stopAnimating()
        // Needed to trigger deallocation of ConnectViewController
        self.connectViewController = nil
        self.connectNavController = nil
    }
    
    func onDone(_ data: NSDictionary?) {
        print("onDone:")
        displayData(data)
        self.activityIndicator.stopAnimating()
        // Needed to trigger deallocation of ConnectViewController
        self.connectViewController = nil
        self.connectNavController = nil
    }
    
    func onError(_ data: NSDictionary?) {
        print("onError:")
        displayData(data)
        self.activityIndicator.stopAnimating()
        // Needed to trigger deallocation of ConnectViewController
        self.connectViewController = nil
        self.connectNavController = nil
    }
    
    func onLoad() {
        print("onLoad:")
        self.connectNavController = UINavigationController(rootViewController: self.connectViewController)
        if #available(iOS 13.0, *) {
            self.connectNavController.modalPresentationStyle = .automatic
            self.connectNavController.isModalInPresentation = true
        } else {
            // Fallback on earlier versions
        }
        
        self.connectNavController.presentationController?.delegate = self
        self.present(self.connectNavController, animated: true)
    }
    
    func onRoute(_ data: NSDictionary?) {
        print("onRoute:")
        displayData(data)
    }
    
    func onUser(_ data: NSDictionary?) {
        print("onUser:")
        displayData(data)
    }
    
    func displayData(_ data: NSDictionary?) {
        print(data?.debugDescription ?? "no data in callback")
    }




注意: onDone、onError、onRoute 和 onUser 回调函数将有一个 NSDictionary? 参数,其中包含有关事件的数据。

应用至应用设置

为了提供最佳的客户应用至应用体验,当使用 Connect 时,您应该在重定向 URL 参数中发送通用的链接 URL。有关应用至应用认证的更多信息,请参阅这里

在安装与应用至应用认证一起使用的 Connect iOS SDK 之前,请完成以下操作。

创建您域的redirectUrl

有关如何创建用作应用中redirectUrl的通用链接的信息,请参阅Apple的允许应用和网站链接到您的内容以获取详细信息。

注意:为了提供最佳的应用现场体验,合作伙伴应使用通用链接作为redirectUrl。

不建议将深度链接(自定义URL方案)作为redirectUrl,因为它们缺乏通过您应用和您的网站之间的双向关联提供的通用链接的安全性。深度链接还将在iOS设备上触发警报,这可能给客户体验增加摩擦,请求重定向回合作伙伴应用的权限。

任何应用程序都可以注册自定义URL方案,iOS不会进行进一步验证。如果多个应用程序已注册相同的自定义URL方案,则每次打开URL时可能会启动不同的应用程序。为了完成OAuth流程,确保打开您的应用程序而不是任何已注册相同URL方案的任意应用程序很重要。

配置您的redirectUrl

为了在客户完成FI的OAuth流程后返回控制权到您的应用,您必须指定一个redirectUrl,这是一个Connect将从中重新启动以使客户完成Connect体验的URL。

以下是在您代码中的通用链接redirectUrl的示例:self.connectViewController.load(connectUrl,redirectUrl: "https://yourdomain.com/mastercardConnect")有关如何配置服务器的信息,请参阅支持关联域

以下是在您代码中的深度链接redirectUrl的示例(不推荐):self.connectViewController.load(connectUrl,redirectUrl: "deeplinkurl://")

ConnectWrapper Swift 示例应用

此仓库包含一个使用 Swift 编写的 ConnectWrapper 示例应用(需要 Xcode 11 或更高版本),该应用演示了与 Connect iOS SDK 的集成和使用。

从框架迁移到 XCFramework

Connect iOS SDK 使用 XCFramework 格式,这允许您轻松地将 SDK 集成到开发项目中。我们的 iOS SDK 具有完整的 bitcode 支持,因此您无需在应用程序中禁用 bitcode。

从项目中删除 Connect.framework

如果您目前在项目中使用框架,在使用 XCFramework 之前需要将其删除。这确保了连接框架在编译源代码时不会干扰新的 XCFramework。

警告:在删除现有的框架之前,请测试新的 XCFramework,并确保其运行正确,以避免意外删除源文件。

  1. 在 Xcode 中打开您的项目。
  2. 点击“通用”标签。
  3. 滚动到框架、库和嵌入式内容部分。
  4. 选择 connect.framework。
  5. 要删除框架,点击(–)减号。

删除 Connect.framework 引用

  1. 从左侧的“项目导航器”选择框架并按 Delete 键。
  2. 点击“移除引用”(推荐)说明:这是保留源文件的最高安全选项。

移除运行脚本

如果您在提交应用程序到 App Store 前整合了我们移除 X86 模拟器的脚本,您可以移除运行脚本。使用 XCFramework 之后不再需要。只有创建运行脚本以整合到 connect-sdk-iOS-v1.2.0.zip 的客户需要执行该步骤。

  1. 在 Xcode 的右侧窗格中,选择您的目标。
  2. 在构建阶段选项卡中,滚动到运行脚本
  3. 要移除脚本,点击 x。

从遗留框架迁移到新的 XCFramework 之后,您可以通过 CocoaPods 安装 Connect iOS SDK。