【发布时间】:2020-02-19 17:11:24
【问题描述】:
在 Flutter 应用中应用 Deep Linking 打开 另一个应用程序或同一应用程序中的特定页面 我想知道如何在颤振中实现深层链接 还是使用 android native 和 ios native 打开频道? ?
【问题讨论】:
标签: java android ios flutter dart
在 Flutter 应用中应用 Deep Linking 打开 另一个应用程序或同一应用程序中的特定页面 我想知道如何在颤振中实现深层链接 还是使用 android native 和 ios native 打开频道? ?
【问题讨论】:
标签: java android ios flutter dart
我认为它与普通的 Android 应用程序相同。深度链接是配置而不是代码。 你需要在你的 android manifest 中写一些东西。 查看深度链接的 Firebase 手册:
【讨论】:
您可以使用 firebase 动态链接进行深度链接。有关完整的实施步骤,请参阅此链接并创建并接收链接,https://medium.com/better-programming/deep-linking-in-flutter-with-firebase-dynamic-links-8a4b1981e1eb。 以下是在应用内接收链接并打开新屏幕的示例代码。
class MainWidgetState extends State<MainWidget> {
@override
void initState() {
super.initState();
this.initDynamicLinks();
}
initDynamicLinks(BuildContext context) async {
await Future.delayed(Duration(seconds: 3));
var data = await FirebaseDynamicLinks.instance.getInitialLink();
var deepLink = data?.link;
final queryParams = deepLink.queryParameters;
if (queryParams.length > 0) {
var userName = queryParams['userId'];
openNewScreen(userName);
}
FirebaseDynamicLinks.instance.onLink(onSuccess: (dynamicLink)
async {
var deepLink = dynamicLink?.link;
final queryParams = deepLink.queryParameters;
if (queryParams.length > 0) {
var userName = queryParams['userId'];
openNewScreen(userName);
}
debugPrint('DynamicLinks onLink $deepLink');
}, onError: (e) async {
debugPrint('DynamicLinks onError $e');
});
}
openNewScreen(String userName){
Navigator.of(context).pushNamed("routeFormScreen", arguments: {"name": userName});
}
}
【讨论】: