Shift SDK
Shift iOS SDK。
更多信息,请参阅网站。
要求
- iOS 版本;10.0+
开发者指南
安装
- 在您的 Podfile 中添加以下依赖项
pod ShiftSDK
通过 Testflight 或 App Store 分发您的应用
Shift SDK 将 Plaid iOS SDK 作为依赖项,以处理与银行实体的通信。Plaid SDK 需要运行一个 壳脚脚本,该脚本会从框架中删除任何非 iOS 设备代码,该框架包括支持在 iOS 模拟器中运行其框架,但不可以通过 App Store 分发。
要运行此脚本,您必须在项目的构建阶段添加一个“新运行脚本阶段”,内容如下
LINK_ROOT=${PODS_ROOT:+$PODS_ROOT/Plaid/ios}
cp "${LINK_ROOT:-$PROJECT_DIR}"/LinkKit.framework/prepare_for_distribution.sh "${CODESIGNING_FOLDER_PATH "/Frameworks/LinkKit.framework/prepare_for_distribution.sh
"${CODESIGNING_FOLDER_PATH}"/Frameworks/LinkKit.framework/prepare_for_distribution.sh
更多详情请参考 Plaid SDK 文档
示例应用
有一个示例应用使用了此 SDK。您可以将示例应用安装以检查 Link 流程。
- 在
Example/Demo/ViewControllers/MainViewController.swift
中,编辑组织和项目密钥(从沙盒)
- 定义
<组织密钥>
。 - 定义
<项目密钥>
。
- 选择方案
ShiftSDK Demo Sandbox
- 构建并运行 (CMD+R)
使用 SDK
要运行 SDK,首先您需要使用密钥和当前上下文对其进行设置
ShiftPlatform.defaultManager().initializeWithDeveloperKey("<Organization Key>",
projectKey: "<Project Key>")
这适用于 Link SDK 和 Card SDK。您可以选择是否启用证书固定、是否信任自签名证书,以及您要针对的环境(“沙盒”或“生产”)
ShiftPlatform.defaultManager().initializeWithDeveloperKey("<Organization Key>",
projectKey: "<Project Key>",
environment: .sandbox,
setupCertPinning: true)
设置完成后,您可以传递上下文来启动所需 SDK。
对于 Link 流程使用
let shiftSession = ShiftSession()
shiftSession.startLinkFlow(from: self)
对于 Shift 卡流程使用
let shiftSession = ShiftSession()
shiftSession.startCardFlow(from: self)
此外,您还可以使用现有的数据点初始化 SDK
let userDataPoints = DataPointList()
(... add datapoints to the datapoint list)
let shiftSession = ShiftSession()
shiftSession.startLinkFlow(from: self initialUserData: userDataPoints)
let userDataPoints = DataPointList()
(... add datapoints to the datapoint list)
let shiftSession = ShiftSession()
shiftSession.startCardFlow(from: self initialUserData: userDataPoints)
在所有上述情况中,您必须保持 shiftSession
对象。
平台代理
可以将一个代理设置到ShiftPlatform
类中,以便在事件发生时接收通知。
ShiftPlatform.defaultManager().delegate = delegateObject
在SDK中发生重要事件时,会调用delegate
方法。
- 当SDK初始化完成并且准备使用时(见使用SDK部分),会调用方法
shiftSDKInitialized(developerKey:, projectKey:)
。 - 每当用户认证状态变更(注册、登录或登出)时,都会调用方法
newUserTokenReceived(_:)
,使用户认证令牌或注销时的nil
。
ShiftPlatformDelegate
中的另外两个方法是可选的,涉及处理网络可达性问题。这些方法是可选的,因为SDK已经实现了一种处理可达性问题的方式(显示一个带有消息的UI阻塞视图,并在连接恢复时自动关闭)。尽管如此,您仍然可以接收通知,并将处理问题的责任留给SDK,通过从方法networkConnectionError()
的实现中返回false
来做到这一点。
注意:一旦连接恢复,所有失败的任务都将自动独立发送,无论问题是否由您处理或由SDK处理。
- 当网络请求因可达性问题而失败时,我们会调用函数
networkConnectionError() -> Bool
。如前所述,您可以决定是否处理问题或将责任转交给Shift SDK。 - 一旦互联网连接恢复,我们会调用方法
networkConnectionRestored()
。在这种情况下,SDK的行为将取决于之前对networkConnectionError()
的调用返回的值。
Github页
Github页网站存储在dev-gh-pages
分支上。
授权
版权所有 Shift Financial, Inc (C) 2018。有关更多信息,请参阅授权文件。