recordView static method
Record custom view to Countly.
String view
- name of the view
Map<String, Object> segmentation
- allows to add optional segmentation,
Supported data type for segmentation values are String, int, double and bool
Implementation
@Deprecated('Use Countly.instance.views.startView instead')
static Future<String?> recordView(String view, [Map<String, Object>? segmentation]) async {
if (!_instance._countlyState.isInitialized) {
String message = '"initWithConfig" must be called before "recordView"';
log('recordView, $message', logLevel: LogLevel.ERROR);
return message;
}
int segCount = segmentation != null ? segmentation.length : 0;
log('Calling "recordView":[$view] with segmentation Count:[$segCount]');
if (view.isEmpty) {
String error = 'recordView, Trying to record view with empty view name, ignoring request';
log(error);
return 'Error : $error';
}
List<String> args = [];
args.add(view);
if (segmentation != null) {
segmentation.forEach((k, v) {
if (v is String || v is int || v is double || v is bool) {
args.add(k);
args.add(v.toString());
} else {
log('recordView, unsupported segmentation data type [${v.runtimeType}], View [$view]', logLevel: LogLevel.WARNING);
}
});
}
final String? result = await _channel.invokeMethod('recordView', <String, dynamic>{'data': json.encode(args)});
return result;
}