setNavigatorKey static method

  1. @Deprecated('直接调用这个方法,会直接影响全局,并且不是很有必要' '请使用 registerPopGestureCallback 和 unregisterPopGestureCallback 来管理回调')
void setNavigatorKey(
  1. GlobalKey<NavigatorState>? navigatorKey, {
  2. bool autoHandle = true,
})

设置 Navigator Key,用于自动处理页面返回

当 iOS 系统检测到左滑返回手势时,插件会自动调用 navigator.maybePop() 来处理页面返回。

参数:

  • navigatorKey: 全局 Navigator Key,通常在 MaterialApp 中设置
  • autoHandle: 是否自动处理导航,默认为 true

使用场景:

  • 希望插件自动处理页面返回,无需业务层介入
  • 需要与 Flutter 的导航系统集成

示例:

final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  PopscopeIos.setNavigatorKey(navigatorKey);
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      navigatorKey: navigatorKey, // 关联到 MaterialApp
      home: HomePage(),
    );
  }
}

Implementation

@Deprecated(
  '直接调用这个方法,会直接影响全局,并且不是很有必要'
  '请使用 registerPopGestureCallback 和 unregisterPopGestureCallback 来管理回调',
)
static void setNavigatorKey(
  GlobalKey<NavigatorState>? navigatorKey, {
  bool autoHandle = true,
}) {
  PopscopeIosPlatform.instance.setNavigatorKey(
    navigatorKey,
    autoHandle: autoHandle,
  );
}