其他
获取用户标识
通过添加「用户标识」可在基调听云报表平台通过该标识检索到具体用户的性能问题。
- 相关接口
/**
* 设置用户标识符,不能超过256个字符,可以在任意位置多次调用(值覆盖)
* @userId:唯一标识一个用户的信息
*/
+ (void)setUserIdentifier:(NSString *)userId;
- 代码示例
- (void)viewDidLoad
{
[super viewDidLoad];
// 用户标识可为邮箱、手机号等能够标识用户身份的信息,如xxx@tingyun.com
[NBSAppAgent setUserIdentifier:@"userId"];
}
首次启动开启模块功能开关
出于兼容性考虑,首次启动 SDK 仅在调试模式下开启全部功能模块,非调试模式下仅开启崩溃模块,可通过以下接口开启 SDK 的模块开关 模块功能开关接口。
- 相关接口
/**
* SDK首次初始化由于尚未与听云平台交互,默认模块开关仅开启「崩溃模块」,可以通过开启「网络模块」和「用户体验模块」来采集应用首次启动数据。
* @warning:调用该接口设置启动选项,SDK首次启动不受听云平台开关控制
*/
+ (void)setStartOption:(NBSOPTION)option;
- 代码示例
// 在SDK初始化之前调用,首次启动开启网络、crash采集功能、用户体验分析。
[NBSAppAgent setStartOption:NBSOption_Net|NBSOption_UI|NBSOption_Crash];
[NBSAppAgent startWithAppID:@"Your_appkey"];
自定义App版本号
SDK 默认使用应用的「CFBundleShortVersionString」作为版本号上传,如需自定义版本号可以在初始化 SDK 之前调用该接口进行配置。
- 相关接口
/**
* @brief 设置自定义App版本号,最多包含64个字符,支持中文、英文、数字、下划 线
*/
+ (void)setVersionName:(NSString *)versionName;
- 代码示例
int main(int argc, char * argv[]) {
@autoreleasepool {
[NBSAppAgent setVersionName:@"1.0.0"];
[NBSAppAgent startWithAppID:@"appkey" location:YES];
...
}
}
获取基调听云设备 ID
应用首次启动时,基调听云服务器会下发 deviceId 用以标识设备。用户可以通过接口获取基调听云的 deviceId 值。
- 相关接口
/**
* @return 返回基调听云平台生成的设备id,该id为服务端返回,首次获取可能为空
*/
+ (NSString *)getTingyunDeviceId;
- 代码示例
- (void)getTyDeviceId
{
NSString *tyDid = [NBSAppAgent getTingyunDeviceId];
...
}
设置地理位置信息
可通过调用接口设置经纬度以便精准获取设备地理位置信息。
- 相关接口
/**
* @brief 设置经纬度。
*/
+ (void)setLatitude:(double)latitude longitude:(double)longitude;
- 代码示例
- (void)doSomething
{
...
[NBSAppAgent setLatitude:latitude longitude:longitude];
...
}
合规配置
鉴于「隐私安全」要求第三方 SDK 需要在用户同意【隐私权限】后进行初始化,您可以通过「合规配置」接口来控制 SDK 的数据传输行为。仅首次安装启动生效。
- 相关接口
/**
* @brief 通知SDK,用户是否同意了隐私协议。应保证每次启动该接口至少调用一次
* @param agreement YES 说明用户同意了隐私协议
* @discussion
该接口需配合「+startWithAppID:launchImmediately:」使用;应用安装后第一次启动,当launchImmediately:设置为NO,在agreement设置为YES之前SDK只采集数据,不发起上传数据请求;在agreement设置为YES后SDK会发起上传数据请求并上传agreement设置为YES之前采集的数据
* @warning 清除沙盒Library/Cache/NBSCache目录的数据会导致该功能异常,请慎重
*/
+ (void)setUserPrivacyAgreement:(BOOL)agreement;
- 代码示例
int main(int argc, char * argv[]) {
NSString * appDelegateClassName;
@autoreleasepool {
[NBSAppAgent startWithAppID:@"APPKey" launchImmediately:NO];
appDelegateClassName = NSStringFromClass([AppDelegate class]);
}
return UIApplicationMain(argc, argv, nil, appDelegateClassName);
}
- (void)getConsumerAgreement
{
...
if(agreement)
{
[NBSAppAgent setUserPrivacyAgreement:YES];
}
...
}