Commit 62e5f10a by tanghuan

ios手势测试

1 parent 4903540f
import 'dart:io';
import 'package:appframe/bloc/link_cubit.dart';
import 'package:appframe/ui/widgets/ios_edge_swipe_detector.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:go_router/go_router.dart';
......@@ -13,6 +16,20 @@ class LinkPage extends StatelessWidget {
final String? url = extraData?['url'];
final String? title = extraData?['title'];
if(Platform.isIOS) {
// 初始化 iOS 边缘滑动监听
IosEdgeSwipeDetector.init();
// 设置滑动回调
IosEdgeSwipeDetector.onEdgeSwipe(() {
debugPrint("");
debugPrint("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
debugPrint("检测到左边缘滑动,Flutter 收到通知");
debugPrint("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
debugPrint("");
});
}
return BlocProvider(
create: (context) => LinkCubit(LinkState(loaded: false, url: url!)),
child: BlocConsumer<LinkCubit, LinkState>(
......@@ -35,14 +52,16 @@ class LinkPage extends StatelessWidget {
);
// 为所有平台添加PopScope支持
return PopScope(
canPop: false,
onPopInvokedWithResult: (didPop, result) async {
// if (didPop) return;
await ctx.read<LinkCubit>().handleBack(ctx);
},
child: scaffold,
);
// return PopScope(
// canPop: false,
// onPopInvokedWithResult: (didPop, result) async {
// // if (didPop) return;
// await ctx.read<LinkCubit>().handleBack(ctx);
// },
// child: scaffold,
// );
return scaffold;
},
listener: (context, state) {},
),
......
import 'package:flutter/services.dart';
class IosEdgeSwipeDetector {
static const MethodChannel _channel = MethodChannel('ios_edge_swipe');
/// 初始化监听器(调用 iOS 注册边缘滑动监听)
static Future<void> init() async {
try {
await _channel.invokeMethod('initSwipeListener');
} catch (_) {}
}
/// 注册 Flutter 层监听器
static void onEdgeSwipe(VoidCallback onSwipeDetected) {
_channel.setMethodCallHandler((call) async {
if (call.method == 'onEdgeSwipe') {
onSwipeDetected();
}
});
}
}
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!