会话数据相关接口

开启新会话

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

  • 相关接口
/**
 * @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"]]; // 遮罩类
© 2007-2024 北京基调网络股份有限公司 all right reserved,powered by Gitbook本文档更新于: 2024-05-28 15:01

results matching ""

    No results matching ""