Android 颤振-多次处理动态碰撞

Android 颤振-多次处理动态碰撞,android,ios,firebase,flutter,Android,Ios,Firebase,Flutter,我正在使用handleDynamicLinks()方法在收到动态链接时启动一个新活动。但是,handleDynamicLinks()方法会被多次触发,即使动态链接只被单击一次 我怎样才能解决这个问题?先谢谢你 class _HomePageState extends State<HomePage> with WidgetsBindingObserver { @override void initState() { super.initState(); Wid

我正在使用handleDynamicLinks()方法在收到动态链接时启动一个新活动。但是,handleDynamicLinks()方法会被多次触发,即使动态链接只被单击一次

我怎样才能解决这个问题?先谢谢你

class _HomePageState extends State<HomePage> with WidgetsBindingObserver {

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addObserver(this);
    this.initDynamicLinks();
  }

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    if (state == AppLifecycleState.resumed) {
      initDynamicLinks();
    }
  }

  void initDynamicLinks() async {
    FirebaseDynamicLinks.instance.onLink(
        onSuccess: (PendingDynamicLinkData dynamicLink) async {
          final Uri deepLink = dynamicLink?.link;
          print(deepLink.toString());
          if (deepLink != null) {
            final queryParams = deepLink.queryParameters;
            print(queryParams.toString());
            if (deepLink.hasQuery) {
              final ID = queryParams['ID'];
              _handleDynamicLinks(ID);
            }
          }
        },
        onError: (OnLinkErrorException e) async {
          print('onLinkError');
          print(e.message);
        }
    );

    final PendingDynamicLinkData data = await FirebaseDynamicLinks.instance
        .getInitialLink();
    final Uri deepLink = data?.link;

    if (deepLink != null) {
      final queryParams = deepLink.queryParameters;
      print(queryParams.toString());
      if (deepLink.hasQuery) {
        final ID = queryParams['ID'];
        _handleDynamicLinks(ID);
      }
    }
  }
class\u HomePageState使用WidgetsBindingObserver扩展状态{
@凌驾
void initState(){
super.initState();
WidgetsBinding.instance.addObserver(这个);
this.initDynamicLinks();
}
@凌驾
void didchangeAppifecyclestate(AppLifecycleState状态){
if(state==AppLifecycleState.resume){
initdynamiclings();
}
}
void initdynamiclings()异步{
FireBaseDynamicLink.instance.onLink(
onSuccess:(PendingDynamicLink数据dynamicLink)异步{
最终Uri deepLink=dynamicLink?.link;
打印(deepLink.toString());
if(deepLink!=null){
最终查询参数=deepLink.queryParameters;
打印(queryParams.toString());
if(deepLink.haskquery){
最终ID=查询参数['ID'];
_可处理的动态链接(ID);
}
}
},
onError:(OnLinkErrorException e)异步{
打印('onLinkError');
打印(电子信息);
}
);
final PendingDynamicLinkData=等待FirebaseDynamicLinks.instance
.getInitialLink();
最终Uri deepLink=数据?.link;
if(deepLink!=null){
最终查询参数=deepLink.queryParameters;
打印(queryParams.toString());
if(deepLink.haskquery){
最终ID=查询参数['ID'];
_可处理的动态链接(ID);
}
}
}