首页 帮助中心 听云App 高级功能

高级功能

本文档介绍了 TingYun SDK 基于请求数据、用户体验数据、异常数据和其他数据相关接口的使用及说明。

一、请求数据相关接口

1、自定义请求头

TingYun_SDK 支持配置采集「请求头」参数,用以进行「后端调用链追踪」。
1、相关接口
/*
 @key 设置为要采集的请求头中的headerkey值
 */
+(void)setRequestIDHeaderKey:(NSString *)key;
2、代码示例
int main(int argc, char * argv[]) {
 @autoreleasepool {
      //调用位置建议在初始化,其他位置首次不采集
      [NBSAppAgent startWithAppID:@"appkey" location:YES];
      [NBSAppAgent setRequestIDHeaderKey:@"key"]; 
      ...
    }
}

2、设置请求参数加密上传

TingYun_SDK 会采集网络请求中的「请求参数」默认明文传输,若参数中有涉及用户隐私数据,可以调用该接口对「请求参数」及「服务器响应数据」进行加密上传。
1、相关接口
/*
 @need 传入YES,会对采集的网络请求参数,response header、response body加密。
 */
+ (void)encryptionRequired:(BOOL)need;
2、代码示例
int main(int argc, char * argv[]) {
 @autoreleasepool {
    [NBSAppAgent startWithAppID:@"appkey" location:YES];
    //设置加密要在appkey之后
    [NBSAppAgent encryptionRequired:YES];
    ...
    }
}

二、用户体验数据相关接口

1、自定义冷启动耗时

TingYun_SDK 默认计算 SDK 初始化开始至第一个页面加载结束的时间为「冷启动耗时」,研发人员可以根据自身应用需求更改计算「冷启动耗时」的结束点。
1、相关接口
/*
 @enable 传入YES,开启设置自定义启动结束功能
*/
+ (void)customLanuchEnd:(BOOL)enable;
2、代码示例
int main(int argc, char * argv[]) {
 @autoreleasepool {
    //设置开启自定义结束点功能,在启动SDK之前调用。
    [NBSAppAgent customLanuchEnd:YES];
    [NBSAppAgent startWithAppID:@"appkey" location:YES];
    ...
    }
}
该接口需要与「customLanuchEnd」配合使用,当设置「customLanuchEnd」接口为 YES 时,「lanuchFinish」接口设置生效
1、相关接口
/*
 自定义结束时间点,在启动结束时调用。
*/
+ (void)lanuchFinish:(NSString *)lanuchName;
2、代码示例
-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    [NBSAppAgent lanuchFinish:@"firstVC"];
}

2、自定义埋点

由于 TingYun_SDK 默认关注系统类和方法,无法关注「业务代码」的耗时情况,使用「自定义埋点」接口可以补全「页面体验分析」和「操作体验分析」模块中的【分解图】,能够帮助开发者清晰的了解其业务代码的耗时及调用情况。
1、相关接口
注意:「自定义埋点」接口需要成对调用,请勿跨方法、跨进程以及在异步加载和递归调用中使用该接口。
//@String Name为当前方法所在方法名或自定义名称,支持中文、英文、数字、下划线,但不能包含空格或其他的转义字符
beginTracer(@"String Name")
endTracer(@"String Name")
2、代码示例
- (void)doSomething
{
  //用户可以在SDK初始化后的任意方法前后添加自定义Trace
  beginTracer(@"String Name")
  //write you code here
  endTracer(@"String	Name")
}

三、异常数据相关接口

1、设置面包屑

研发人员可以在应用程序的任意位置调用「面包屑」接口进行埋点。当应用程序发生崩溃时,SDK 会按代码的触发顺序收集埋点信息并在崩溃轨迹中高亮显示,以协助研发人员在应用崩溃时了解代码调用逻辑。
1、相关接口
/*
  @breadcrumb:自定义信息,最多包含100个字符,支持中文、英文、数字、下划线
*/
+(void)leaveBreadcrumb:(NSString *)breadcrumb;
2、代码示例
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOption:(NSDictionary *)launchOptions
{
  //设置面包屑
	[NBSAppAgent leaveBreadcrumb:@"didFinishLaunchingWithOptions"]; 
	return YES;
}

2、自定义崩溃附加信息

在应用发生崩溃的时候,研发人员往往需要更多的信息以收集现场环境,可以通过调用「自定义崩溃附加信息」接口上传额外信息,协助分析崩溃问题。
1、相关接口
/*
 此函数可以在任何位置多次调用,最多可添加10条附加信息,每条附加信息最大支持100个字节,随崩溃上传。
 */
+(void)setCustomerData:(NSString*)data forKey:(NSString*)key;
2、代码示例
- (void)doSomething
{
    [NBSAppAgent setCustomerData:@"value" forKey:@"key"];
    ...
}

3、设置崩溃类型采集

TingYun SDK 默认采集所有类型的信号错误,若无需采集某种 signal 类型的信号错误可调用此接口进行忽略,支持忽略单个类型和多个类型。
1、相关接口
/*
 SDK支持采集的信号
 SIGABRT, //6
 SIGBUS,  //10
 SIGFPE,  //8
 SIGILL,  //4
 SIGSEGV, //11
 SIGSYS,  //12
 SIGTRAP, //5
 @ignore  参数支持字符串、NSNumber、NSArray
 */
+ (void)ignoreSomeSignalCrash:(id)ignore;
2、代码示例
int main(int argc, char * argv[]) {
	@autoreleasepool {
    	//初始化之前调用
			[NBSAppAgent ignoreSomeSignalCrash:@"SIGABRT"];
    	[NBSAppAgent startWithAppID:@"appkey" location:YES];
			...
	} 
}

四、其他数据相关接口

1、版本更新提示开关

TingYun_App_SDK 默认会校验当前使用的 SDK 版本是否为最新版本,新版 SDK 上线后,App 运行时会在控制台输出版本更新提示的 Log 日志,如不需要「版本更新提示」调用此接口关闭即可。
1、相关接口
/*
 关闭更新提示log
 @SDKVersion 为最新的SDK版本
 */
+ (void)closeLogForUpdateHint:(NSString *)SDKVersion;
2、代码示例
int main(int argc, char * argv[]) {
 @autoreleasepool {
   	//初始化之前调用
    [NBSAppAgent closeLogForUpdateHint:@"sdkversion"]; 
    [NBSAppAgent startWithAppID:@"appkey" location:YES];
    ...
    }
}

2、自定义版本号

TingYun_SDK 默认使用应用的「CFBundleShortVersionString」作为版本号上传,如需自定义版本号可以在初始化 SDK 时调用该接口进行配置。
1、相关接口
/*
 同时指定启动概率、是否使用位置服务、渠道ID
 @useBuildVersion:YES优先使用CFBundleVersion版本号,NO使用CFBundleShortVersionString,默认为NO。
 */
+(void)startWithAppID:(NSString*)appId location:(BOOL)locationAllowed rateOfLaunch:(double) rate channelId:(NSString *)channelId useBuildVersion:(BOOL)useBuildVersion;
2、代码示例
int main(int argc, char * argv[]) {
 @autoreleasepool {
		[NBSAppAgent startWithAppID:@"appkey" location:YES rateOfLaunch:1.0f channelId:@"App Store" useBuildVersion:YES];
    ...
	}
}