add loginWithWebview, mixed explore page, app links, html node api;

improve ui
This commit is contained in:
nyne
2024-10-17 12:27:20 +08:00
parent d01d0b5ddb
commit 6c8a7d62a6
28 changed files with 686 additions and 199 deletions

30
lib/utils/app_links.dart Normal file
View File

@@ -0,0 +1,30 @@
import 'package:app_links/app_links.dart';
import 'package:venera/foundation/app.dart';
import 'package:venera/foundation/comic_source/comic_source.dart';
import 'package:venera/pages/comic_page.dart';
void handleLinks() {
final appLinks = AppLinks();
appLinks.uriLinkStream.listen((uri) {
handleAppLink(uri);
});
}
void handleAppLink(Uri uri) async {
for(var source in ComicSource.all()) {
if(source.linkHandler != null) {
if(source.linkHandler!.domains.contains(uri.host)) {
var id = source.linkHandler!.linkToId(uri.toString());
if(id != null) {
if(App.mainNavigatorKey == null) {
await Future.delayed(const Duration(milliseconds: 200));
}
App.mainNavigatorKey!.currentContext?.to(() {
return ComicPage(id: id, sourceKey: source.key);
});
}
return;
}
}
}
}