fluro_navigator.dart 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import 'package:fluro/fluro.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:liftmanager/internal/repair/repair_router.dart';
  4. import 'package:liftmanager/routers/routers.dart';
  5. import 'application.dart';
  6. /// fluro的路由跳转工具类
  7. class NavigatorUtils {
  8. static push(BuildContext context, String path,
  9. {bool replace = false, bool clearStack = false}) {
  10. FocusScope.of(context).unfocus();
  11. Application.router.navigateTo(context, path, replace: replace, clearStack: clearStack, transition: TransitionType.native);
  12. }
  13. static pushResult(BuildContext context, String path, Function(Object) function,
  14. {bool replace = false, bool clearStack = false}) {
  15. FocusScope.of(context).unfocus();
  16. Application.router.navigateTo(context, path, replace: replace, clearStack: clearStack, transition: TransitionType.native).then((result){
  17. // 页面返回result为null
  18. if (result == null){
  19. return;
  20. }
  21. function(result);
  22. }).catchError((error) {
  23. print("$error");
  24. });
  25. }
  26. // static void go(BuildContext context,String path){
  27. // Navigator.of(context).pushAndRemoveUntil(
  28. // MaterialPageRoute(builder: (context) => HomePage()),
  29. // (route) => route == null);
  30. // }
  31. /// 返回
  32. static void goBack(BuildContext context) {
  33. FocusScope.of(context).unfocus();
  34. Navigator.pop(context);
  35. }
  36. /// 带参数返回
  37. static void goBackWithParams(BuildContext context, result) {
  38. FocusScope.of(context).unfocus();
  39. Navigator.pop(context, result);
  40. }
  41. /// 跳到WebView页
  42. static goWebViewPage(BuildContext context, String title, String url){
  43. //fluro 不支持传中文,需转换
  44. push(context, '${Routers.webViewPage}?title=${Uri.encodeComponent(title)}&url=${Uri.encodeComponent(url)}');
  45. }
  46. }