KindredPrints 0.1.2

KindredPrints 0.1.2

测试已测试
语言 Obj-CObjective C
许可证 自定义
发布最后发布2014年12月

Alex Austin 维护。




Kindred Prints iOS SDK

Kindred Prints SDK 让您从应用程序中直接销售和收费打印照片变得极其容易。您只需将文件夹放入您的 iPhone 或 iPad 项目中,并通过我们的简单 SDK 接口添加照片,就可以将用户发送到结账流程。

Kindred Diagram

关于 Kindred Prints SDK

您将获得

  • 每卖出一张打印照片,直接到您的银行账户收款
  • 为您的用户创建自定义优惠券
  • 给特定用户信用额度
  • 在自定义仪表板上监控所有订单和用户
  • 带完整结账/支付的完整印刷相片购物车
  • 所有的客户服务都由 Kindred 处理

用户结账流程概览

  1. 您添加照片并且(可选)预先登记用户进行配货和订单通知
  2. 您展示 Kindred Prints 订单流程
  3. 用户看到您添加的所有照片,以及每张照片的适用产品列表
  4. 用户选择每份订单的数量
  5. 用户添加/选择配送目的地
  6. 用户看到订单摘要
  7. 用户输入信用卡信息进行安全支付
  8. 用户收到订单确认电子邮件
  9. 一两天后,用户收到发货通知
  10. 用户通过邮件收到印刷品

当前的印刷能力

  • 4" x 4" 亮光高级印刷

    4x4 Prints

  • 4" x 6" 亮光高级印刷

    4x6 Prints

  • 双面与单面

    我们的印刷品可以是单面或双面。您可以通过发送图像请求时指定印刷类型。

我们的购物车是如何工作的

当用户选择订购印刷品时,该图像会添加到 Kindred 购物车中。用户将被提示选择数量,并且可以最终确认只有一个印刷品的订单。但是,如果用户选择返回,他们可以继续选择其他图像以订购印刷品。每次他们添加到印刷,这些图像都会添加到 Kindred 购物车中。图像将保留在购物车中,直到用户完成购买或删除它们(退出应用程序不会从用户的购物车中删除图像)。

How it works

图像类型

您可以通过发送图片URL或通过将实际图片传递到内存中来,将用户图像发送给我们添加到购物车中,不论是在手机上还是您的服务器上。我们允许开发者通过URL (KPURLImage) 或内存中(KPMEMImage)的图片导入照片。

  • KPURLImage可以通过预览大小和完整大小的URL创建,或者仅为完整大小。
  • KPMEMImage在iOS中创建时使用UIImage对象,在android中创建时使用Bitmap对象。

此外,我们还可以与您合作,从您的用户创建的内容中创建自定义图片。例如,我们正在与一个烹饪应用合作,在那里我们创建用户喜欢特定菜谱时可以打印的菜谱卡片。

特定于iOS的安装

下载带有测试项目的SDK

如果您想了解示例测试应用程序如何与SDK接口,请按照本节中的说明进行操作。SDK中所有公开可调用的函数都进行了演示。

选项1:使用git

  1. 通过cd进入您的开发目录。
  2. 在命令行中运行 git clone git://github.com/kindredprints/kindredprints-ios.git

选项2:手动下载

  1. 下载 压缩的测试项目和SDK到您选择的文件夹
  2. 将文件解压缩到您的开发目录中

之后

  1. 双击 KindredPrints-iOS-TestBed 文件夹中的 KindredPrints-iOS-TestBed.xcodeproj

  2. 查看 TestViewController.m 并更新此行以使用您的测试Kindred App ID(通过注册获取)

    static NSString *const KINDRED_APP_ID = @"YOUR_TEST_KEY_HERE";
  3. 运行项目并在测试应用程序中尝试。

  4. TestViewController.m 中演示了所有公开可调用的SDK函数。

下载原始SDK文件

如果您只想将SDK文件夹添加到项目中

  1. 获取 KindredPrints-iOS-SDK文件夹的压缩版本,或使用测试项目文件夹中的(有关下载说明请见前文)。

  2. KindredPrints-iOS-SDK文件夹拖放到Xcode中的项目中,或者通过点击 文件 -> 添加文件到 ... 来添加该文件夹。

使用SDK

本节演示了示例实现中使用的函数,但您的想象力可以无限延伸。

在您的应用程序中使用SDK有两种主要方式:单张照片工作流程多张照片工作流程

测试

所有测试都应使用您的Kindred测试密钥进行,通过注册获得。具有测试密钥,您的订单将不会送到打印机,并且不会对信用卡进行收费。在向公众开放之前,请确保切换到实时版本,否则用户的订单将无法完成。

使用Kindred测试密钥,您可以使用号码为 4242 4242 4242 4242 的假信用卡以及任何有效的未来日期和CVV。

单张照片工作流示例

此类型的实现将通过单张照片吸引用户进行结账。这主要适用于主要处理单张照片编辑或优化的应用程序。

在此示例中,我们假设照片存储在本地内存中。例如,使用远程URL,请参考下面的示例中的类似方法。

  1. 在照片旁边添加一个按钮,上面写有“打印”(或您觉得合适的任何内容)。

  2. 将适当的导入添加到包含打印按钮处理器的视图控制器类的文件中

    #import "KPPhotoOrderController.h"
  3. 创建一个处理按钮点击的方法,并将此代码插入其中

    KPMEMImage *img = [[KPMEMImage alloc] initWithImage:(UIImage *)chosenImage];
    KPPhotoOrderController *orderController = [[KPPhotoOrderController alloc] initWithKey:@"YOUR_TEST_KEY_HERE" andImages:@[img]];
    [self presentViewController:orderPhotosVC animated:YES completion:nil];
  4. 庆祝吧 —— 你完成了!

多张照片工作流示例

如果您应用程序处理大量照片,您可能会对此示例感兴趣。比如说,你有整整一个相册的照片,你只想将其中的5-10张添加到照片打印购物车中。或者,你想给用户一种购物车体验的感觉,让他们在准备好“结账”之前单独添加照片。你可以在屏幕的右上角简单创建一个“结账”按钮,并将一个“添加到购物车”按钮放在每张照片旁边。

在此示例中,所有照片都位于远程服务器上,并且通过它们的URL传递给SDK。然后,结账流程将缓存照片以供用户显示。

  1. 将“添加到购物车”按钮添加到您的项目中,并放置在列表中的每张照片旁边

  2. 将适当的导入添加到包含打印按钮处理器的视图控制器类的文件中

    #import "KPPhotoOrderController.h"
  3. 创建一个处理按钮点击的方法,并将此代码插入其中

    KPPhotoOrderController *orderController = [[KPPhotoOrderController alloc] initWithKey:@"YOUR_TEST_KEY_HERE"];
    KPURLImage *img = [[KPURLImage alloc] initWithOriginalUrl:@"http://site.com/img.jpg"];
    [orderController addImages:@[img]];

    如果除了原始照片外,您还存储了预渲染预览大小的图片的远程URL,您可以像这样初始化KPURLImage。

    KPURLImage *img = [[KPURLImage alloc] initWithPreviewUrl:@"http://site.com/prevImg.jpg" andOriginalUrl:@"http://site.com/img.jpg"];
  4. 现在,在显示的某个位置添加一个写着“结账”的按钮

  5. 创建一个处理按钮点击的方法,并将此代码插入其中

    KPPhotoOrderController *orderController = [[KPPhotoOrderController alloc] initWithKey:@"YOUR_TEST_KEY_HERE"];
    [self presentViewController:orderController animated:YES completion:nil];
  6. 完成了!用户现在可以结账他们已添加的所有图片。

高级功能

注册委托

如果您希望在SDK完成后注册回调,只需将您的类注册为KPPhotoOrderControllerDelegate。为此,请按照以下说明操作

  1. 通过将其放在接口声明旁边来将您的类注册为KPPhotoOrderControllerDelegate。示例可以在我们的TestProject中找到,如下所示

    @interface TestViewController () <KPPhotoOrderControllerDelegate>
  2. 按照如下方式添加对可选委托函数的响应

    - (void)userDidCompleteOrder:(KPPhotoOrderController *)orderController {
        NSLog(@"USER DID COMPLETE ORDER");
    }
    - (void)userDidClickCancel:(KPPhotoOrderController *)orderController {
        NSLog(@"USER DID RETURN TO APP");
    }
  3. 在向用户呈现KPPhotoOrderController实例之前,将其分配给委托。如这里所示

    KPMEMImage *img = [[KPMEMImage alloc] initWithImage:(UIImage *)chosenImage];
    KPPhotoOrderController *orderController = [[KPPhotoOrderController alloc] initWithKey:@"YOUR_TEST_KEY_HERE" andImages:@[img]];
    orderController.delegate = self;
    [self presentViewController:orderPhotosVC animated:YES completion:nil];
  4. 完成了!

预先注册用户

出于多种原因,包括确认订单、在快递订单时通知他们,以及在订单出现问题时联系他们,我们要求用户输入电子邮件地址。

但是,要求用户手动输入电子邮件地址可能会降低转化率。如果您已经知道用户的电子邮件地址,您可以将其传递,使他们不需要手动输入。

KPPhotoOrderController *orderPhotosVC = [[KPPhotoOrderController alloc] initWithKey:@"YOUR_TEST_KEY_HERE"];
[orderPhotosVC preRegisterUserWithEmail:(NSString *)userEmail];

如果您还知道用户的姓名,如果您调用此函数,我们可以为我们提供个性化的电子邮件,以获得更好的体验。

KPPhotoOrderController *orderPhotosVC = [[KPPhotoOrderController alloc] initWithKey:@"YOUR_TEST_KEY_HERE"];
[orderPhotosVC preRegisterUserWithEmail:(NSString *)userEmail andName:(NSString *)userName];