flutter如何监听app_links打开网页
在Flutter中如何监听app_links打开网页?我在使用uni_links插件时,发现Android和iOS的配置方式不同,但不知道具体如何实现。比如,在AndroidManifest.xml和Info.plist中需要添加哪些配置?另外,如何在Flutter代码中正确捕获和处理传入的URL链接?希望能提供一个完整的示例代码,包括初始化和事件监听部分。
2 回复
在Flutter中监听app_links打开网页,需使用uni_links或url_launcher插件。步骤如下:
- 添加依赖到
pubspec.yaml。 - 配置Android的
AndroidManifest.xml和iOS的Info.plist。 - 使用
getInitialLink获取初始链接,linkStream监听后续链接变化。
示例代码:
import 'package:uni_links/uni_links.dart';
void initUniLinks() {
getInitialLink().then((String? link) {
// 处理初始链接
});
linkStream.listen((String? link) {
// 监听链接变化
});
}
更多关于flutter如何监听app_links打开网页的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在 Flutter 中监听 app_links 打开网页,可以使用 app_links 或 uni_links 插件。以下是使用 app_links 插件的步骤:
1. 添加依赖
在 pubspec.yaml 中添加:
dependencies:
app_links: ^5.0.1
2. 配置平台
- Android:在
AndroidManifest.xml的<activity>标签内添加:<intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="https" android:host="yourdomain.com" /> </intent-filter> - iOS:在
Info.plist中添加:<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLName</key> <string>yourdomain.com</string> <key>CFBundleURLSchemes</key> <array> <string>https</string> </array> </dict> </array>
3. 代码实现
import 'package:app_links/app_links.dart';
class AppLinkHandler {
final AppLinks _appLinks = AppLinks();
void initAppLinks() {
// 监听初始链接
_appLinks.getInitialAppLink().then((uri) {
if (uri != null) {
_handleDeepLink(uri);
}
});
// 监听后续链接变化
_appLinks.uriLinkStream.listen((uri) {
_handleDeepLink(uri);
});
}
void _handleDeepLink(Uri uri) {
print('收到深度链接: ${uri.toString()}');
// 根据 uri 路径处理不同页面
if (uri.path == '/product') {
// 跳转到商品页面
}
}
}
// 在 main 中初始化
void main() {
WidgetsFlutterBinding.ensureInitialized();
AppLinkHandler().initAppLinks();
runApp(MyApp());
}
注意事项
- 将
yourdomain.com替换为你的实际域名。 - 测试时确保设备支持深度链接(如真机测试)。
- 对于 HTTP 链接,Android 和 iOS 可能需要额外配置。
使用这种方式,当用户点击指向你应用的链接时,应用会自动打开并触发对应的处理逻辑。

