fluro_navigator.dart 1.7 KB

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