D2DEventCollectionKit 0.2.6

D2DEventCollectionKit 0.2.6

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2017年4月
SwiftSwift 版本3
SPM支持 SPM

Elmar TampeAlexander Belonogov 维护。



  • Elmar Tampe

D2DEventCollectionKit

Door2Door 移动分析的 无依赖 iOS SDK。

## 目录

  1. [技术要求] (#1-technical-requirements)
  2. [设置] (#2-setup)
  3. [指南] (#3-guide)
  4. [参考] (#4-reference)
  5. [许可证] (#5-license)

1. 技术要求

事件收集 API 封装器可用于 Swift 3.x 及以上版本以及 Objective-C。它还与某些依赖关系管理器兼容。SDK 可用于以下:

  • Swift 3.x
  • Objective-C
  • Cocoapods
  • 直接将 Xcode 项目 制造在项目中

示例项目:请检查示例项目以了解如何实现 SDK ,设置它,创建一个事件并将其发送到后端。有一个为 Objective-C 实现的示例项目,另一个为基于 Swift 的实现。

要将 D2DEventCollectionKit 集成到项目中,项目至少需要以下两个构建配置:a.) 调试 和 b.) 发布。如有需要,可添加更多,但至少应该有并使用这两个。

项目级别的构建配置 链接二进制文件

2. 设置

选择将 SDK 集成到项目中的方式。

###2.1 CocoaPods

CocoaPods 是 Cocoa 项目的依赖关系管理器。可以使用以下命令安装

$ gem install cocoapods

要使用 CocoaPods 将 D2DEventCollectionKit 集成到 Xcode 项目中,请将其指定在 Podfile 中

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!

target '<Your Target Name>' do
    pod 'D2DEventCollectionKit', '~> 0.1.1'
end

然后运行以下命令

$ pod install

###2.2 手动设置 要在不使用任何依赖关系管理器的情况下使用 SDK,请将 D2DEventCollectionKit.xcodeproj 文件拖放到需要提供的功能的项目中。转到项目设置,并将 目标依赖项与库链接二进制文件框架路径映射 设置如下面的图片所示。为所有使用到的目标设置这些设置。

与库链接二进制文件 链接二进制文件

目标依赖 目标依赖

嵌入框架 嵌入框架

构建设置 中添加一组用户定义的变量(通过顶部的+符号添加),并将其命名为 FRAMEWORK_PATH_MAPPING,如下例所示。在右侧,可以用于映射的给定构建配置有:发布调试

框架路径映射 目标依赖

右侧显示了 构建配置。这些需要逐一映射到SDK使用的预定义配置。

如果项目的环境变量不是使用Xcode的默认设置,则此步骤是推荐的。如果项目在Xcode的预定义设置中运行,则无需其他操作。注意:如果使用多个不同的目标,则必须在每个目标的层面上指定每个设置。

完成上述操作后,为映射添加以下变量:框架搜索路径,并添加以下条目

设置:$(BUILD_DIR)/$(FRAMEWORK_PATH_MAPPING)$(EFFECTIVE_PLATFORM_NAME)

现在转到 ApplicationDelegate 并添加模块导入语句 import D2DEventCollectionKit。就这样。

祝您集成愉快!

3. 指南

在将兼容的依赖管理器集成后,SDK即可使用。设置起来相当简单。这同样适用于使用Objective-C时使用SDK。D2DEventCollectionKitDemoObjc 演示了Objective-C的集成过程。

###设置

在应用程序代理中实现以下内容

 EventCollectionKit.register(applicationToken: "YOUR_APP_TOKEN_GOES_HERE",
                             applicationName: "Your application name",
                             applicationVersion: "1.0")

按照此步骤,可以启用/禁用调试输出。默认情况下,调试输出是禁用的。

EventCollectionKit.enable(logging: true)

创建事件

创建和发送事件很简单。要为具有 search 操作的 route 创建事件,请使用 TripEvent 对象上的方便方法。如下例所示。

注意: 要尽可能精确,建议提供用于跟踪的 latitudelongitude 的坐标数据。如果无法提供这两个字段的实际数据,则在每个字段中输入 0.0 并指定 address 字段。

let tripSearchEvent  = TripEvent.tripSearchEvent(modesOfTransportation:[.train, .taxi],
                                                 departureTime: Date(),
                                                 originLatitude: 52.5230554,
                                                 originLongitude: 13.4122575,
                                                 originName: "Alexanderplatz",
                                                 originStreet: "Alexanderplatz",
                                                 originCity: "Berlin",
                                                 originPostalCode: "10119",
                                                 originCountry: "Germany",
                                                 arrivalTime: nil,
                                                 destinationLatitude: 52.5300641,
                                                 destinationLongitude: 13.4008385,
                                                 destinationName: "Door2Door HQ",
                                                 destinationStreet: "Torstrasse 109",
                                                 destinationCity: "Berlin",
                                                 destinationPostalCode: "10178",
                                                 destinationCountry: "Germany")

发送事件

在创建事件后,必须使用 EventCollectionKitsend: 函数发送它。就这样。可以在SDK本身或参考部分中找到事件及其参数定义的列表。

    EventCollectionKit.send(event: tripSearchEvent)

4. 参考

为了使SDK尽可能易于使用,已将可能的事件类型映射到 TripEvent 类型的类函数。一个 TripEvent 可以附加多个操作,从而定义旅行的状态。以下列表显示了现有操作及其便于使用的对应类函数。

由于SDK支持SwiftObjective-C,每个事件将实现两个类函数。一个是针对Swift的,一个是针对Objective-C的。当使用Swift时,可以选择任何一个,但鼓励使用具有类型签名的函数,其中modesOfTransportation的类型为[ModesOfTransportation]Objective-C实现使用其类型为[NSNumber]的签名modesOfTransportation

ModesOfTransportation Swift枚举定义了可用的交通方式,可以映射到从0 - 8的值。如果SDK在Objective-C中使用,应将这些作为NSNumber使用。

例如,Swift中的ModesOfTransportation.taxi映射到Objective-C中的NSNumber @(ModesOfTransportationTaxi)

public enum ModesOfTransportation: Int {
    case train // 0
    case walk // 1
    case publicTransport // 2
    case carSharing // 3
    case bikeSharing // 4
    case taxi // 5
    case privateBike // 6
    case rideSharing // 7
    case other // 8
}

TripEvent事件的相应方法签名可以在项目中的Source/Events/Trip找到。

行程搜索

用户正在寻找从A到B的方法。

TripEvent.tripSearchEvent(...)

行程开始

用户从A开始前往B的旅程。

TripEvent.tripBeginEvent(...)

行程取消

用户取消了预订的行程。

TripEvent.tripCancelEvent(...)

行程结束

用户到达目的地。

TripEvent.tripEndEvent(...)

行程兴趣

用户检查搜索结果细节。如果搜索返回多个结果,则会发生这种情况。

TripEvent.tripInterestEvent(...)

行程支付

用户为从A到B付费。

TripEvent.tripPayEvent(...)

5. 许可证

有关许可证详细信息,请参阅许可证