跳到主要内容

会话

开启新会话

调用接口后可以开启一个新的会话。

  • 相关接口
/**
* @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"]]; // 遮罩类