在 android 上一切正常,但在 ios 上,当应用程序已经打开时,单击链接会将应用程序置于前台,但未调用 onLink
方法。
链接:
https://<url>/?link=<link>&apn=<apn>&ibi=<bundle>&isi=<isi>
包装:
代码
import 'package:firebase_dynamic_links/firebase_dynamic_links.dart';
import 'package:flutter/material.dart';
class DynamicLinksService {
Future handleDynamicLinks(BuildContext context) async {
final PendingDynamicLinkData data =
await FirebaseDynamicLinks.instance.getInitialLink();
await _handleDynamicLink(context, data);
FirebaseDynamicLinks.instance.onLink(
onSuccess: (PendingDynamicLinkData dynamicLinkData) async {
await _handleDynamicLink(context, dynamicLinkData);
}, onError: (OnLinkErrorException e) async {
print('Dynamic link failed: ${e.message}');
});
}
Future _handleDynamicLink(
BuildContext context, PendingDynamicLinkData data) async {
final Uri deepLink = data?.link;
if (deepLink != null) {
print('_handleDeepLink | deepLink $deepLink');
await _doSomething(context, deepLink.toString());
} else {
print('no deepLink');
}
}
}
答案 0 :(得分:0)
它对我有用! 基本上,您需要在启动时添加 2-3 秒延迟 + 您可以处理 (onSuccess) 之外的深层链接。它终于对我有用了! 检查下面的链接 https://betterprogramming.pub/deep-linking-in-flutter-with-firebase-dynamic-links-8a4b1981e1eb