initialize method
Initialize the printer plugin.
Implementation
@override
Future<void> initialize() async {
//print('🔄 Flutter: Starting initialization...');
try {
// Set up method call handler first
methodChannel.setMethodCallHandler(_handleMethodCall);
//print('✅ Flutter: Method call handler set up');
// Call native initialization with explicit timeout
//print('📱 Flutter: Calling native initialize method...');
final result = await methodChannel.invokeMethod('initialize').timeout(
const Duration(seconds: 10),
onTimeout: () {
//print('⏰ Flutter: Initialize method call timed out');
throw TimeoutException(
'Initialize method call timed out', const Duration(seconds: 10));
},
);
//print('📱 Flutter: Native initialize returned: $result');
if (result == true) {
_isInitialized = true;
//print('✅ Flutter: XPrinterPck initialized successfully');
} else {
_isInitialized = false;
//print('❌ Flutter: Native initialize returned false');
throw Exception('Native initialization returned false');
}
} on PlatformException {
_isInitialized = false;
//print(
// '❌ Flutter: PlatformException during initialization: ${e.code} - ${e.message}');
//print(' Details: ${e.details}');
rethrow;
} on TimeoutException {
_isInitialized = false;
//print('❌ Flutter: Timeout during initialization: $e');
rethrow;
} catch (e) {
_isInitialized = false;
//print('❌ Flutter: Unexpected error during initialization: $e');
rethrow;
}
}