mirror of
https://github.com/venera-app/venera.git
synced 2025-09-27 07:47:24 +00:00
add loginWithWebview, mixed explore page, app links, html node api;
improve ui
This commit is contained in:
30
lib/utils/app_links.dart
Normal file
30
lib/utils/app_links.dart
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user