LoginSignup
19
13

More than 3 years have passed since last update.

[Flutter] Firebase Dynamic Links を受信して捌く

Last updated at Posted at 2019-10-19

起動中/未起動中に、Link を受信したら遷移する

Firebase Dynamic Links の Deep Link を、どの Widget にいても捌く方法。
抜粋したものを雑に示すとこんな感じ。navigatorKey が肝。

sample_app.dart
final _navigatorKey = GlobalKey<NavigatorState>();

FirebaseDynamicLinks.instance.onLink(onSuccess: (PendingDynamicLinkData dynamicLink) async {
  await navigatePage(deepLink?.link);
});

Future<void> navigatePage(Uri deepLink) async {
  final routeName = 'foo' // 実際には、dynamicLink の情報から組み立てる
  await _navigatorKey.currentState.pushNamed(routeName);
}

runApp(
  child: MaterialApp(
    title: 'Sample Handling Firebase Dynamic Links',
    navigatorKey: _navigatorKey,
    home: Foo(),
  ),
);
foo.dart
Future<void> hoge() async{
  // アプリが起動してない状態で Link を受信した場合に、ココでハンドリングしたいとする
  final data = await FirebaseDynamicLinks.instance.getInitialLink();
  await navigatePage(data?.link)
}

ちなみに

カスタムドメインを使う場合、iOS setup の最後の項目を忘れやすい気がするのでご注意。

19
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
13