Record360SDK 4.9.7

Record360SDK 4.9.7

Alexis ValenciaTobin Pomeroy maintenance.



 
依赖项
AFNetworking= 4.0.1
CocoaLumberjack= 3.7.4
Realm= 10.25.0
Analytics= 4.1.6
Segment-Amplitude= 3.2.3
 

  • Alexis Valencia 和 Tobin Pomeroy

Version

Record360 iOS SDK

Record360 Logo

简介

Record360SDK.framework 是一个 Cocoa 框架,允许移动客户端利用 Record360。这允许客户端使用 Record360 工作流跟踪和记录资产的状态。需要 Record360 账户。请联系 [email protected] 获取详细信息。

要求

  • iOS 12.0 或更高版本
  • iPhone 8 及以上。
  • iPad 4 及以上。
  • iPad mini 2 及以上。
  • iPod Touch 6G 及以上。

示例

要运行示例项目,请克隆仓库,然后从 Example 目录中运行 pod install

准备

为了使用SDK框架,需要Record360的账户。请联系[email protected]获取详细信息。

此SDK不支持暗黑模式。请在您的info.plist文件中添加以下外观属性:

Appearance Screenshot

通过CocoaPods安装

Record360 SDK可以使用CocoaPods进行安装。CocoaPods是一个依赖管理器,用于自动化将第三方库集成到您的项目中。如果您还没有安装CocoaPods,请访问CocoaPods了解安装方法。

Podfile

在您的Xcode项目目录中创建一个Podfile,包含以下行。

platform :ios, '12.0'
use_frameworks!

pod 'Record360SDK', '~> 4.9.5' 

从命令行执行pod install以添加Record360SDK。

注意:如果您想将驾照验证功能打包进SDK中,请联系我们[email protected]

不通过CocoaPods安装

Record360可以提供框架,请联系[email protected]获取更多信息。

集成Record360

开始检查上传处理流程

  1. 指定一个Record360Delegate来处理检查上传事件。注意,上传过程是异步的,所以处理委托不会在过程完成立即被调用。
@interface MyApplicationViewController () <Record360Delegate>
  1. 创建一个Record360对象来处理文件上传,并向委托提供关于上传进度事件的情报。传入一个处理检查上传事件的委托。
Record360 *record360 = [[Record360 alloc] initWithDelegate:self];
  1. 创建一个Record360ViewController对象。传入登录凭据、已创建的record360对象以及显示工作流程过程的UIViewController。然后设置record360ViewController对象的委托以响应工作流程事件。
Record360ViewController *record360ViewController = [Record360ViewController loadControllerWithUserName:@"[email protected]" andPassword:@"P@ssword!" sendTo:record360 displayOn:self]];

record360ViewController.delegate = self;

您的类现在看起来像这样

#import <Record360SDK/Record360.h>

@interface MyApplicationViewController () <Record360Delegate>

@property (nonatomic) Record360 *record360;

@end

@implementation

- (void)viewDidLoad {
    [super viewDidLoad];

    self.record360 = [[Record360 alloc] initWithDelegate:self];
}
  1. 检查完成或被用户取消后,Record360ViewController的委托方法之一将被调用。
- (void)onInspectionComplete;
- (void)onInspectionCanceled;
  1. 如果检查正在上传中,实现Record360Delegate协议中指定的回调。当Record360对象完成上传检查时,Record360Delegate方法之一将被调用。
- (void)onInspectionUploadedForReferenceNumber:(nonnull NSString *)referenceNumber;
- (void)onInspectionUploadFailedForReferenceNumber:(nonnull NSString *)referenceNumber withError:(nonnull NSError *)error;
- (void)onInspectionUploadDeletedForReferenceNumber:(nonnull NSString *)referenceNumber;

Record360 Class

该对象处理检查上传。如果有剩余尚未处理的检查,您创建的实例将在在线时处理它们。

使用下面的init方法创建Record360类

- (nonnull Record360 *)initWithDelegate:(nullable id <Record360Delegate>)delegate;

获取/设置以下属性以设置上传模式。选项包括在线、离线或仅wifi。在仅wifi模式下,当可用的wifi网络时,检查将上传。

@property (nonatomic, assign) UploadMode uploadMode;

下面的方法返回准备上传的检查数量。正在上传过程中的检查将包括在内。

- (NSUInteger)getInspectionsReadyForUploadCount;

使用下面的方法手动开始上传检查

- (void)startUploading;

使用下面的方法手动停止上传检查

- (void)stopUploading;

使用下面的方法在传入的UIViewController上显示进度对话框UI

- (void)showProgressDialogOnViewController:(nonnull UIViewController *)rootViewController onControllerClose:(nullable void (^)(void))onClose;

Record360Delegate

使用这些委托方法来响应各种检查上传事件

- (void)onInspectionUploadedForReferenceNumber:(nonnull NSString *)referenceNumber;
- (void)onInspectionUploadFailedForReferenceNumber:(nonnull NSString *)referenceNumber withError:(nonnull NSError *)error;
- (void)onInspectionUploadDeletedForReferenceNumber:(nonnull NSString *)referenceNumber;

@optional
- (void)onUploadBytesComplete:(long long)bytesComplete ofTotal:(long long)bytesTotal forReferenceNumber:(nonnull NSString *)referenceNumber;

Record360ViewController Class

使用以下工厂方法之一来创建进入并显示工作流程的Record360ViewController对象。

这些方法允许用户指定自己的参考编号

+ (Record360ViewController *)loadControllerLoginAndSendTo:(Record360 *)record360 withReferenceNumber:(nullable NSString *)referenceNumber workOrderId:(NSNumber *)workOrderId workOrderLabel:(NSString *)workOrderLabel displayOn:(UIViewController *)rootViewController showCancelButton:(BOOL)showCancel withLoginUsername:(nullable NSString *)username;

+ (Record360ViewController *)loadControllerWithUserName:(NSString *)userName andPassword:(NSString *)password andReferenceNumber:(nullable NSString *)referenceNumber workOrderId:(nullable NSNumber *)workOrderId workOrderLabel:(nullable NSString *)workOrderLabel sendTo:(Record360 *)record360 displayOn:(UIViewController *)rootViewController;

+ (Record360ViewController *)loadControllerWithUserToken:(NSString *)userToken andReferenceNumber:(nullable NSString *)referenceNumber workOrderId:(nullable NSNumber *)workOrderId workOrderLabel:(nullable NSString *)workOrderLabel sendTo:(Record360 *)record360 displayOn:(UIViewController *)rootViewController;

+ (Record360ViewController *)loadControllerWithUserToken:(NSString *)userToken andUserId:(NSString *)userId andReferenceNumber:(nullable NSString *)referenceNumber workOrderId:(nullable NSNumber *)workOrderId workOrderLabel:(nullable NSString *)workOrderLabel sendTo:(Record360 *)record360 displayOn:(UIViewController *)rootViewController;

+ (Record360ViewController *)loadControllerWithUserToken:(NSString *)userToken userId:(NSString *)userId referenceNumber:(nullable NSString *)referenceNumber workOrderId:(nullable NSNumber *)workOrderId workOrderLabel:(nullable NSString *)workOrderLabel andIsOneTimeLink:(BOOL)isOneTimeUseLink sendTo:(Record360 *)record360 displayOn:(UIViewController *)rootViewController;

这些方法自动插入参考编号

+ (Record360ViewController *)loadControllerLoginAndSendTo:(Record360 *)record360 displayOn:(UIViewController *)rootViewController showCancelButton:(BOOL)showCancel withLoginUsername:(nullable NSString *)username;

+ (Record360ViewController *)loadControllerLoginAndSendTo:(Record360 *)record360 withTaskId:(NSString *)taskId displayOn:(UIViewController *)rootViewController showCancelButton:(BOOL)showCancel withLoginUsername:(nullable NSString *)username;

+ (Record360ViewController *)loadControllerWithUserName:(NSString *)userName andPassword:(NSString *)password sendTo:(Record360 *)record360 displayOn:(UIViewController *)rootViewController;

+ (Record360ViewController *)loadControllerWithUserName:(NSString *)userName andPassword:(NSString *)password andTaskId:(NSString *)taskId sendTo:(Record360 *)record360 displayOn:(UIViewController *)rootViewController;

+ (Record360ViewController *)loadControllerWithUserToken:(NSString *)userToken andUserId:(NSString *)userId sendTo:(Record360 *)record360 displayOn:(UIViewController *)rootViewController;

+ (Record360ViewController *)loadControllerWithUserToken:(NSString *)userToken andUserId:(nullable NSString *)userId andTaskId:(NSString *)taskId sendTo:(Record360 *)record360 displayOn:(UIViewController *)rootViewController;

+ (Record360ViewController *)loadControllerWithRefreshToken:(NSString *)authToken sendTo:(Record360 *)record360 displayOn:(UIViewController *)rootViewController success:(void (^)(void))success failure:(void (^)(RefreshTokenError refreshErrorCode))failure;

从具有 loadControllerLoginAndSendTo 标签的工厂方法开始,使用上述方法使SDK在进入工作流程之前显示登录UI。 Record360 对象将上传结果检查。将使用 rootViewController 来显示视图。

使用以下方法之一来配置Record360ViewController对象以修改工作流程。其中一些设置为预设,而其他可自定义。更多详细信息请参阅下面的Record360Setting部分。

- (void)applySettings:(nonnull NSArray<Record360Setting *> *)settings;
- (void)applyDefaultSettings:(nonnull NSArray<Record360Setting *> *)settings;

设置是否在工作流程进入时显示帮助屏幕。默认为false。

- (void)setShowOnboarding:(BOOL)showOnboarding;

Record360ViewControllerDelegate

实现这些代理回调以挂钩到工作流程过程中

- (void)onInspectionComplete;
- (void)onInspectionCanceled;

@optional

- (nonnull NSArray<Record360FieldData *> *)onReferenceNumberEntered:(nonnull NSString *)referenceNumber fieldData:(nonnull NSArray<Record360FieldData *> *)fieldData;
- (nonnull NSArray<Record360FieldData *> *)onContractFieldData:(nonnull NSArray<Record360FieldData *> *)fieldData;
- (void)onSuccessfulAuthenticationWithToken:(nonnull NSString *)userToken andUserId:(nonnull NSString *)userId;
- (void)onFailedAuthentication:(nonnull NSError *)error;

使用以下代理回调方法将自定义字段数据推入工作流程过程中。这些数据将填充工作流程中指定表格的表格。在示例项目中还包含了几种向表格提供数据的方法。

- (nonnull NSArray<Record360FieldData *> *)onReferenceNumberEntered:(nonnull NSString *)referenceNumber fieldData:(nonnull NSArray<Record360FieldData *> *)fieldData;

Record360Setting

使用以下任一init方法来创建可以用于修改工作流程的Record360Setting实例。使用一个设置常量和适当的init方法作为一个设置键。示例项目中包含各种设置配置。

- (instancetype)initSetting:(nonnull NSString *)settingKey;
- (instancetype)initSetting:(nonnull NSString *)settingKey label:(nonnull NSString *)label;
- (instancetype)initSetting:(nonnull NSString *)settingKey canDisplay:(BOOL)canDisplay;
- (instancetype)initSetting:(nonnull NSString *)settingKey label:(nonnull NSString *)label canDisplay:(BOOL)canDisplay;
- (instancetype)initSetting:(nonnull NSString *)settingKey label:(nonnull NSString *)label link:(nonnull NSString *)link;
- (instancetype)initSetting:(nonnull NSString *)settingKey label:(nonnull NSString *)label recipient:(nonnull NSString *)recipient title:(nonnull NSString *)title;

- (instancetype)initOptionSetting:(nonnull NSString *)settingKey value:(nonnull NSString *)value;
- (instancetype)initOptionSetting:(nonnull NSString *)settingKey canDisplay:(BOOL)canDisplay value:(nonnull NSString *)value;

- (instancetype)initSwitchSetting:(nonnull NSString *)settingKey value:(BOOL)value;
- (instancetype)initSwitchSetting:(nonnull NSString *)settingKey canDisplay:(BOOL)canDisplay value:(BOOL)value;

以下是一个设置和其可能的值的列表

// Setting
extern NSString * const SETTING_UPLOAD_MODE;
// Possible values
extern NSString * const UPLOAD_MODE_ONLINE;
extern NSString * const UPLOAD_MODE_WIFI_ONLY;
extern NSString * const UPLOAD_MODE_OFFLINE;

// Setting
extern NSString * const SETTING_RESOLUTION;
// Possible values
extern NSString * const RESOLUTION_MEDIUM;
extern NSString * const RESOLUTION_HIGH;
extern NSString * const RESOLUTION_VERY_HIGH;

// On/Off switch settings
extern NSString * const SETTING_NATIVE_PHOTO_MODE;
extern NSString * const SETTING_NOTATIONS_ON_IMAGES;
extern NSString * const SETTING_VIN_SCAN;
extern NSString * const SETTING_REMEMBER_LOGIN;
extern NSString * const SETTING_ADD_TIMESTAMP_TO_MEDIA;

// Other settings
extern NSString * const SETTING_ACCOUNT;
extern NSString * const SETTING_LOGOUT;
extern NSString * const SETTING_VERSION;
extern NSString * const SETTING_SHOW_INTRO_VIDEO;
extern NSString * const SETTING_SEND_SUPPORT_LOG;
extern NSString * const SETTING_RATE_RECORD360;
extern NSString * const SETTING_LINKS;
extern NSString * const SETTING_SEND_EMAIL;

有问题?

Alexis Valencia – [email protected]

Tobin Pomeroy –__cf_email__" data-cfemail="">[email protected]

访问我们的网站www.record360.com/business

许可证

有关Record360SDK许可证的更多信息,请参阅LICENSE文件。