V6.0.x.x-V6.1.1.6升级指南

一、迁移指引

1、从V6升级到V6.1

更新本次SDK后如有充足时间的话,建议参照1.1 新增的内容和1.3 变动的内容去进行项目的改动。

二、下载地址

1、文档地址

2、SDK下载地址

三、更新内容

1、新增

1.1、新增 XLinkRestKit 网络请求类

本次更新中更换了网络请求库,并重写了部分接口,封装在 XLinkRestKit中。XLinkHttpRequest 将不再进行维护,但是其中的接口还可以继续使用。

  • XLinkRestKit配置:
    • 如果已启动 XLinkSDK ,即调用了[[XLinkSDK share] start],XLinkRestKit会使用 [XLinkSDK share].config中的http请求服务器地址和企业id等参数。
    • 若还没有启动XLinkSDK ,但是需要使用网络请求库,可以调用[XLinkRestKit setupConfig:config],进行http请求服务器地址和企业id等参数的配置。
  • XLinkRestKit扩展
    如果XLinkRestKit提供的接口没有覆盖到您需要的api,可以自定义XLinkRequest进行扩展。
    XLinkRequest的详细定义如下:
@interface XLinkRequest : NSObject
 
/** 请求的服务器地址,如果使用`useGeneralServer`的话,这个属性设置的值会被忽略 */
@property (nonatomic, copy, nullable) NSString *apiServer;
 
/** 请求的具体路径 */
@property (nonatomic, copy, nullable) NSString *api;
 
/** 请求的参数,如果使用`useGeneralParameters`的话,这个属性设置的值会被忽略 */
@property (nonatomic, strong, nullable) id parameters;
 
/** 请求的参数,如果使用`useGeneralHeaders`的话,这个属性设置的值会被忽略 */
@property (nonatomic, strong, nullable) NSDictionary<NSString *, NSString *> *headers;
 
/** 请求方法 */
@property (nonatomic, assign) XLinkHTTPMethodType httpMethod;
 
/** 请求超时时间 */
@property (nonatomic, assign) NSTimeInterval timeoutInterval;
 
/** 请求的开始时间 */
@property (assign, nonatomic) NSTimeInterval startTime;
 
/** 失败后的重试次数 */
@property (nonatomic, assign) NSUInteger retryCount;
 
/** 请求的唯一标识码 */
@property (copy, nonatomic) NSString *identifier;
 
/** 使用全局的服务器地址 */
@property (nonatomic, assign) BOOL useGeneralServer;
/** 使用全局的请求头 */
@property (nonatomic, assign) BOOL useGeneralHeaders;
/** 使用全局的参数 */
@property (nonatomic, assign) BOOL useGeneralParameters;
/** 使用SDK内部的access-token */
@property (assign, nonatomic) BOOL userGeneralAccessToken;
 
/** 请求成功的回调 */
@property (nonatomic, copy, readonly, nullable) XLinkSuccessBlock successBlock;
/** 请求失败的回调 */
@property (nonatomic, copy, readonly, nullable) XLinkFailureBlock failureBlock;
 
/** 请求完成的回调 */
@property (nonatomic, copy, readonly, nullable) XLinkFinishedBlock finishedBlock;
 
/** 创建默认的request 将会使用全局的服务器地址、全局的请求头、全局的参数 */
+ (instancetype)defaultRequest;
 
/** 创建默认的使用全局AccessTokenrequest 将会使用全局的服务器地址、全局的请求头、全局的参数 */
+ (instancetype)defaultAccessTokenRequest;
 
/** 清除所有的回调 */
- (void)cleanCallbackBlocks;
 
@end

因此,需要扩展HTTP请求的话,需要新建一个XLinkRequest对象,并且编辑好api、header、parameters、httpMethod等参数,然后使用以下方法,进行http的请求。

/** 发送请求 @param request 具体的请求 @param finishedBlock 请求完成的回调 @return 请求任务的标识 */
+ (NSString *)sendRequest:(XLinkRequest *)request
               onFinished:(nullable XLinkRestCompletionHandler)finishedBlock;

注:
如果使用全局的apiSever,直接设置useGeneralServer这个属性为yes。否则需要设置apiServer这个属性为具体的api服务器地址。

以下使用创建home的接口为例子讲解下是怎样具体扩展HTTP请求的。

接口的地址为:Home管理

//编辑XLinkRequest
XLinkRequest *req = [[XLinkRequest alloc] init];
//使用全局的api服务器地址
req.useGeneralServer = YES;
//使用全局的请求头
req.useGeneralHeaders = YES;
//请求超时时间
req.timeoutInterval = 10;
//请求方法
req.httpMethod = XLinkHTTPMethodTypePost;
//请求api
req.api = @"/v2/home";
//请求参数
req.parameters = @{@"name":@"my_home"};
//发送请求
[XLinkRestKit sendRequest:req onFinished:^(id  _Nullable result, NSError * _Nullable err) {
    if (err) {
        NSLog(@"请求失败");
    }else{
        NSLog(@"请求成功");
    }
}];

2、删除

本次更新暂无删除的内容

3、改动

3.1、XDeviceStateObserver的构造函数更新

以下方法已被废弃

+ (instancetype)deviceStateChangedObserverWithDevice:(XDevice *)device
                            withDataPointUpdateBlock:(DeviceStateChangedBlock)block;

可以用以下方法替换

+ (instancetype)deviceStateChangedObserverWithDevice:(XDevice *)device
                             deviceStateChangedBlock:(DeviceStateChangedBlock)block;
没找到需要的文档?
你可以提交工单反馈 或 阅读常见问题