当我在我的 flutter ios 打开应用程序中使用 firebase 动态 link 但当应用程序被杀死时没有得到 link
When i use firebase dynamic link in my flutter it opne app but not get link when app was kill
当我的应用程序 运行 在后台时,我得到 link 并且它工作正常但是当我的应用程序被杀死时,当我从深层打开应用程序时我没有得到 link link.
这是我获取 link
的代码
这是我编辑的代码
void initDynamicLinks() async {
FirebaseDynamicLinks.instance.onLink(
onSuccess: (PendingDynamicLinkData dynamicLink) async {
final Uri deepLink = dynamicLink?.link;
if (deepLink != null) {
print('---new deep link onLink**********************************${deepLink}');
Fluttertoast.showToast(
msg: "onLink handle ${deepLink}",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIosWeb: 1,
backgroundColor: Colors.red,
textColor: Colors.white,
fontSize: 16.0
);
//Navigator.pushNamed(context, deepLink.path);
}
},
onError: (OnLinkErrorException e) async {
print('onLinkError');
print(e.message);
}
);
final PendingDynamicLinkData data = await FirebaseDynamicLinks.instance.getInitialLink();
final Uri deepLink = data?.link;
if (deepLink != null) {
print('---new deep found************************************************');
Fluttertoast.showToast(
msg: "get?Initial handle ${deepLink}",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIosWeb: 1,
backgroundColor: Colors.red,
textColor: Colors.white,
fontSize: 16.0
);
// Navigator.pushNamed(context, deepLink.path);
}
}
我为 init 调用 initPlatformState(),当我的应用程序在后台 运行 时它工作正常。
当我的应用程序强制停止时,我如何获得url
现在同样的问题 onLink 工作但 getInitialLink 不工作第一次从 url
打开应用程序
你的FirebaseDynamicLinks.instance.getInitialLink();
和FirebaseDynamicLinks.instance.onLink
逻辑在哪里?
您似乎只是在应用程序处于后台时通过 stream.listen 方法处理链接,但您发布的代码并未显示应用程序终止时处理链接的逻辑。
我为 getInitialLink 设置了 2 秒的延迟,然后它起作用了。
基本上,您需要在启动时增加 2-3 秒的延迟 + 您可以处理 (onSuccess) 中的深度 link。它终于对我有用了!
检查下面的 link
https://betterprogramming.pub/deep-linking-in-flutter-with-firebase-dynamic-links-8a4b1981e1eb
当我的应用程序 运行 在后台时,我得到 link 并且它工作正常但是当我的应用程序被杀死时,当我从深层打开应用程序时我没有得到 link link.
这是我获取 link
的代码这是我编辑的代码
void initDynamicLinks() async {
FirebaseDynamicLinks.instance.onLink(
onSuccess: (PendingDynamicLinkData dynamicLink) async {
final Uri deepLink = dynamicLink?.link;
if (deepLink != null) {
print('---new deep link onLink**********************************${deepLink}');
Fluttertoast.showToast(
msg: "onLink handle ${deepLink}",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIosWeb: 1,
backgroundColor: Colors.red,
textColor: Colors.white,
fontSize: 16.0
);
//Navigator.pushNamed(context, deepLink.path);
}
},
onError: (OnLinkErrorException e) async {
print('onLinkError');
print(e.message);
}
);
final PendingDynamicLinkData data = await FirebaseDynamicLinks.instance.getInitialLink();
final Uri deepLink = data?.link;
if (deepLink != null) {
print('---new deep found************************************************');
Fluttertoast.showToast(
msg: "get?Initial handle ${deepLink}",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIosWeb: 1,
backgroundColor: Colors.red,
textColor: Colors.white,
fontSize: 16.0
);
// Navigator.pushNamed(context, deepLink.path);
}
}
我为 init 调用 initPlatformState(),当我的应用程序在后台 运行 时它工作正常。
当我的应用程序强制停止时,我如何获得url
现在同样的问题 onLink 工作但 getInitialLink 不工作第一次从 url
打开应用程序你的FirebaseDynamicLinks.instance.getInitialLink();
和FirebaseDynamicLinks.instance.onLink
逻辑在哪里?
您似乎只是在应用程序处于后台时通过 stream.listen 方法处理链接,但您发布的代码并未显示应用程序终止时处理链接的逻辑。
我为 getInitialLink 设置了 2 秒的延迟,然后它起作用了。
基本上,您需要在启动时增加 2-3 秒的延迟 + 您可以处理 (onSuccess) 中的深度 link。它终于对我有用了! 检查下面的 link https://betterprogramming.pub/deep-linking-in-flutter-with-firebase-dynamic-links-8a4b1981e1eb