完成DeepLink
This commit is contained in:
		
							parent
							
								
									443f3edcc0
								
							
						
					
					
						commit
						d018147931
					
				| 
						 | 
					@ -24,6 +24,13 @@
 | 
				
			||||||
                <action android:name="android.intent.action.MAIN"/>
 | 
					                <action android:name="android.intent.action.MAIN"/>
 | 
				
			||||||
                <category android:name="android.intent.category.LAUNCHER"/>
 | 
					                <category android:name="android.intent.category.LAUNCHER"/>
 | 
				
			||||||
            </intent-filter>
 | 
					            </intent-filter>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            <intent-filter>
 | 
				
			||||||
 | 
					                <action android:name="android.intent.action.VIEW" />
 | 
				
			||||||
 | 
					                <category android:name="android.intent.category.DEFAULT" />
 | 
				
			||||||
 | 
					                <category android:name="android.intent.category.BROWSABLE" />
 | 
				
			||||||
 | 
					                <data android:scheme="newsgetx" />
 | 
				
			||||||
 | 
					            </intent-filter>
 | 
				
			||||||
        </activity>
 | 
					        </activity>
 | 
				
			||||||
        <!-- Don't delete the meta-data below.
 | 
					        <!-- Don't delete the meta-data below.
 | 
				
			||||||
             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
 | 
					             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
/// Api地址
 | 
					/// Api地址
 | 
				
			||||||
// const String ServerApiUrl = "http://172.31.163.87:4523/m1/2998542-0-default";
 | 
					const String ServerApiUrl = "http://172.31.163.87:4523/m1/2998542-0-default";
 | 
				
			||||||
const String ServerApiUrl = "http://192.168.1.5:4523/m1/2998542-0-default";
 | 
					// const String ServerApiUrl = "http://192.168.1.5:4523/m1/2998542-0-default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const CryptoSalt = "E1pWsyfiy@R@X#qn17!StJNdZK1fFF8iV6ffN!goZkqt#JxO";
 | 
					const CryptoSalt = "E1pWsyfiy@R@X#qn17!StJNdZK1fFF8iV6ffN!goZkqt#JxO";
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,12 @@
 | 
				
			||||||
import 'dart:async';
 | 
					import 'dart:async';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'package:flutter/foundation.dart';
 | 
				
			||||||
import 'package:flutter/material.dart';
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
 | 
					import 'package:flutter/services.dart';
 | 
				
			||||||
import 'package:get/get.dart';
 | 
					import 'package:get/get.dart';
 | 
				
			||||||
import 'package:news_getx/theme/app_colors.dart';
 | 
					import 'package:news_getx/theme/app_colors.dart';
 | 
				
			||||||
import 'package:news_getx/utils/iconfont.dart';
 | 
					import 'package:news_getx/utils/iconfont.dart';
 | 
				
			||||||
 | 
					import 'package:uni_links/uni_links.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ApplicationController extends GetxController {
 | 
					class ApplicationController extends GetxController {
 | 
				
			||||||
  /// 响应式成员变量
 | 
					  /// 响应式成员变量
 | 
				
			||||||
| 
						 | 
					@ -44,12 +47,55 @@ class ApplicationController extends GetxController {
 | 
				
			||||||
  bool isInitialUriIsHandled = false;
 | 
					  bool isInitialUriIsHandled = false;
 | 
				
			||||||
  StreamSubscription? uriSub;
 | 
					  StreamSubscription? uriSub;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // 第一次打开
 | 
				
			||||||
 | 
					  Future<void> handleInitialUri() async {
 | 
				
			||||||
 | 
					    if (!isInitialUriIsHandled) {
 | 
				
			||||||
 | 
					      isInitialUriIsHandled = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      try {
 | 
				
			||||||
 | 
					        final uri = await getInitialUri();
 | 
				
			||||||
 | 
					        if (uri == null) {
 | 
				
			||||||
 | 
					          print('no initial uri');
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          // 这里获取了 scheme 请求
 | 
				
			||||||
 | 
					          print('got initial uri: $uri');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      } on PlatformException {
 | 
				
			||||||
 | 
					        print('falied to get initial uri');
 | 
				
			||||||
 | 
					      } on FormatException catch (err) {
 | 
				
			||||||
 | 
					        print('malformed initial uri, $err');
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // 程序打开时介入
 | 
				
			||||||
 | 
					  handleIncomingLinks() {
 | 
				
			||||||
 | 
					    if (!kIsWeb) {
 | 
				
			||||||
 | 
					      uriSub = uriLinkStream.listen((Uri? uri) {
 | 
				
			||||||
 | 
					        // 这里获取了 scheme 请求
 | 
				
			||||||
 | 
					        print('got uri: $uri');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // if (uri!.pathSegments[1].toLowerCase() == 'category') {
 | 
				
			||||||
 | 
					        if (uri != null && uri.path == '/notify/category') {
 | 
				
			||||||
 | 
					          print('跳转到Category页');
 | 
				
			||||||
 | 
					          handleNavBarTap(1);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }, onError: (err) {
 | 
				
			||||||
 | 
					        print('got err: $err');
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// 生命周期
 | 
					  /// 生命周期
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  void onInit() {
 | 
					  void onInit() {
 | 
				
			||||||
    super.onInit();
 | 
					    super.onInit();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // deek link处理
 | 
				
			||||||
 | 
					    // handleInitialUri();
 | 
				
			||||||
 | 
					    // handleIncomingLinks();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // 准备静态数据 作为tab
 | 
					    // 准备静态数据 作为tab
 | 
				
			||||||
    tabTitles = ['Welcome', 'Category', 'Bookmarks', 'Account'];
 | 
					    tabTitles = ['Welcome', 'Category', 'Bookmarks', 'Account'];
 | 
				
			||||||
    bottomTabs = <BottomNavigationBarItem>[
 | 
					    bottomTabs = <BottomNavigationBarItem>[
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										24
									
								
								pubspec.lock
								
								
								
								
							
							
						
						
									
										24
									
								
								pubspec.lock
								
								
								
								
							| 
						 | 
					@ -602,6 +602,30 @@ packages:
 | 
				
			||||||
      url: "https://pub.flutter-io.cn"
 | 
					      url: "https://pub.flutter-io.cn"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "1.3.2"
 | 
					    version: "1.3.2"
 | 
				
			||||||
 | 
					  uni_links:
 | 
				
			||||||
 | 
					    dependency: "direct main"
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: uni_links
 | 
				
			||||||
 | 
					      sha256: "051098acfc9e26a9fde03b487bef5d3d228ca8f67693480c6f33fd4fbb8e2b6e"
 | 
				
			||||||
 | 
					      url: "https://pub.flutter-io.cn"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.5.1"
 | 
				
			||||||
 | 
					  uni_links_platform_interface:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: uni_links_platform_interface
 | 
				
			||||||
 | 
					      sha256: "929cf1a71b59e3b7c2d8a2605a9cf7e0b125b13bc858e55083d88c62722d4507"
 | 
				
			||||||
 | 
					      url: "https://pub.flutter-io.cn"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.0.0"
 | 
				
			||||||
 | 
					  uni_links_web:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: uni_links_web
 | 
				
			||||||
 | 
					      sha256: "7539db908e25f67de2438e33cc1020b30ab94e66720b5677ba6763b25f6394df"
 | 
				
			||||||
 | 
					      url: "https://pub.flutter-io.cn"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.1.0"
 | 
				
			||||||
  universal_io:
 | 
					  universal_io:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -95,7 +95,7 @@ dependencies:
 | 
				
			||||||
  webview_flutter: ^4.2.2
 | 
					  webview_flutter: ^4.2.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # 通过 scheme 打开APP 获取 参数
 | 
					  # 通过 scheme 打开APP 获取 参数
 | 
				
			||||||
#  uni_links: ^0.5.1
 | 
					  uni_links: ^0.5.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dev_dependencies:
 | 
					dev_dependencies:
 | 
				
			||||||
  flutter_test:
 | 
					  flutter_test:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue