mirror of
https://github.com/lifegpc/eh_downloader_flutter.git
synced 2026-07-08 01:30:28 +08:00
Support read base from queryString
This commit is contained in:
@@ -40,6 +40,7 @@ Config? _prefs;
|
||||
EHApi? _api;
|
||||
PersistCookieJar? _jar;
|
||||
ImageCaches? _imageCaches;
|
||||
String? queryBaseUrl;
|
||||
|
||||
Future<void> prepareJar() async {
|
||||
final jar = PersistCookieJar(storage: FileStorage(await getJarPath()));
|
||||
@@ -97,6 +98,14 @@ bool tryInitApi(BuildContext context) {
|
||||
clearAllStates(context);
|
||||
return true;
|
||||
}
|
||||
if (queryBaseUrl != null) {
|
||||
if (_api != null && _api!.baseUrl == queryBaseUrl) {
|
||||
return true;
|
||||
}
|
||||
initApi(queryBaseUrl!);
|
||||
clearAllStates(context);
|
||||
return true;
|
||||
}
|
||||
String? baseUrl = prefs.getString("baseUrl");
|
||||
if (baseUrl == null) {
|
||||
SchedulerBinding.instance.addPostFrameCallback((_) {
|
||||
|
||||
@@ -35,6 +35,24 @@ import 'viewer/single.dart';
|
||||
|
||||
final _routerLog = Logger("Router");
|
||||
|
||||
bool _isFirst = true;
|
||||
|
||||
class _NavigatorObserver extends NavigatorObserver {
|
||||
@override
|
||||
void didPush(Route route, Route? previousRoute) {
|
||||
if (_isFirst) {
|
||||
try {
|
||||
final args = route.settings.arguments as Map<String, String>?;
|
||||
queryBaseUrl = args?["base"];
|
||||
} catch (e) {
|
||||
_routerLog.warning("Failed to get arguments.", e);
|
||||
}
|
||||
_isFirst = false;
|
||||
}
|
||||
super.didPush(route, previousRoute);
|
||||
}
|
||||
}
|
||||
|
||||
final _router = GoRouter(
|
||||
routes: [
|
||||
GoRoute(
|
||||
@@ -289,6 +307,9 @@ final _router = GoRouter(
|
||||
});
|
||||
}),
|
||||
],
|
||||
observers: [
|
||||
_NavigatorObserver(),
|
||||
],
|
||||
);
|
||||
|
||||
void defaultLogger(LogRecord record) {
|
||||
|
||||
Reference in New Issue
Block a user