handle method
Implementation
@override
Future<dynamic> handle(MethodCall call) async {
NLogger.i('Capturing target details, arguments: ${call.arguments}');
final String label = call.arguments['LABEL'];
final num screenHeight = call.arguments['SCREEN_HEIGHT'];
final num screenWidth = call.arguments['SCREEN_WIDTH'];
final num? statusBarHeight = call.arguments['STATUS_BAR_HEIGHT'];
NLogger.i('Searching for target with label: $label');
NLogger.d(
'Screen height: $screenHeight, Screen width: $screenWidth, status bar height: $statusBarHeight',
);
Size size = MediaQuery.of(Nudge.nudgeNavigatorKey.currentContext!).size;
final num scaleX = screenWidth / size.width;
final num scaleY = screenHeight / size.height;
// final num scaleX = 720 / size.width;
// final num scaleY = 1600 / size.height;
print('Scale X: $scaleX, Scale Y: $scaleY');
final Map<String, dynamic> targetDetails =
await NudgeWidgetTracker.nativeFindWidgetPositionByLabel(
label: label,
scaleX: scaleX,
scaleY: scaleY,
statusBarHeight: 0,
);
if (targetDetails['result']) {
NLogger.i('Target found: $targetDetails');
final Map<String, dynamic> response = {
'message_type': 'SEND_TARGET_DETAILS',
'data': targetDetails,
};
try {
await NudgeCoreV2NativeServices().sendTargetDetails(response);
} catch (e) {
NLogger.e('Error sending target details: $e');
return {'success': false};
}
return {'success': true};
} else {
NLogger.i(
'Target not found, please ensure that the widget exists on the screen',
);
return {'success': false};
}
}