快速开始

一、SDK 使用流程介绍

SDK 的使用流程如下:

  1. SDK 依赖并集成
  2. SDK 初始化
  3. 调用 SDK 进行第三方账号登录
  4. 根据业务需求使用相应的功能

二、SDK 集成

SDK 集成需要完成相关依赖库的集成操作。
iOS 的集成建议使用 Cocoapods 本地库的方式提供。另外有部分公共依赖库需要引用我们提供的远程库。

1、集成环境

环境 要求
支持最低SDK版本 iOS 10.0系统

2、配置依赖库

2.1、配置 Cocoapods 仓库

  1. 添加远程库配置

在项目下的Podfile文件中,添加上依赖库相关的的远程库 pod 源。

# CocoaPods 官方 Specs
source "https://github.com/CocoaPods/Specs.git"
# XLink 容器 Specs
source "https://code.xlink.cn/sdkLib/Specs.git"
  1. 配置依赖文件

在主项目(或需要使用 SDK 的项目)下,在其对应的podfile的文件中,配置以下的依赖库。
其中第三方依赖库可以根据需要调整版本号。

//xlink依赖库
#远程库
pod 'XFServerManagerFramework'
pod 'XFH5ServerFramework'
  1. 添加本地库文件(非必须步骤)

如果使用家居模块的话,还需要进行以下本地库的引用

将提供的LocalPods文件夹下所有内容复制到工程所在目录根目录中;
并配置路径:

$xlink_local_path = "./LocalPods"
#本地库
pod "XLinkHomeKit", :path => "#$xlink_local_path/XLinkHomeKit/XLinkHomeKit.podspec"

2.2、应用权限要求

SDK 使用时需要使用到以下的权限。部分权限是业务场景中具体使用到的,不使用到相应的业务功能可以移除掉相关的权限。

<key>NSCameraUsageDescription</key>
<string>使用您的相机或相册完成应用内图片的拍摄和选择,以及二维码扫描功能。</string>
<key>NSMicrophoneUsageDescription</key>
<string>使用您的麦克风应用可视对讲、语音控制等功能</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>使用您的相机或相册完成应用内图片的拍摄和选择</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>使用您的相机或相册完成应用内图片的拍摄和选择</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>使用您的位置来获取附近的房屋或项目信息,允许系统使用定位,才能使用APP配网功能</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>使用您的位置来获取附近的房屋或项目信息,允许系统使用定位,才能使用APP配网功能</string>
<key>NSLocationUsageDescription</key>
<string>使用您的位置来获取附近的房屋或项目信息,允许系统使用定位,才能使用APP配网功能</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>使用您的位置来获取附近的房屋或项目信息,允许系统使用定位,才能使用APP配网功能</string>
  1. 部分敏感权限说明
权限 使用范围
蓝牙 用于APP配网
定位 用于APP配网以及获取业主附近的房屋
相机 扫描二维码加入家庭

3、SDK 初始化

SDK 集成后需要在使用前初始化。必须确保 SDK 初始化后才能正常使用。初始化 SDK 的部分配置以配置文件的方式提供,需要加载配置文件进行初始化。

建议在application:didFinishLaunchingWithOptions:方法里进行初始化

  1. 将提供的配置文件(默认文件名为xlink_config.xf)拖入到工程的文件夹中,并且不能修改配置文件名称和里面的内容。

注意不能修改配件文件名称。

  1. 配置并初始化 SDK
//默认的配置初始化,必须使用这个初始化
[XFUnionKit autoInit];

通过以上的操作,初始化操作就完成了。请留意日志中是否有相关的错误信息输出,有的话请参考错误信息说明处理或进行反馈。

4、SDK 使用

SDK 的核心为服务,通过提供各种服务来解决业务需求或功能的使用。

tips:服务的介绍说明请参考APP集成说明

三、服务调用

SDK 初始化成功后,即可调用相关的服务,服务调用时统一从 XFServerManager 中获取服务并使用。

1、显式调用

服务支持显式调用,显式调用时表示调用者明确知道自己使用的服务类型,并且必须依赖具体的服务类型。一般的显式调用如下:


// 明确知道服务是 XFAuthServer 类型,并直接调用其中的方法,同时也必须在编译时依赖该服务
XFAuthServer *authServer = [[XFServerManager shareInstance] getServer:@"XFAuthServer"];

// 明确知道服务是有该方法
[authServer authThirdPartWithOpenId:openId accessToken:accessToken nickName:nickName resource:resource callback:^(NSDictionary * _Nullable result, NSError * _Nullable error) {
    if (error) {
        //登录失败
    } else {
        //登录成功后的 xlink 用户 token 信息
        NSDictionary *userInfo = result;
    }
}];

其中 getServer 的操作会确保服务在使用前初始化,该操作是异步的。

2、隐式调用

服务也支持隐式调用,隐式调用时,调用者可以不明确知道自己使用的服务类型,或服务操作,但是必须明确服务调用需要的参数及返回信息。一般的隐式调用如下:


[XFServerManager createInvokeBuilder:^(XFServerInovkeBuilder * _Nonnull builder) {
    //指定调用的服务ID
    builder.serverId = @"A";
    //指定调用的服务路由
    builder.routerPath = @"B";
    //配置服务使用的参数,这里参数的类型和数值需要和服务提供者确认。
    builder.param = @"context"
} invokeServerWithCallback:^(NSDictionary * _Nullable result, NSError * _Nullable error) {
    //调用服务返回的数据。
}];
  1. 隐式调用的前提是调用者与被调用者是通过约定的方法进行调用的,如果双方没有约定好或者是不清楚时,可能导致入参错误或出参类型错误,则无法正确完成调用。
    在以上示例中,表示:通过调用服务ID为“A”的服务,并使用路由地址为“B”的功能,提供服务需要的参数“context”,调用服务得到返回类型为“NSDictionary”类型的数据。
  2. 隐式调用是需要服务本身支持的,如果服务没有实现路由功能的支持与处理,进行隐式调用是肯定会失败的
  3. 隐式调用时,返回的参数类型默认是支持可空类型的,在实现时需要留意一下。

四、更新说明

日期 版本 更新内容
2021-12-29 v1.1 更新文档信息
2021-10-15 v1.0 集成文档
没找到需要的文档?
你可以提交工单反馈 或 阅读常见问题