diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 92f9565fe..fd8ffb406 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -109,6 +109,7 @@
+
diff --git a/lib/utils/app_scheme.dart b/lib/utils/app_scheme.dart
index 744896099..d10ee4854 100644
--- a/lib/utils/app_scheme.dart
+++ b/lib/utils/app_scheme.dart
@@ -2,7 +2,10 @@ import 'dart:async';
import 'package:PiliPlus/common/widgets/view_safe_area.dart';
import 'package:PiliPlus/http/search.dart';
+import 'package:PiliPlus/models/common/fav_type.dart';
import 'package:PiliPlus/models/common/video/source_type.dart';
+import 'package:PiliPlus/pages/live/view.dart';
+import 'package:PiliPlus/pages/rank/view.dart';
import 'package:PiliPlus/pages/subscription_detail/view.dart';
import 'package:PiliPlus/pages/video/reply_reply/view.dart';
import 'package:PiliPlus/utils/extension.dart';
@@ -11,6 +14,7 @@ import 'package:PiliPlus/utils/page_utils.dart';
import 'package:PiliPlus/utils/url_utils.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:app_links/app_links.dart';
+import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
@@ -218,7 +222,7 @@ class PiliScheme {
);
return true;
}
- Get.toNamed('search');
+ Get.toNamed('/search');
return true;
case 'article':
// bilibili://article/40679479?jump_opus=1&jump_opus_type=1&opus_type=article&h5awaken=random
@@ -468,6 +472,45 @@ class PiliScheme {
return true;
}
return false;
+ case 'history':
+ Get.toNamed('/history');
+ return true;
+ case 'main':
+ if (path.startsWith('/favorite')) {
+ final tab = uri.queryParameters['tab'];
+ int index = 0;
+ if (tab != null) {
+ try {
+ index = FavTabType.values.byName(tab).index;
+ } catch (e) {
+ if (kDebugMode) print('favorite jump: $e');
+ }
+ }
+ Get.toNamed('/fav', arguments: index);
+ return true;
+ }
+ return false;
+ case 'livearea':
+ Get.to(
+ Scaffold(
+ resizeToAvoidBottomInset: false,
+ appBar: AppBar(title: const Text('直播')),
+ body: const ViewSafeArea(child: LivePage()),
+ ),
+ );
+ return true;
+ case 'rank':
+ Get.to(
+ Scaffold(
+ resizeToAvoidBottomInset: false,
+ appBar: AppBar(title: const Text('排行榜')),
+ body: const ViewSafeArea(child: RankPage()),
+ ),
+ );
+ return true;
+ case 'login':
+ Get.toNamed('/loginPage');
+ return true;
default:
if (!selfHandle) {
// if (kDebugMode) debugPrint('$uri');