KuickDealSDK接入指南(iOS)
目录
一、 获取AppKey和AppSecret
二、SDK集成
三、功能集成
四、常见错误
五、附录
正文
一 、获取AppKey和AppSecret
登陆KuickDeal远程销售后台,创建一个项目,打开项目成员页面,如下图:
上边红色箭头指向的即为appKey。
通过: https://deal-admin.kuick.cn/app/{appKey}/settings 页面,获取appSecret:
二 、SDK集成
2.1 导入SDK
方法1. 文件导入
a. 从官网下载SDK文件 点击此处下载SDK
b. 将KuickDealSDK.framework
文件导入工程中.
c. 在Build Phases >Link Binary With Libraries
中添加framwork.
d. 在Build Phases > Embed Framework
中 添加framwork.
SDK文件说明:从官网下载下来的包中包含了三个文件分别是:
Release-iphoneos(真机),
Release-iphonesimulator(模拟器),
Release-iphoneos&iphonesimulator(真机和模拟器),
如图:
有需要的话可以通过终端的lipo命令来手动合并:
lipo -create {a_framework_path} {b_frameworkpath} -output {new_framework}
方法2. 执行pod安装
---暂不支持pod!!!---
2.2 添加初始化参数
在 AppDelegate 中引入#import "KuickDealSDK.h"
,然后添加初始化代码
如:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//启动Kuick
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
[parameters setObject:@"76be292b-a733-4ff4-981e-58e3eb88e6b1" forKey:@"appKey"];
[parameters setObject:@"78bet92b-a453-4564-981e-58e3eb45e6b1" forKey:@"appSecret"];
[parameters setObject:@"微信unionid" forKey:@"unionid"]; //可选
[parameters setObject:@"第三方用户userid" forKey:@"appUserId"];//可选
[[KDSKuickDeal shareClient] init: parameters];
....
return YES;
}
初始化参数说明:
参数 | 必填 | 说明 |
---|---|---|
appKey | 是 | 应用Key, 从Deal管理后台获取 |
appSecret | 是 | app秘钥 |
unionid | 否 | 微信unionid |
appUserId | 否 | 应用中用户ID,由第三方应用提供,用来唯一标识一个用户。 |
实现KuickDealClientDelegate
协议
如:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
[KDSKuickDeal shareClient].delegate = self;
...
return YES;
}
- (void)kuickDealClient:(KDSKuickDeal *)client didComplete:(NSError *) error{
if (!error) {
NSLog(@"初始化成功!");
}
}
三、 功能集成
3.1 用户实名登录
在用户登录成功后,或者能够获取到用户信息后调用,要保证SDK已经初始化成功
如:
KDSNamedConfig *config = [KDSNamedConfig new];//扩展对象
config.utmSource = utmSource; // utm来源.可选
config.utmTerm = utmTerm; // utm媒介.可选
config.utmMedium = utmMedium; // utm媒介.可选
config.utmCampaign = utmCampaign; // utm活动.可选
config.utmContent = utmContent; // utm内容.可选
[[KDSKuickDeal shareClient] userNamedWithAppUserId:@"appUserId"
andUnionId:@"unionId"
name:@"姓名"
phone:@"手机"
company:@"公司"
email:@"邮箱"
title:@"职位"
photoURL:@"头像URL"
createWay:KDCustomerCreatWayRegister
config:config
succeed:^ {
[self showAlert:@"实名化成功"];
} failure:^(NSError *error) {
[self showAlert:@"实名化失败"];
}];
实名化登录参数说明:
参数 | 必填 | 说明 |
---|---|---|
appUserId | 是 | 应用用户id |
andUnionId | 否 | 微信 unionId |
name | 是 | 用户名 |
phone | 否 | 电话 |
company | 否 | 公司 |
否 | 邮箱 | |
title | 否 | 职位 |
photoURL | 否 | 用户头像 |
createWay | 是 | 创建方式:KDCustomerCreatWayLogin->登录;KDCustomerCreatWayRegister->注册 |
config | 否 | 扩展配置 |
3.2 用户注销登录
在用户登出或者注销时调用
如:
[[KDSKuickDeal shareClient] destruction]
3.3 手动添加事件
播放音视频
开始播放
//接受返回的事件ID,用于创建停止播放事件
__playID = [[KDSKuickDeal shareClient] actionInVeiw:self.view
actionType:KuickDealActionTypePlayMedia
description:@"播放视频"];
结束播放
//使用一个 播放事件的 ID 创建结束播放时间
[[KDSKuickDeal shareClient] endActionWithID:__playID];
__playID = nil;
注意:开始播放和结束播放必须是成对出现!!!
提交表单
[[KDSKuickDeal shareClient] actionInVeiw:self.view
acitonTyep:KuickDealAcitonTypeSubmit
description:@"提交表单"];
下载文件
[[KDSKuickDeal shareClient] actionInVeiw:self.view
acitonTyep:KuickDealAcitonTypeDownloadFile
description:@"下载文件"];
3.4 提高数据准确度
尽量为每个页面添加Title
如:
- (void)viewWillAppear:(BOOL)animated {
...
self.navigationItem.title = @"设置昵称";
...
}
如果这个viewController有复用,做多个不同功能的页面使用,请在viewWillAppear:
方法中变更title的值,
如:
- (void)viewWillAppear:(BOOL)animated{
...
if(type == KKViewTypeSetName){
self.navigationItem.title = @"设置昵称";
}else{
self.navigationItem.title = @"设置邮箱";
}
...
}
给每个viewController 添加唯一ID(默认取这个viewController的类名做唯一标识)
如果这个viewController做多个不同功能的页面复用,请为该页面添加属性kuickBehaviorViewIdentity,并在视图显示前为其赋值;
添加kuickBehaviorViewIdentity,如:
@interface KKTestVC()
...
@property (nonatomic,copy)NSString * kuickBehaviorViewIdentity
...
@end
在视图显示前给kuickBehaviorViewIdentity赋值,如:
@implementation KKTestVC
- (void)viewWillAppear:(BOOL)animated{
...
self.kuickBehaviorViewIdentity = @"KKSomeIdentity";
...
}
四 、常见错误
提示'KuickDealSDK.h' file not found
或相关头文件找不到.
解决方法1:
尝试以<KuickDealSDK/KuickDealSDK.h>
的方式导入.
解决方法2:
在Build Setting > Heather Search Paths
中添加framwork头文件目录.
如:
$(PROJECT_DIR)/{中间目录}/KuickDealSDK.framework/Headers
提示Reason: image not found
请在Build Phases > Embed Framework
添加KuickDealSDK.framwork
五 、附录
事项 | 方式/注意 |
---|---|
联系人 | support@Kuick.cn |
邮件主题 | KuickDeal iOS-SDK反馈 |
邮件内容说明 | 用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏图片,KuickDeal团队会尽快处理你的反馈。 |