import 'package:flutter/services.dart'; import '../app_settings/app_settings.dart'; ///原生交互配置 class NativeInteractionConfig { static String methodSendChannel = 'starLockFlutterSend'; static String receiveEventChannel = 'starLockFlutterReceive'; } ///原生交互flutter向原生发送消息 typedef BlockBlueStatus = void Function(String status); class NativeInteractionTool { MethodChannel sendChannel = MethodChannel(NativeInteractionConfig.methodSendChannel); MethodChannel receiveChannel = MethodChannel(NativeInteractionConfig.receiveEventChannel); ///加载原生分享 void loadNativeShare({required String shareText}) { sendChannel.invokeMethod( 'loadNativeShare', {'shareText': shareText}); } ///获取设备蓝牙状态 void sendGetBlueStatus() { sendChannel.invokeMethod('sendGetBlueStatus'); } ///获取设备蓝牙是否打开 void receiveChannelBlueIsOnEvent(BlockBlueStatus blockBlueStatus) { receiveChannel.setMethodCallHandler((MethodCall call) async { AppLog.log( '收到原生发送的信息call.method: ${call.method} call.arguments:${call.arguments}'); switch (call.method) { case 'getBlueStatus': // 获取设备蓝牙开启/关闭状态 final String message = call.arguments; blockBlueStatus(message); AppLog.log('收到原生发送的信息getBlueStatus: $message'); break; default: throw MissingPluginException(); } }); } }