用户足迹定制

更新时间:2015/12/16 访问次数:7444

功能综述

OpenIM提供了用户足迹的功能,用来记录用户操作的轨迹,您可以在千牛端查看轨迹信息,更多详情请移步这里

用户足迹需要使用YWExtensionForCustomerServiceFMWK.framework,在您的百川控制台SDK下载页面获取,您可以通过YWExtensionServiceFromProtocol(IYWExtensionForCustomerService)这个宏来获得全局的IYWExtensionForCustomerService的服务对象

YWIMKit层接入

浏览轨迹

如果您需要记录一个UIViewController的轨迹,您需要包含头文件UIViewController+YWCustomerServiceSupport.h,只需要设置属性:

/// ViewController的显示名,需要在初始化时设置,若不设置,则这个页面不会计入轨迹
@property (nonatomic, copy) NSString *ywcsTrackTitle;

就会自动记录页面轨迹。另外,如果您需要在客服端展示一个web页面,可以设置

/// 开发者自定义的url,可以显示在客服界面,如果需要尽早设置,最好在初始化时设置
@property (nonatomic, copy) NSString *ywcsUrl;

Demo中示例代码

#import <YWExtensionForCustomerServiceFMWK/YWExtensionForCustomerServiceFMWK.h>

YWConversationListViewController *conversationListController = [[SPKitExample sharedInstance] exampleMakeConversationListControllerWithSelectItemBlock:^(YWConversation *aConversation) {
	。。。。
}];
conversationListController.ywcsDisplayName = @"会话列表";


页面访问顺序轨迹将在viewWillAppear:中记录,页面停留时间轨迹将在viewWillDisappear:中或应用切到后台时记录,所以您需要在这两个方法中调用super中对应的方法

需要说明的是,在设置了ywcsDisplayName的情况下,页面停留时间轨迹在每次viewWillDisappear:和应用切到后台时都会记录,但同一个UIViewController对象(而不是同一个UIViewController类型的不同对象)连续的页面访问顺序轨迹只会记录一次,这种场景可能是应用从后台切到前台或者两次viewWillAppear:之间是其他您不需要记录的页面。

自定义足迹信息

方法定义在头文件IYWExtensionForCustomerService.h中:

/* 
 * 自定义足迹信息,参考http://baichuan.taobao.com/doc2/detail?spm=0.0.0.0.aEXBLc&treeId=41&articleId=103769&docType=1#s1
 * @param uiParam,KV字符串,千牛插件会展现此类KV集合
 * @param extraParam, 开发者可以使用自定义param字段,OpenIM不做数据的展现,只是打通数据从C端传递到B端获取的通道,开发者可以使用该字段完成业务参数的传递
 * @param completionBlock, 回调
 */
- (void)updateExtraInfoWithExtraUI:(NSString *)uiParam andExtraParam:(NSString *)extraParam withCompletionBlock:(YWCSUpdateCompletionBlock)completionBlock;

Demo中示例代码,登录成功之后调用:

[YWExtensionServiceFromProtocol(IYWExtensionForCustomerService) updateExtraInfoWithExtraUI:@"{\"Key1\":\"Value1\"}" andExtraParam:@"透传内容" withCompletionBlock:nil];

宝贝焦点消息

方法定义在YWConversationViewController中:

/*
 * C端用户当前正在浏览的宝贝id,OpenIM完成数据从C端传递到B端展现的打通,开发者可以通过宝贝id展现宝贝详细信息
 * @param itemId, 宝贝Id
 */
- (void)sendTradeItemMessage:(NSString *)itemId;

交易焦点消息

方法定义在YWConversationViewController中:

/*
 * C端用户交易焦点信息,OpenIM完成数据从C端传递到B端展现的打通,开发者可以通过宝贝id展现宝贝详细信息,具体参考http://baichuan.taobao.com/doc2/detail?spm=0.0.0.0.aEXBLc&treeId=41&articleId=103769&docType=1#s1
 * @param tradeId, 交易Id
 */
- (void)sendTradeInfoMessage:(NSString *)tradeId;

与登录的关系

上面的接口一般情况下需要登录百川OpenIM成功后才能使用,如果您不需要登录百川OpenIM也想记录前三种轨迹,您可以在SDK初始化后调用IYWExtensionForCustomerService.h中的:

- (void)setYWCSPerson:(YWPerson *)person;

方法来设置轨迹相关的person,比如下面这样。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// YWSDK快速接入接口,程序启动后调用这个接口
[[SPKitExample sharedInstance] callThisInDidFinishLaunching];
    
YWPerson *person = [[YWPerson alloc] initWithPersonId:@"testpro55"];
// 所有的轨迹都需要指定一个person对象,如果不指定,将会使用YWSDKTypeFree类型的YWIMCore登录成功之后获取的person对象
[YWExtensionServiceFromProtocol(IYWExtensionForCustomerService) setYWCSPerson:person];
}

如果调用了这个接口,将以这个接口的设置为准。

YWIMCore层接入

如果您接入的是底层的WXOpenIMSDK,前三种轨迹接入方法与[YWIMKit层接入]相同,对于宝贝焦点消息,可以直接调用WXOpenIMSDK中的接口发送:

YWMessageBodyP2PInfos *messageBody = [[YWMessageBodyP2PInfos alloc] initWithItemId:itemId];
    
[self.conversation asyncSendMessageBody:messageBody progress:nil completion:nil];

对于交易焦点消息

YWMessageBodyP2PInfos *messageBody = [[YWMessageBodyP2PInfos alloc] initWithTradeId:tradeId];
    
[self.conversation asyncSendMessageBody:messageBody progress:nil completion:nil];

FAQ

关于此文档暂时还没有FAQ
返回
顶部