开发手册iOS SDKiOS SDK集成
⚠️

通过SDK集成的方式可以快速接入Turbolink iOS SDK的功能,如果你想要更手动的方式接入,可以选择API的接入方式

SDK最小支持版本:iOS 12+

项目配置

为了顺利使用SDK,你需要在你的App项目中进行下述配置:

获取应用配置

添加info.plist配置

注:如果不想使用info.plist配置,可以直接在后面的步骤中使用代码配置

info.plist
  <?xml version="1.0" encoding="UTF-8"?>
  <plist version="1.0">
  <dict>
    <key>Turbolink Key</key>
    <dict>
    <key>App Key</key>
    <string>你的项目AppKey</string>
    <key>App Secret</key>
    <string>你的项目AppSecret</string>
    <key>Project</key>
    <string>你的项目ProjectId</string>
    </dict>
  </dict>
  </plist>

SDK安装

可以从以下的方式中选择一种合适的方式来安装SDK到你的APP。

Swift Package Manager
  1. 在APP项目中的Package Dependencies中点击”+“添加Swift Package。
  2. 输入以下的Package URL,点击添加。
https://github.com/Branchcn/TurboLinkFramework
CocoaPods
  1. 在APP项目中的打开podfile,如果还没有,请使用pod init创建。
  2. podfile文件中TurboLinkSDK依赖。
target 'APP_NAME' do
  use_frameworks!
  pod 'TurboLinkSDK', '~>1.0' #默认使用静态库
  # pod 'TurboLinkSDK/Dynamic', '~>1.0' 使用动态库
end
  1. 执行命令pod install && pod update完成依赖加载。

使用流程图

以AppDelegate为例,使用流程如下: usePool

快速使用

请根据你的项目使用的UI场景选择对应的使用方式,按照以下方式接入SDK后,默认将会在App使用的时候自动上报安装和打开事件。(如果你希望app启动后到首页再进行初始化及上报操作,你可以使用延迟初始化的方式)

若使用Objective-C,请使用桥接模式。

注:请在网络授权之后初始化TurboLink,否则有可能因为没有网络授权而埋点上报失败

SceneDelegate.m
#import "SceneDelegate.h"
#import "TurboLinkSDK/TurboLinkSDK-Swift.h"
 
@interface SceneDelegate ()
 
@end
 
@implementation SceneDelegate
 
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
    // 如果用户已登录,开启应用时设置当前登录用户id
    [User setIdentityWithUserId:@""];
    [[TurboLink initSessionWithOptions:connectionOptions] start];
}
 
- (void)scene:(UIScene *)scene continueUserActivity:(NSUserActivity *)userActivity {
  // 如果用户已登录,开启应用时设置当前登录用户id
  [User setIdentityWithUserId:@""];
  [TurboLink sceneWithContinue:userActivity];
}
 
- (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts{
    // 如果用户已登录,开启应用时设置当前登录用户id
    [User setIdentityWithUserId:@""];
    [TurboLink sceneWithOpenURLContexts:URLContexts];
}
 
@end

使用代码配置项目参数

除了使用Info.plist配置项目参数外,你也可以使用代码进行配置。注:如果两者皆配置了参数,代码优先级更高

[Project setConfigWithProjectId:@"" appKey:@"" appSecret:@""];

延迟初始化的方式

如果你担心初始化放在application中会造成性能影响,可以使用延迟初始化的方式,把真正的初始化放到进入app之后(如进入首页)。

注:如果进入app有启动页/广告页,亦可以使用该方法规避活动页覆盖广告页显示问题。

#import "SceneDelegate.h"
#import "TurboLinkSDK/TurboLinkSDK-Swift.h"
 
//SceneDelegate.m
@implementation SceneDelegate
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
     [[TurboLink initSessionWithOptions:connectionOptions] delay];
}
 
//Home.m
- (void)viewDidLoad {
  [super viewDidLoad];
   //配置Turbolink相关数据...
  [TurboLink delayStart];
}

⚠️

进阶用法

通常为了更好的实现你的业务场景你可能会用到下面的用法:

调试日志

// 开启调试日志
[DebugOptions enableLog];

粘贴板

// 开启粘贴板配置
[PasteboardOptions enablePasteboard];
// 当检测到地址或者口令时获取弹窗授权 不设置时默认地址和口令都使用
[PasteboardOptions filterWithUri:YES code:YES];
// 设置需要弹窗授权的时机 install:安装完第一次打开时 open:每一次打开app时 redirect:通过链接跳转进入app时 reopen:切换app进入时 不设置时默认均不开启
[PasteboardOptions sceneWithInstall:YES open:YES redirect:YES reopen:YES];

用户管理

// 设置当前登录用户id
[User setIdentityWithUserId:@""];
// 当用户存在等级体系时添加用户等级信息
[User setUserWithUserId:@"" nickName:@"" avatar:@"" inviteCode:@"" tags:@[]];
if TurboLink.isUrlBelongTurboLink(url: "https://xxx") {
      
}