产品动态
-ObjC参数。js_sdk.js 文件导入到工程根目录;QAPMResourceFile.bundle 文件导入到工程根目录。pod 'QAPM',:source => 'https://github.com/TencentCloud/QAPM-iOS-CocoaPods.git'
#import <QAPM/QAPM.h>,如果是 Swift 工程,请在对应bridging-header.h中导入。application:didFinishLaunchingWithOptions 方法中初始化:voidloggerFunc(QAPMLoggerLevellevel,const char*log){#ifdefRELEASEif(level<=QAPMLogLevel_Event){///外发版本logNSLog(@"%@",[NSStringstringWithUTF8String:log]);}#endif#ifdefGRAYif(level<=QAPMLogLevel_Info){///灰度和外发版本logNSLog(@"%@",[NSStringstringWithUTF8String:log]);}#endif#ifdefDEBUGif(level<=QAPMLogLevel_Debug){///内部版本、灰度和外发版本logNSLog(@"%@",[NSStringstringWithUTF8String:log]);}#endif}-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions{//为响应工信部工业和信息化部关于进一步提升移动互联网应用服务能力的通知要求,提供该设置用于告知SDK是否可以进行可选个人信息的采集,默认可以采集。设置为NO则不采集。该设置需要最先配置,一旦设置则全局生效//可选个人信息包括但不限于以下信息:设备制造商、系统、运营商等等//该设置默认设置是YES,代表允许可采集,示例代码如下:[QAPMConfig getInstance].collectOptionalFields = YES;// 特别说明: 若上述该设置置为NO,部分信息将不再获取,可能会影响到前端的搜索、展示等,请知悉。/// 设置QAPM 日志输出NSLog(@"qapm sdk version : %@", [QAPM sdkVersion]);[QAPM registerLogCallback:loggerFunc];//上报地址//国内站:https://app.rumt-zh.com //国际站:https://app.rumt-sg.com [QAPMConfig getInstance].host = @"https://app.rumt-zh.com";[QAPMConfig getInstance].host = @"https://app.rumt-sg.com";[QAPMConfig getInstance].customerAppVersion = @"设置app自定义版本号";//根据实际情况设置userid 和deviceID//设备唯一标识deviceID,例如IDFV配合Keychain使用[QAPMConfig getInstance].userId = @"设置userId";[QAPMConfig getInstance].deviceID = @"自定义deviceId";/// 启动QAPM[QAPM startWithAppKey:@"产品唯一的appKey"];return YES;}
QAPMModelStableConfig.h文件中的接口:- (void)setupModelAll; //此接口可开启全部监控功能。QAPMModelStableConfig.h文件中接口:- (void)setupModelStable;//此接口可开启除了网络监控和用户行为监控之外的所有监控功能,网络监控与用户行为监控按照工信部26号文要求划分为扩展业务功能,您可根据自身需要选择是否开启。QAPMConfig.h文件中的enableMonitorTypeOptions接口,设置组合的枚举值,添加多个参数枚举值完成一系列功能的开启,代码如下:// 设置QAPM 开启的监控:[QAPMConfiggetInstance].enableMonitorTypeOptions=QAPMMonitorTypeBlue|QAPMMonitorTypeCrash|QAPMMonitorTypeHTTPMonitor|QAPMMonitorTypeIUPMonitor|QAPMMonitorTypeLaunch|QAPMMonitorTypeJSError|QAPMMonitorTypeWebViewNetWork|QAPMMonitorTypeWebViewIUPMonitor|QAPMMonitorTypeWebMonitor;
QAPMConfig.h类中@property (nonatomic, assign) QAPMMonitorType enableMonitorTypeOptions;///检测卡顿功能QAPMMonitorTypeBlue/// Crash监控功能QAPMMonitorTypeCrash///原生网络监控QAPMMonitorTypeHTTPMonitor///原生用户行为监控QAPMMonitorTypeIUPMonitor/// 启动个例监控功能QAPMMonitorTypeLaunch/// webview的JS异常监控QAPMMonitorTypeJSError///webview的网络QAPMMonitorTypeWebViewNetWork///webview 用户行为监控QAPMMonitorTypeWebViewIUPMonitor/// webview页面性能监控QAPMMonitorTypeWebMonitor
QAPMMonitorTypeBlue 。 QAPMMonitorTypeHTTPMonitor、QAPMMonitorTypeWebViewNetWork两个参数,以关闭网络监控功能;以此类推,您可以在自定义性能模块开启配置中避免填入QAPMMonitorTypeIUPMonitor、QAPMMonitorTypeWebViewIUPMonitor两个参数,以关闭用户行为监控功能,或直接使用 ModelStable 功能开启模式以在确保关闭所有扩展业务功能的情况下自动开启其他推荐功能。#pragmamark-TableViewDelegate-(void)scrollViewWillBeginDragging:(UIScrollView*)scrollView{[QAPMBlueProfilebeginTrackingWithStage:NSStringFromClass([selfclass])];}-(void)scrollViewDidEndDragging:(UIScrollView*)scrollView willDecelerate:(BOOL)decelerate{if(!decelerate){[QAPMBlueProfilestopTrackingWithStage:NSStringFromClass([selfclass])];}}-(void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView{[QAPMBlueProfilestopTrackingWithStage:NSStringFromClass([selfclass])];}
@interfaceQAPMLaunchProfile:NSObject/**设置自定义打点区间开始,该区间需要在启动时间区间内。begin与end的scene需要一致。@param scene 场景名*/-(void)setBeginTimestampForScene:(NSString*)scene;/**设置自定义打点区间结束,该区间需要在启动时间区间内。begin与end的scene需要一致。@param scene 场景名*/-(void)setEndTimestampForScene:(NSString*)scene;@end
#import <QAPM/QAPMLaunchProfile.h> 。intmain(int argc,char*argv[]){@autoreleasepool{[QAPMLaunchProfiledidEnterMain];returnUIApplicationMain(argc,argv,nil,NSStringFromClass([AppDelegateclass]));}}
#import<TMFQWebView/QBWKWebView.h>@interfaceWKWebviewViewController()<WKUIDelegate,WKNavigationDelegate,WKScriptMessageHandler,TMFWebOfflineWebViewControllerProtocol>{TMFWkWebView*wkWebView;}
#import <QAPM/QAPMLaunchProfile.h> 导入 SDK 头文件。 -(void)webView:(WKWebView*)webView didFinishNavigation:(WKNavigation*)navigation{[webView evaluateJavaScript:[QAPMWebViewProfileqapmBaseInfo:@" "]completionHandler:nil];[webView evaluateJavaScript:[QAPMWebViewProfileqapmJsStart]completionHandler:nil];}
// 当用户授权后,方可正常初始化QAPMif(isAgree){}//启动耗时函数的第一个打点// 需要传入设备的唯一标识,如IDFV配合Keychain使用[QAPMConfiggetInstance].deviceID=@"自定义deviceId";//用户user ID、第三方登录账号,此接口可以多次在代码位置使用[QAPMConfiggetInstance].userId=@"设置userId";



[QAPM startWithAppKey:]启动 QAPM SDK 前,设置日志输出函数, 可以根据不同发布版本情况进行输出日志控制:voidloggerFunc(QAPMLoggerLevellevel,const char*log){#ifdefRELEASEif(level<=QAPMLogLevel_Event){///外发版本logNSLog(@"%@",[NSStringstringWithUTF8String:log]);}#endif#ifdefGRAYif(level<=QAPMLogLevel_Info){///灰度和外发版本logNSLog(@"%@",[NSStringstringWithUTF8String:log]);}#endif#ifdefDEBUGif(level<=QAPMLogLevel_Debug){///内部版本、灰度和外发版本logNSLog(@"%@",[NSStringstringWithUTF8String:log]);}#endif}-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions{/// 设置QAPM 日志输出[QAPMregisterLogCallback:loggerFunc];/// .../// 设置启动QAPM SDK}









文档反馈