init static method
initialize function
The jump2LoginCallback
required argument specifies how to jump to login page,
depends on what your routing library:
FluroRouter example
String? currentRoute = ModalRoute.of(context)?.settings.name;
if(currentRoute?.split("?").first == "/login") { return ; }
FluroRouter().navigateTo(context, "/login", clearStack: true);
GoRouter example
String? currentRoute = GoRouter.of(context).location;
if(currentRoute?.split("?").first == "/login") { return ; }
GoRouter(routes: []).go("/login");
The unAuthCode
optional argument specifies which response (in format {code, message, data})
code (101
in default) should trigger jump2LoginCallback, split by |
if multiple code supported.
The maintenanceCode
optional argument specifies which response (in format {code, message, data})
code should trigger jump2UnderMaintenanceCallback.
NOTE: If no maintenanceCode specified, means do not support maintenance jump for all requests
The jump2UnderMaintenanceCallback
optional argument specifies how to jump to under maintenance page,
depends on what your routing library, similar to jump2LoginCallback
Implementation
static void init(
{required Function jump2LoginCallback,
dynamic unAuthCode,
int? maintenanceCode,
Function? jump2UnderMaintenanceCallback}) {
assert(
unAuthCode == null ||
unAuthCode is int ||
unAuthCode is String ||
unAuthCode is List<int>,
"invalid type of unAuthCode !");
if (unAuthCode is int || unAuthCode is String) {
_unAuthCode = unAuthCode
.toString()
.split("|")
.map((ele) => int.parse(ele))
.toList();
} else if (unAuthCode is List<int>) {
_unAuthCode = unAuthCode;
}
_maintenanceCode = maintenanceCode;
_onJump2Login = jump2LoginCallback;
_onJump2UnderMaintenance = jump2UnderMaintenanceCallback;
}