如何解决当我在我的 flutter 中使用 firebase 动态链接时,它会打开应用程序,但在应用程序被杀死时无法获取链接
当我的应用程序在后台运行时,我得到链接并且它工作正常但是当我的应用程序被杀死时,当我从深层链接打开应用程序时我没有得到链接。
这是我编辑过的代码
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}",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) 之外的深层链接。它终于对我有用了! 检查下面的链接 https://betterprogramming.pub/deep-linking-in-flutter-with-firebase-dynamic-links-8a4b1981e1eb
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。