uploadcare-ios 3.0.3

uploadcare-ios 3.0.3

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2020年9月

Uploadcare, Inc 维护。



  • Uploadcare, Inc

Uploadcare for iOS

已弃用。请查看我们全新的 Swift 库

Build Status Pod Version Pod Platform Pod License

Uploadcare 是一个提供文件处理机制 PaaS,用于网站和应用程序。这还包括使用 Uploadcare CDN API 的即时图像处理。

Uploadcare for iOS 是一个开源的 Objective-C 组件,可以使您的 iOS 应用程序获得 Uploadcare 的功能。它由两个关键部分组成: UploadcareKitUploadcare Widget

UploadcareKit 负责在上传和下载任务内进行 API 通信的核心抽象层。

Uploadcare Widget 是一个现代且具备云意识的 iOS 文件选择器。嗯,如果 iOS 有文件的概念也许就是这样。由于它没有,您可以认为 Uploadcare Widget 是一个 物品 选择器——一个可以插入的组件,允许用户从他们的数字 物品(照片、文档等等)中选择和上传到您的网站或应用程序。

它的样子看起来像这样,

Uploadcare for iOS menu Facebook albums Instagram gallery

快速入门

安装

Uploadcare for iOS 使用了 CocoaPods,这是一个 Objective-C 项目的库依赖管理工具。将 Uploadcare 实现到您的项目中,只需将以下一行添加到您的 Podfile 文件中。

pod 'Uploadcare'

然后,在项目目录中运行 pod install

请确保从此使用 .xcworkspace 文件。

设置

环境

Uploadcare.h 文件头导入您的实现中。从 这里获取 您的 Uploadcare API 密钥,并在您的应用程序代理中使用一个公钥,如下所示。

#import <Uploadcare/Uploadcare.h>

/* ... */

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [[UCClient defaultClient] setPublicKey:<#your key#>];
    return YES;
}

icloud 权限

Uploadcare Widget 使用了 UIDocumentMenuViewController,所以您需要在您的应用程序中启用 iCloud。转到 目标 -> 能力,并启用 iCloud。启用 Key-value storageiCloud Documents 选项,iCloud settings

自定义 URL 规约

Uploadcare小组件在iOS 9+设备上使用SFSafariViewController,在之前的版本上使用UIWebView进行认证。这允许它通过应用程序代理方法中的自定义URL方案处理URL回调。

// IOS 9+
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
    return [[UCClient defaultClient] handleURL:url];
}

// IOS 8
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    return [[UCClient defaultClient] handleURL:url];
}

添加自定义URL方案需要执行以下步骤:

  • 转到目标 -> 信息 -> URL类型
  • 添加一个类似下面的新URL方案,格式为 uc-
  • 最终结果应类似于以下示例:

Custom url scheme

NSPhotoLibraryUsageDescription in iOS 10

Uploadcare小组件使用UIImagePickerController从相机胶卷上传文件。不要忘记在您的项目的Info.plist文件中添加NSPhotoLibraryUsageDescription键,以防止程序在运行时崩溃。

显示

初始化并显示小插件

显示Uploadcare小插件是通过创建并初始化一个UCMenuViewController实例实现的,该实例是通过调用initWithProgress:completion:方法创建的,

#import <Uploadcare/Uploadcare.h>

/* ... */

UCMenuViewController *menu = [[UCMenuViewController alloc] initWithProgress:^(NSUInteger bytesSent, NSUInteger bytesExpectedToSend) {
    // handle progress here
} completion:^(NSString *fileId, id response, NSError *error) {
    if (!error) {
        // handle success
    } else {
        // handle error
    }
}];

然后,使用presentFrom:方法显示它,

[menu presentFrom:self];

自定义

您可以通过实现自己的菜单轻松自定义社交源列表的外观。为了接收可用的社交源,您可以使用UCSocialManager中的fetchSocialSourcesWithCompletion:方法。收到社交源列表后,您可以选择一个源并使用以下方法通过瞬时实例化UCGalleryVC

- (id)initWithSource:(UCSocialSource *)source
           rootChunk:(UCSocialChunk *)rootChunk
            progress:(UCProgressBlock)progress
          completion:(UCWidgetCompletionBlock)completion;

仅核心级功能

为了仅集成核心级功能,例如本地和远程文件上传操作,您可以使用以下子规范

pod 'Uploadcare/Core'

请注意,在这种情况下,不会包含 Uploadcare.h 头文件,您需要使用 UploadcareKit.h 代替。

示例应用

这里是一个 示例项目

联系

如果您有任何问题、错误报告或建议——给我们发邮件

贡献者

安全问题

如果您认为在上传关注库中遇到了可能具有安全影响的问题,请与我们联系 [email protected] 或 Hackerone。

我们将尽快通过合作修复问题,并在任何公开披露之前与您个人联系。

授权

Uploadcare iOS遵循MIT许可证(见授权)。