app-starlock/lib/tools/NativeInteractionTool.dart

51 lines
1.6 KiB
Dart
Raw Normal View History

import 'package:flutter/services.dart';
2024-06-04 15:48:39 +08:00
import 'package:star_lock/flavors.dart';
2024-04-26 15:38:59 +08:00
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}) {
2024-06-04 15:48:39 +08:00
final String urlToShare = '${F.apiPrefix}/apps';
sendChannel.invokeMethod(
2024-06-04 15:48:39 +08:00
'loadNativeShare', <String, String>{'shareText': shareText,'urlToShare':urlToShare});
}
///获取设备蓝牙状态
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);
2024-04-26 15:38:59 +08:00
AppLog.log('收到原生发送的信息getBlueStatus: $message');
break;
default:
throw MissingPluginException();
}
});
}
}