import 'package:flutter/services.dart'; import 'package:star_lock/flavors.dart'; import 'package:star_lock/tools/push/xs_jPhush.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}) { final String urlToShare = '${F.apiPrefix}/apps'; sendChannel.invokeMethod('loadNativeShare', {'shareText': shareText, 'urlToShare': urlToShare}); } ///加载原生文件分享 void loadNativeFileShare({required String shareText}) { sendChannel.invokeMethod('loadNativeShare', {'shareText': shareText, 'urlToShare': 'fileShare'}); } ///获取设备蓝牙状态 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(); } }); } Future getBundleIdentifier() async { try { final String? bundleIdentifier = await sendChannel.invokeMethod('getBundleIdentifier'); return bundleIdentifier; } on PlatformException catch (e) { print("Failed to get bundle identifier: '${e.message}'."); return null; } } }