会话数据相关接口
开启新会话
调用接口后可以开启一个新的会话。
- 相关接口
/**
* @brief 开始一个新会话,并结束老会话,默认在SDK初始化方法+startWithAppID:中已调用
* @note 只能在SDK初始化后调用,一般不建议调用除非想自定义一个会话的开始点与结束点
*/
+ (void)startNextSession;
- 代码示例
[NBSAppAgent startNextSession];
获取会话 id
调用接口后获取到当前会话 Id。
- 相关接口
/**
* @brief 获取当前sessionId
*/
+ (NSString *)getSessionId;
- 代码示例
NSString *sessionId = [NBSAppAgent getSessionId];
设置会话闲置时间
会话默认闲置时长 600 秒,当 App 闲置时长超过该阈值后,SDK 会开启新会话;可根据需要调整闲置时长,建议在 SDK 初始化前设置。
- 相关接口
/**
* @brief 设置会话闲置时长,默认600秒(10分钟),即10分钟无任何操作当前会话自动结束,当设置为0时表示不进行空闲时间判断,即会话只有在程序退出或者调用startNextSession才会结束,应在SDK初始化之前调用,只有首次设置生效单位:s
* @param idleTime 最低可设置60秒
*/
+ (void)setSessionIdleTime:(NSUInteger)idleTime;
- 代码示例
[NBSAppAgent setSessionIdleTime:700];
自定义事件
自定义事件可以统计 App 中的任意事件,开发者在 SDK 初始化后的任意位置调用「自定义事件接口并设置对应上传参数」。如:真实用户操作时点击某个功能按钮或触发了某个功能事件等。
- 相关接口
/**
* @brief 采集自定义事件
* @param name 事件名称,不能为空,长度限制为1024字符,超过截取前1024字符
* @param properties 事件属性
*/
+ (void)reportEvent:(NSString *)name properties:(NSDictionary *)properties;
- 代码示例
[NBSAppAgent reportEvent:@"login" properties:@{@"account":@"xxx"}];
屏幕录制
可通过调用接口来控制屏幕录制开启、暂停、恢复。
- 相关接口
/**
* 开启视频录制
*/
+ (void)startVideoReplay;
/**
* 暂停,只有当前状态为recording有效
*/
+ (void)pauseVideoReplay;
/**
* 恢复,只有当前状态为pause有效
*/
+ (void)resumeVideoReplay;
- 代码示例
以下示例为进入首页开启视频录制,在提交订单时暂停视频录制,离开订单页面时恢复视频录制。
// 进入首页
- (void)initHomeViews
{
...
[NBSAppAgent startVideoReplay];
}
// 提交订单
- (void)submitOrders
{
...
[NBSAppAgent pauseVideoReplay];
}
// 离开订单页
- (void)dismissOrderPage
{
...
[NBSAppAgent resumeVideoReplay];
}
敏感信息遮罩
可以通过调用敏感信息遮罩接口从更细粒度「accessibilityIdentifier、页面、类名、区域」来遮盖敏感信息。
- 相关接口
/**
* @brief 遮盖敏感信息。
* @param view 需要遮盖的视图。
*/
+(void)maskSensitiveView:(UIView *)view;
/**
* @brief 取消遮盖敏感信息。
* @param view 取消遮盖的视图。
*/
+(void)unmaskSensitiveView:(UIView *)view;
/**
* @brief 遮盖敏感信息。
* @param region 相对于主window的坐标。
*/
+(void)maskSensitiveRegion:(CGRect)region;
/**
* @brief 取消遮盖敏感信息。
* @param region 相对于主window的坐标。
*/
+(void)unmaskSensitiveRegion:(CGRect)region;
/**
* @brief 遮盖敏感信息。
* @param viewId 需要遮盖的视图的accessibilityIdentifier,需要提前设置才有效。
*/
+ (void)maskViewId:(NSString*)viewId;
/**
* @brief 遮盖敏感信息。
* @param screens 需要遮盖的页面的数组,元素是viewController的类名
*/
+ (void)maskScreens:(NSArray <NSString *>*)screens;
/**
* @brief 遮盖敏感信息。
* @param classes 需要遮盖的数组,元素是viewController或view的类名
*/
+ (void)maskClasses:(NSArray <NSString *>*)classes;
- 代码示例
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[NBSAppAgent maskViewId:btn.accessibilityIdentifier]; // 遮罩对应viewId
[NBSAppAgent maskSensitiveView:btn]; // 对btn进行遮罩
CGRect rect = CGRectMake(100, 100, 200, 200);
[NBSAppAgent maskSensitiveRegion:rect]; // 对rect区域进行遮罩
[NBSAppAgent unmaskSensitiveView:btn]; // 对btn取消遮罩
[NBSAppAgent unmaskSensitiveRegion:rect]; // 对rect区域取消遮罩
[NBSAppAgent maskScreens:@[@"WebviewController",@"ViewController"]]; // 遮罩页面
[NBSAppAgent maskClasses:@[@"SensitiveView"]]; // 遮罩类