initVeApm function
void
initVeApm({
- bool enableReplaceDefaultErrorWidget = true,
- BindingInitHandler? bindingInitHandler,
- VeApmErrorFilter? errorFilter,
Implementation
void initVeApm({bool enableReplaceDefaultErrorWidget = true, BindingInitHandler? bindingInitHandler,
VeApmErrorFilter? errorFilter}) {
// 单独使用APM时初始化WidgetsFlutterBinding
if (bindingInitHandler != null) {
bindingInitHandler();
assert(ApmWidgetsFlutterBinding.isInit, 'Please make your custom binding extends ApmWidgetsFlutterBinding.');
} else {
ApmWidgetsFlutterBinding.ensureInitialized();
}
if (errorFilter != null) {
ApmErrorTrace.instance.veApmErrorFilter = errorFilter;
}
final FlutterExceptionHandler? _origErrorHandler = FlutterError.onError;
FlutterError.onError = (FlutterErrorDetails details) {
veApmExceptionHandler(details, StackTrace.current);
_origErrorHandler?.call(details);
};
if (enableReplaceDefaultErrorWidget) {
ApmErrorTrace.instance.replaceErrorWidget();
}
// for monitor auto fps
WidgetsBinding.instance.addObserver(ApmWidgetsBindingObserver());
}