基本的 Dropbox HTTP API 客户端,不依赖于 Dropbox 的 SDK。 没有外部依赖。
使用 Swift Package Manager 将 DropboxClient
库作为依赖项添加到您的项目中。
在 Dropbox 应用控制台 中注册您的应用程序。
配置您的应用程序,使其可以处理登录重定向。 对于 iOS 应用,您可以通过在 Info.plist
中添加或修改 CFBundleURLTypes
来实现。
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string></string>
<key>CFBundleURLSchemes</key>
<array>
<string>db-abcd1234</string>
</array>
</dict>
</array>
创建客户端
import DropboxClient
let client = DropboxClient.Client.live(
config: .init(
appKey: "abcd1234",
redirectURI: "db-abcd1234://my-app"
)
)
确保 redirectURI
包含之前定义的 scheme。
该软件包提供了一个基本实现,用于将敏感数据安全地存储在钥匙串中。 可选地,您可以提供您自己的自定义钥匙串实现,而不是使用默认的实现。
import DropboxClient
let keychain = DropboxClient.Keychain(
loadCredentials: { () async -> DropboxClient.Credentials? in
// load from secure storage and return
},
saveCredentials: { (DropboxClient.Credentials) async -> Void in
// save in secure storage
},
deleteCredentials: { () async -> Void in
// delete from secure storage
}
)
let client = DropboxClient.Client.live(
config: .init(...),
keychain: keychain
)
此存储库包含一个使用 SwiftUI 构建的 iOS 应用程序示例。
DropboxClient.xcworkspace
。Example
Xcode 项目中。DropboxClientExampleApp
构建方案运行该应用程序。DropboxClient
库的 UI。该示例应用程序使用 Dependencies 来管理其自身的内部依赖项。 有关 Dependencies
库的更多信息,请查看 官方文档。
DropboxClient (Xcode Workspace)
├─ swift-dropbox-client (Swift Package)
| └─ DropboxClient (Library)
└─ Example (Xcode Project)
└─ DropboxClientExampleApp (iOS Application)
DropboxClient.xcworkspace
。DropboxClient
scheme 来构建库并运行单元测试。版权所有 © 2023 Dariusz Rybicki Darrarski
许可证:MIT