mirror of
https://github.com/RxReader/link_kit.git
synced 2025-08-06 18:50:51 +08:00
69 lines
1.4 KiB
Dart
69 lines
1.4 KiB
Dart
import 'dart:async';
|
||
|
||
import 'package:flutter/foundation.dart';
|
||
import 'package:flutter/material.dart';
|
||
import 'package:link_kit/link_kit.dart';
|
||
|
||
void main() {
|
||
runApp(MyApp());
|
||
}
|
||
|
||
class MyApp extends StatefulWidget {
|
||
const MyApp({
|
||
super.key,
|
||
});
|
||
|
||
@override
|
||
State<MyApp> createState() => _MyAppState();
|
||
}
|
||
|
||
class _MyAppState extends State<MyApp> {
|
||
String? _link;
|
||
StreamSubscription<String>? _linkClickSubs;
|
||
|
||
@override
|
||
void initState() {
|
||
super.initState();
|
||
_linkClickSubs =
|
||
LinkKitPlatform.instance.linkClickStream().listen((String event) {
|
||
if (kDebugMode) {
|
||
print('linkClick: $event');
|
||
}
|
||
setState(() {
|
||
_link = event;
|
||
});
|
||
});
|
||
// ⚠️⚠️⚠️
|
||
// 因为 Android 层实现调用了 queryIntentActivities,会被(小米)误判【获取安装列表】
|
||
// 所以 getInitialLink 必须在同意「隐私协议」后才能调用
|
||
LinkKitPlatform.instance.getInitialLink().then((String? value) {
|
||
if (kDebugMode) {
|
||
print('initialLink: $value');
|
||
}
|
||
setState(() {
|
||
_link = value;
|
||
});
|
||
});
|
||
}
|
||
|
||
@override
|
||
void dispose() {
|
||
_linkClickSubs?.cancel();
|
||
super.dispose();
|
||
}
|
||
|
||
@override
|
||
Widget build(BuildContext context) {
|
||
return MaterialApp(
|
||
home: Scaffold(
|
||
appBar: AppBar(
|
||
title: Text('Link Kit'),
|
||
),
|
||
body: Center(
|
||
child: Text(_link ?? ''),
|
||
),
|
||
),
|
||
);
|
||
}
|
||
}
|