Swift Dropbox 客户端

Swift v5.8 platforms iOS, macOS

基本的 Dropbox HTTP API 客户端,不依赖于 Dropbox 的 SDK。 没有外部依赖。

📖 用法

使用 Swift Package ManagerDropboxClient 库作为依赖项添加到您的项目中。

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 应用程序示例

该示例应用程序使用 Dependencies 来管理其自身的内部依赖项。 有关 Dependencies 库的更多信息,请查看 官方文档

🏛 项目结构

DropboxClient (Xcode Workspace)
 ├─ swift-dropbox-client (Swift Package)
 |   └─ DropboxClient (Library)
 └─ Example (Xcode Project)
     └─ DropboxClientExampleApp (iOS Application)

🛠 开发

☕️ 你喜欢这个项目吗?

Buy Me A Coffee

📄 许可证

版权所有 © 2023 Dariusz Rybicki Darrarski

许可证:MIT